应用场景
想要在本地计算机C上使用高性能服务器上的计算节点运行jupyter notebook相关的代码。
高性能服务器上通常只有一个公网ip用于账户登陆管理,但有多个计算节点,需要使用公网IP通过SSH方式登入管理节点A,并使用SSH二次登陆计算节点B,此时如果需要在本地计算机C上想要操作计算节点B的计算资源,例如使用节点B的jupyter notebook,需要进行单独的配置。
解决方法
使用MobaXterm tunneling功能。
STEP 1 新建tunneling
STEP2 填写相关参数
主要有三个部分
1.本地的端口,也就是在本地浏览器中要打开的端口,这里给的是1234
2.SSH server,也就是有公网IP的管理节点A,输入IP,name是管理员分配给你的用户名,port是端口,通常是22,。
3.remote server,我们最终实际要访问的计算节点B,输入IP,这里的IP是内网IP,一般是192.168.X.X这种,端口填写你要访问的应用提供的端口,比如jupyter notebook一般是8888。
填写所有信息后点击save。
STEP3 连接
点击连接后,远程服务器中的节点B就会把8888端口转发到本地的1234端口,此时在本地浏览器中输入localhost:1234,就能访问计算节点B的jupyter notebook了。如果不成功,可以检查一下jupyter notebook的端口配置,见下一个模块。
jupyter notebook配置
生成配置文件
jupyter notebook --generate-config
这个操作会生成jupyter_notebook_config.py文件,打开文件,填入一下内容
c.NotebookApp.ip='*'
c.NotebookApp.open_browser = False
c.NotebookApp.port =8888 #可自行指定一个端口, 访问时使用该端口
很重要的是这个IP的设置,如果不设置成所有可以访问,那么没有办法直接从本地访问8888。