Jupyter Notebook on Remote Server

Install miniconda

参考 Working With Ubuntu (2)

Configure Jypyter

Note: 通过 ssh 远程链接到服务器操作。

1
$ conda install jupyter notebook
1
2
$ jupyter notebook --generate-config
Writing default config to: /home/kip/.jupyter/jupyter_notebook_config.py
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
$ ipython
Python 3.6.9 |Anaconda, Inc.| (default, Mar 31 2020, 19:07:31) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.7.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from notebook.auth import passwd

In [2]: passwd()
Enter password: 
Verify password: 
Out[2]: 'sha1:9df4178e51d1:6ea6f2567edf49ffdf216fb20fe424dc4329a924'

In [3]: quit()
1
$ vim /home/kip/.jupyter/jupyter_notebook_config.py

配置如下:

1
2
3
4
5
# configuration manully
c.NotebookApp.ip='*'
c.NotebookApp.password = u'sha1:9df4178e51d1:6ea6f2567edf49ffdf216fb20fe424dc4329a924' # 你的 Hash
c.NotebookApp.open_browser = False # 禁止自动打开浏览器
c.NotebookApp.port = 8888 # 随意指定一个端口

其中 c.NotebookApp.password 的 Hash 值就是刚才使用 ipython 生成的 Hash。

Configure Firewall

经上述配置,我们在本地浏览器中输入 server_ip:8888 还不能成功连接,因为防火墙还没将端口 8888 开放出来。

1
$ sudo firewall-cmd --zone=public --add-port=8888/tcp --permanent

其中 --permannet 表示永久有效,不会因为重启主机而失效。

1
$ sudo firewall-cmd --reload

通过命令 firewall-cmd --list-all 查看规则信息,即:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
 $ sudo firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ******
  sources: 
  services: ssh dhcpv6-client
  ports: 8888/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:

在本地浏览器中输入 server_ip:8888

jupyter-remote

再输入之前设置的密码即可。

Permanent Configuration

也可以不生成配置文件,直接在命令行打开。

安装好 jupyter notebook 后,运行命令:

1
$ jupyter notebook --no-browser --port=8888 --ip=0.0.0.0

其中 --ip=0.0.0.0 表示 jupyter notebook 侦听所有的 IP 地址。

但这也需要配置防火墙,开放 8888 端口。

© 2019 - 2021 · Kip Jiang · Theme Simpleness Powered by Hugo ·