Почему я не могу получить доступ к удаленному серверу 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

Тот, кто все еще застрял - следуйте инструкциям на этой странице.

В принципе:

  1. Следуйте инструкциям, описанным в AWS.

    1. Откройте SSH как обычно.
    2. source activate python3
    3. Блокнот Jupyter
  2. Не вырезайте и не вставляйте ничего. Вместо этого откройте новое окно терминала, не закрывая первое.

  3. В новом окне введите команду SSH, как описано в приведенной выше ссылке.

  4. Откройте веб-браузер и перейдите на http://127.0.0.1:8157

Ответ 11

Если у вас все еще возникают проблемы и вы запускаете что-то вроде экземпляра AWS EC2, это может быть просто случай открытия порта через консоль AWS.

увидеть этот ответ