Изменение порта по умолчанию для ноутбука iPython/Jupyter
Я пытаюсь запустить ipython notebook/jupyter server на машине за брандмауэром. Единственным открытым портом является порт 80. Так было интересно, как я могу изменить порт по умолчанию от 8890 до 80?
Я создал следующую команду ipython profile create
для создания профиля.
Затем отредактировал ipython_notebook_config.py
и отредактировал его, чтобы он содержал следующее:
c = get_config()
c.NotebookApp.port = 80
Когда я пытаюсь запустить python notebook. Я получаю следующую ошибку:
ERROR: the notebook server could not be started because no available port could be found.
Ховер, ничто иное не использует порт 80. Apache не загружается при запуске и отключен. Я даже использовал netstat, чтобы узнать, что использует каждый порт.
$ sudo netstat -lnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1226/vsftpd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1532/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 3433/cupsd
tcp 0 0 127.0.0.1:5984 0.0.0.0:* LISTEN 1410/beam.smp
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1653/mysqld
tcp6 0 0 :::22 :::* LISTEN 1532/sshd
tcp6 0 0 ::1:631 :::* LISTEN 3433/cupsd
udp 0 0 0.0.0.0:52741 0.0.0.0:* 796/avahi-daemon: r
udp 0 0 0.0.0.0:5353 0.0.0.0:* 796/avahi-daemon: r
udp 0 0 0.0.0.0:31114 0.0.0.0:* 1105/dhclient
udp 0 0 0.0.0.0:68 0.0.0.0:* 1105/dhclient
udp 0 0 xxx.xxx.xxx.xxx:123 0.0.0.0:* 2607/ntpd
udp 0 0 127.0.0.1:123 0.0.0.0:* 2607/ntpd
udp 0 0 0.0.0.0:123 0.0.0.0:* 2607/ntpd
udp 0 0 0.0.0.0:631 0.0.0.0:* 1630/cups-browsed
udp6 0 0 :::5353 :::* 796/avahi-daemon: r
udp6 0 0 :::69 :::* 1607/in.tftpd
udp6 0 0 :::24682 :::* 1105/dhclient
udp6 0 0 xxxx::xxxx:xxxx:xxxx:123 :::* 2607/ntpd
udp6 0 0 ::1:123 :::* 2607/ntpd
udp6 0 0 :::123 :::* 2607/ntpd
udp6 0 0 :::59559 :::* 796/avahi-daemon: r
Active UNIX domain sockets (only servers)
Proto RefCnt Flags Type State I-Node PID/Program name Path
unix 2 [ ACC ] STREAM LISTENING 20483 3253/pulseaudio /run/user/1003/pulse/native
unix 2 [ ACC ] STREAM LISTENING 18697 3179/gnome-session @/tmp/.ICE-unix/3179
unix 2 [ ACC ] STREAM LISTENING 15765 2507/X /tmp/.X11-unix/X0
unix 2 [ ACC ] STREAM LISTENING 20481 3253/pulseaudio /tmp/.esd-1003/socket
unix 2 [ ACC ] STREAM LISTENING 18698 3179/gnome-session /tmp/.ICE-unix/3179
unix 2 [ ACC ] STREAM LISTENING 15764 2507/X @/tmp/.X11-unix/X0
unix 2 [ ACC ] STREAM LISTENING 10538 768/bluetoothd /var/run/sdp
unix 2 [ ACC ] STREAM LISTENING 21564 3433/cupsd /var/run/cups/cups.sock
unix 2 [ ACC ] STREAM LISTENING 10820 1653/mysqld /var/run/mysqld/mysqld.sock
unix 2 [ ACC ] STREAM LISTENING 16666 3184/dbus-daemon @/tmp/dbus-1gowauBlhV
unix 2 [ ACC ] STREAM LISTENING 14432 748/dbus-daemon /var/run/dbus/system_bus_socket
unix 2 [ ACC ] STREAM LISTENING 8877 1/init @/com/ubuntu/upstart
unix 2 [ ACC ] STREAM LISTENING 16698 3136/ibus-daemon @/tmp/dbus-ue1VKkXx
unix 2 [ ACC ] STREAM LISTENING 12135 3005/gnome-keyring- /run/user/1003/keyring-htUkSg/control
unix 2 [ ACC ] STREAM LISTENING 14469 796/avahi-daemon: r /var/run/avahi-daemon/socket
unix 2 [ ACC ] STREAM LISTENING 10034 3102/dbus-daemon @/tmp/dbus-SCYaEa0Hje
unix 2 [ ACC ] STREAM LISTENING 18577 3005/gnome-keyring- /run/user/1003/keyring-htUkSg/pkcs11
unix 2 [ ACC ] STREAM LISTENING 18581 3005/gnome-keyring- /run/user/1003/keyring-htUkSg/gpg
unix 2 [ ACC ] STREAM LISTENING 18583 3005/gnome-keyring- /run/user/1003/keyring-htUkSg/ssh
unix 2 [ ACC ] STREAM LISTENING 18569 3007/init @/com/ubuntu/upstart-session/1003/3007
unix 2 [ ACC ] SEQPACKET LISTENING 11473 396/systemd-udevd /run/udev/control
unix 2 [ ACC ] STREAM LISTENING 10725 1572/acpid /var/run/acpid.socket
Ответы
Ответ 1
Что-то уже прослушивает 80, вы не можете привязать 2 сервера к одному и тому же порту. Используйте прокси-сервер, который прослушивает 80, и перенаправляйте на другие серверы и базу IPython по URL-адресу или адресу. Также не используйте 80, используйте 443, если вы используете общедоступный сервер, он должен быть над TLS для обеспечения безопасности.
Обратите внимание, что для любого небольшого номера порта вам может потребоваться увеличить привилегии процесса до root, потенциально используя sudo.
Ответ 2
ipython notebook --ip=0.0.0.0 --port=80 or
jupyter notebook --ip=0.0.0.0 --port=80
- это то, что я сделал для запуска ipython в моем бродячем поле. (Открыл порты на брандмауэре, чтобы получить доступ к нему на моем хост-компьютере)
usage: ipython [-h] [--certfile NOTEBOOKAPP.CERTFILE] [--ip NOTEBOOKAPP.IP]
[--pylab [NOTEBOOKAPP.PYLAB]]
[--log-level NOTEBOOKAPP.LOG_LEVEL]
[--port-retries NOTEBOOKAPP.PORT_RETRIES]
[--notebook-dir NOTEBOOKAPP.NOTEBOOK_DIR]
[--config NOTEBOOKAPP.CONFIG_FILE]
[--keyfile NOTEBOOKAPP.KEYFILE] [--port NOTEBOOKAPP.PORT]
[--transport KERNELMANAGER.TRANSPORT]
[--browser NOTEBOOKAPP.BROWSER] [--script] [-y] [--no-browser]
[--debug] [--no-mathjax] [--no-script] [--generate-config]
Если порт уже занят, посмотрите, что блокирует его - inmy case это старый экземпляр ipython, который не был успешно завершен. Я выполнил их с помощью этой команды
ps auxww | grep 'ipython' | awk '{print $2}' | xargs sudo kill -9
Ответ 3
Чтобы временно изменить порт, укажите другой номер порта, когда мы запускаем сервер ноутбука Jupyter с терминала, выполнив следующую команду.
jupyter notebook --port 9999
Прочитайте больше https://jupyter.readthedocs.io/en/latest/running.html
Ответ 4
В Jupyter мы можем запустить ноутбук на другом порту двумя способами.
- Временный порт. Указав порт в аргументах, как показано ниже, мы можем запустить Jupyter на этом порту. Но мы должны упомянуть порт в аргументе команды всякий раз, когда нам нужно запустить Jupyter в другом порту.
jupyter notebook --port 9999
-
Конфигурация постоянного порта - изменяя конфигурацию, мы можем постоянно запускать Jupyter на другом порту машины. Пожалуйста, выполните следующие шаги для этого.
- Откройте файл конфигурации в нано
nano ~/.jupyter/jupyter_notebook_config.py
- Измените порт, изменив значение приведенной ниже конфигурации
c.NotebookApp.port = 9999
jupyter notebook
Бинго!!!