更改iPython笔记本服务器/Jupyter的默认端口
我正在尝试在防火墙后面的计算机上运行ipython笔记本电脑/jupyter服务器.唯一开放的端口是端口80.所以想知道如何将默认端口从8890更改为80?
I am trying to run an ipython notebook / jupyter server on a machine behind a firewall. The only port which is open is port 80. So was wondering how I can change the default port from 8890 to 80?
我已经运行了以下命令ipython profile create
以创建配置文件.
I have ran the following command ipython profile create
to create a profile.
然后编辑ipython_notebook_config.py
并将其编辑为包含以下内容:
Then edited ipython_notebook_config.py
and edited it to contain the following:
c = get_config()
c.NotebookApp.port = 80
当我尝试运行python笔记本时.我收到以下错误:
When I try to run python notebook. I get the following error:
ERROR: the notebook server could not be started because no available port could be found.
但是,似乎其他任何端口都没有使用端口80.Apache无法在启动时启动,并且已被禁用.我什至用netstat查看每个端口在使用什么.
Hoever, nothing else seems to be using port 80. Apache does not boot at startup and is disabled. I have even used netstat to see what is using each port.
$ 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
某些内容已经在80上侦听,您无法将2台服务器绑定到同一端口.使用侦听80的代理,然后基于URL或地址重定向到您的其他服务器和IPython.同样不要使用80,请使用443,如果您正在运行公共服务器,则它应该通过TLS来确保安全性.
Something is already listening on 80, you cannot bind 2 servers to the same port. Use a proxy that listen to 80, and redirect to your other servers and IPython base on URL, or address. Also don't use 80, use 443, if you are running a public server it should be over TLS for security.
请注意,对于任何低端口号,您可能需要使用sudo来增加root用户的进程特权.
Note that for any low port number you might need to increase the process privileges to root, potentially using sudo.