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?
I have ran the following command ipython profile create
to create a profile.
Then edited ipython_notebook_config.py
and edited it to contain the following:
c = get_config() c.NotebookApp.port = 80
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.
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
Step 1: Run Jupyter Notebook from remote machine Once the console shows, type the following: remoteuser@remotehost: jupyter notebook --no-browser --port=XXXX # Note: Change XXXX to the port of your choice. Usually, the default is 8888. # You can try 8889 or 8890 as well.
99.9% of the time Jupyter will run on port 8888. Optionally change port 8000 to one of your choosing (for example, if 8000 is used by another process).
jupyter notebook --ip=0.0.0.0 --port=80 or ipython notebook --ip=0.0.0.0 --port=80
is what i did to run ipython in my vagrant box. (Opened up the ports on the vagrant box to access it on my host mac)
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]
Incase the port is already occupied, see what's blocking it - inmy case it was an old instance of ipython which had not been terminated properly. I kiiled them all with this command
ps auxww | grep 'ipython' | awk '{print $2}' | xargs sudo kill -9
To change port temporarily, indicate a different port number when we start jupyter notebook server from a terminal by firing following command.
jupyter notebook --port 9999
Read more https://jupyter.readthedocs.io/en/latest/running.html
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With