Не удается подключиться к ноутбуку Jupyter на экземпляре AWS EC2
Я запускаю Ubuntu 14.04 LTS на экземпляре AWS EC2.
Я пытаюсь подключиться к Jypter в Safari с моего MacBookPro.
Я открыл https-порт 443 и TCP 8888 в моей группе безопасности.
[email protected]:~$ netstat -a | grep 8888
tcp 0 0 localhost:8888 *:* LISTEN
tcp 0 0 localhost:8888 localhost:36190 TIME_WAIT
[email protected]:~$ netstat -a | grep 443
unix 3 [ ] STREAM CONNECTED 12443
[email protected]:~$
Я не могу подключиться к Jupyter из браузера Safari на своем Mac.
(Я могу подключиться к Tensorboard на порту 6006).
[email protected]:~$ jupyter notebook
[W 20:40:14.909 NotebookApp] Unrecognized JSON config file version, assuming version 1
[I 20:40:14.921 NotebookApp] Writing notebook server cookie secret to /run/user/1000/jupyter/notebook_cookie_secret
[I 20:40:15.224 NotebookApp] JupyterLab alpha preview extension loaded from /home/ubuntu/anaconda/lib/python2.7/site-packages/jupyterlab
[I 20:40:15.230 NotebookApp] Serving notebooks from local directory: /home/ubuntu
[I 20:40:15.230 NotebookApp] 0 active kernels
[I 20:40:15.230 NotebookApp] The Jupyter Notebook is running at: http://localhost:8888/?token=c08a71a48c6e159bdbdcc95837c4e2e053349382c681899b
[I 20:40:15.231 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 20:40:15.232 NotebookApp]
Copy/paste this URL into your browser when you connect for the first time,
to login with a token:
http://localhost:8888/?token=c08a71a48c6e159bdbdcc95837c4e2e053349382c681899b
![введите описание изображения здесь]()
$ telnet 52.8.16.250 8888
Trying 52.8.16.250...
telnet: connect to address 52.8.16.250: Connection refused
telnet: Unable to connect to remote host
$ telnet 52.8.16.250 6006
Trying 52.8.16.250...
telnet: connect to address 52.8.16.250: Connection refused
telnet: Unable to connect to remote host
$ telnet 52.8.16.250 8080
Trying 52.8.16.250...
telnet: connect to address 52.8.16.250: Connection refused
telnet: Unable to connect to remote host
$ telnet ec2-52-8-16-250.us-west-1.compute.amazonaws.com 8888
Trying 52.8.16.250...
telnet: connect to address 52.8.16.250: Connection refused
telnet: Unable to connect to remote host
$ telnet ec2-52-8-16-250.us-west-1.compute.amazonaws.com 20
Trying 52.8.16.250...
telnet: connect to address 52.8.16.250: Operation timed out
telnet: Unable to connect to remote host
Ответы
Ответ 1
Для меня SSH туннелирование отлично подходит для таких случаев.
ssh -i /path/to/your/AWS/key/file -NL 8157:localhost:8888 [email protected]
где пользователь и хост зависят от вашего экземпляра ec2.
После этого вы можете перейти к http://localhost:8157/
Ответ 2
Хорошо, нашел проблему:
Отредактируйте конфигурацию jupyter:
jupyter notebook --generate-config
vim /home/ubuntu/.jupyter/jupyter_notebook_config.py
Убедитесь, что
c.NotebookApp.ip = '*'
Также убедитесь, что вы открыли соответствующую группу безопасности на своем сервере EC2 (например, порт 8888)
Запустить Jupyter:
jupyter notebook
Теперь вы можете получить доступ к нему удаленно с помощью правильного порта
Ответ 3
Убедитесь, что ваша группа безопасности экземпляра AWS настроена, как показано ниже:
настроена группа безопасности входящего экземпляра aws
Если вы уверены, что AWS правильно настроен для разрешений, проверьте, не блокирует ли ваша сеть исходящий трафик. Вы можете попытаться выполнить туннелирование портов при SSHing в ваш экземпляр, выполнив:
ssh -i -L 8888: 127.0.0.1: 8888
тогда вы можете получить доступ к jupyter локально, перейдя на localhost: 8888 в вашем браузере