Почему я не могу получить доступ к удаленному серверу Jupyter Notebook?
Я запустил сервер Jupyter Notebook на моем сервере centos6.5. И jupyter работает как
[I 17:40:59.649 NotebookApp] Serving notebooks from local directory: /root
[I 17:40:59.649 NotebookApp] 0 active kernels
[I 17:40:59.649 NotebookApp] The Jupyter Notebook is running at:https://[all ip addresses on your system]:8045/
[I 17:40:59.649 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
Когда я хочу получить доступ к Jupyter удаленно в той же локальной сети, скажем, откройте http://192.168.1.111:8045/
, я не могу открыть страницу Jupyter вообще. Кстати, я могу получить доступ к удаленному серверу centos успешно.
Какая возможная причина?
Ответы
Ответ 1
Вы настроили файл jupyter_notebook_config.py для разрешения внешних подключений?
По умолчанию Jupyter Notebook принимает только соединения с localhost (например, с того же компьютера, на котором он работает). Изменив параметр NotebookApp.allow_origin по умолчанию '' to '*', вы разрешите доступ к Jupyter извне.
c.NotebookApp.allow_origin = '*' #allow all origins
Вам также необходимо будет изменить IP-адреса, которые будет прослушивать ноутбук:
c.NotebookApp.ip = '0.0.0.0' # listen on all IPs
Документация по конфигурационному файлу Jupyter Notebook.
Ответ 2
Мне удалось получить доступ к локальному серверу с помощью ip, используя команду, показанную ниже:
jupyter notebook --ip xx.xx.xx.xx --port 8888
замените xx.xx.xx.xx
на ваш локальный ip сервера jupyter.
Ответ 3
Джеймс023 уже высказал правильный ответ. Просто форматирую
если вы еще не настроили файл jupyter_notebook_config.py
Шаг 1: сгенерируйте файл, набрав эту строку в консоли
jupyter notebook --generate-config
Шаг 2: отредактируйте значения
gedit /home/koushik/.jupyter/jupyter_notebook_config.py
(добавить следующие две строки в любом месте, потому что значения по умолчанию все равно прокомментированы)
c.NotebookApp.allow_origin = '*'
допускает все источники
c.NotebookApp.ip = '0.0.0.0'
# прослушивание всех IP-адресов
Шаг 3: как только вы закрыли Gedit, в случае, если ваш порт заблокирован
sudo ufw allow 8888
# включить порт tcp: 8888, который является портом jupyter по умолчанию
Шаг 4: установить пароль
jupyter notebook password
# будет запрашиваться пароль
Шаг 5: начать Jupyter
jupyter notebook
и подключиться как http://xxx.xxx.xxx.xxx:8888/login?
Ответ 4
В RedHat 7 нам нужно разрешить определенный порт перед запуском команды Jupiter. Скажем, порт 8080
.
iptables -I INPUT 1 -p tcp --dport 8080 -j ACCEPT
Тогда мы можем запустить его как обычно. Например, используя:
jupyter notebook --ip 0.0.0.0 --no-browser --port=8080 --allow-root
или что угодно.
Ответ 5
Другая причина может быть межсетевым экраном. У нас была такая же проблема, даже с
jupyter notebook --ip xx.xx.xx.xxx --port xxxx.
Тогда он окажется брандмауэром на нашем новом CentOS7.
Ответ 6
Из командной строки мы видим, что ваш сервер jupyter работает нормально. Причина, по которой вы не можете получить доступ к удаленному серверу jupyter, заключается в том, что ваши удаленные серверные брандмауэрные системы centos6.5 блокируют входящий запрос из вашего локального браузера, т.е. Блокируют ваш tcp: Порт 8045.
sudo ufw allow 80 # enable http server
sudo ufw allow 443 # enable https server
sudo ufw allow 8045 # enable your tcp:8045 port
затем попробуйте снова получить доступ к вашему юпитеру.
Ответ 7
Это ваш частный IP-адрес? Если это так, вам нужно использовать свой публичный. Идите к ipchicken, чтобы узнать, что это такое. Я знаю, что вы находитесь в одной локальной сети, но попробуйте это, чтобы узнать, устраняют ли какие-либо проблемы.
Ответ 8
В качестве альтернативы вы можете просто создать туннель к серверу:
ssh -i <your_key> <[email protected]> -L 8888:127.0.0.1:8888
Затем просто откройте 127.0.0.1:8888
в вашем браузере.
Вы также опускаете -i <your_key>
если у вас нет -i <your_key>
identity_file.
Ответ 9
если вы используете среду Conda, вам следует снова настроить файл конфигурации. И расположение файла будет примерно таким. Я не настроил конфигурационный файл после того, как создал env в Conda, и это была моя проблема с подключением.
C:\Users\syurt\AppData\Local\Continuum\anaconda3\envs\myenv\share\jupyter\jupyter_notebook_config.py
Ответ 10
Тот, кто все еще застрял - следуйте инструкциям на этой странице.
В принципе:
-
Следуйте инструкциям, описанным в AWS.
- Откройте SSH как обычно.
-
source activate python3
- Блокнот Jupyter
-
Не вырезайте и не вставляйте ничего. Вместо этого откройте новое окно терминала, не закрывая первое.
-
В новом окне введите команду SSH, как описано в приведенной выше ссылке.
-
Откройте веб-браузер и перейдите на http://127.0.0.1:8157
Ответ 11
Если у вас все еще возникают проблемы и вы запускаете что-то вроде экземпляра AWS EC2, это может быть просто случай открытия порта через консоль AWS.
увидеть этот ответ