文章目录

用 Jupyter Notebook 运行 Python 程序时,本机有些吃力,于是想转向集群的服务器来运行。

可是本机和集群服务器之间还有一个跳板机,横加阻隔,较为麻烦,最终经过一段时间的摸索,决定采用两边各进一步的方法:服务端 jupyter notebook 远程访问 + 本机端端口转发。

为便于说明,设本机为A,跳板机B,目标运行服务器C。我们的 notebook 将在C上运行。

首先配置C上的notebook,使得可以被内网别的机器(如B)直接访问。

1
2
3
4
5
6
7
8
9
10
11
12
13
1. 登陆远程服务器
2.生成配置文件
$ jupyter notebook --generate-config

3. 修改默认配置文件
$ vim ~/.jupyter/jupyter_notebook_config.py
进行如下修改:

c.NotebookApp.ip = '0.0.0.0' # 支持其它IP访问,关键
c.NotebookApp.port = 8888 # Jupyter Notebook 惯用端口

4. 启动jupyter notebook:
$ jupyter notebook

启动后如下图所示,

记住图中的http://0.0.0.0:8888/?token后面的token, 后面认证需要用。

这样我们第一步就做完了,这时,在跳板机B上可以随便访问C的8888端口,即其jupyter notebook。

第二部就是建立端口转发,使得我们在本地浏览器中输入localhost:xxxx即可以经过跳板机访问C:8888

通过ssh可以建立本地转发。

1
ssh -f -NL 16888:<C_ip>:8888 [username@]<B_ip>

这样意味着我们访问localhost:16888端口时可以通过B转发到:8888,也即我们可以访问C的notebook啦。

最开始的时候会让输入密码,在最下面输入刚说的token,然后设置新密码即可。

大数据系统与技术 | Big Data