从北京回到武汉了,开始水我的毕业论文了。毕业论文需要用到神经网络训练模型,这个不用说,自己的机子肯定带不动,要连接实验室的服务器。运行深度学习的代码,习惯使用jupyter notebook,因此需要远程访问服务器上的jupyter notebook。在网上搜了几种远程访问的方法,有的成功了,有的估计因为实验室内网IP等原因没有成功……
一.ssh远程使用jupyter notebook
在远程服务器上,启动jupyter notebooks服务:
1
jupyter notebook --no-browser --port=8889
在本地终端中启动SSH:
1
ssh -N -f -L localhost:8888:localhost:8889 username@serverIP
其中: -N 告诉SSH没有命令要被远程执行; -f 告诉SSH在后台执行; -L 是指定port forwarding的配置,远端端口是8889,本地的端口号的8888。
最后打开浏览器,访问:http://localhost:8888/
二. 利用jupyter notebook自带的远程访问功能
官方指南在此:官方指南
生成默认配置文件
1
jupyter notebook --generate-config
生成访问密码(token)
终端输入ipython
,设置你自己的jupyter访问密码,注意复制输出的sha1:xxxxxxxx
密码串1
2
3
4
5In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:xxxxxxxxxxxxxxxxx'修改
./jupyter/jupyter_notebook_config.py
中对应行如下1
2
3
4
5c.NotebookApp.ip='*'
c.NotebookApp.password = u'sha:ce...刚才复制的那个密文'
c.NotebookApp.open_browser = False
c.NotebookApp.port =8888 #可自行指定一个端口, 访问时使用该端口
c.NotebookApp.allow_remote_access = True在服务器上启动
jupyter notebook
1
jupyter notebook
最后打开浏览器,访问:http://ip:8888/
这个方法在第3步的时候做过很多尝试,似乎还是无法从本地访问服务器的8888端口,一开始以为是防火墙的问题,后面关闭防火墙了还是不太行,所以这个方法我一直没试成功……
三.ssh添加隧道
关于ssh隧道,原理参考:SecureCRT高效操作——反空闲、按钮栏、端口转发跳板
Windows上有很多远程连接的软件是支持添加隧道的,但在Mac上并不多,一开始是在用FinalShell。
如下就是我自己配置的隧道:
通过有隧道连接的ssh服务器之后,在服务器端运行
1 | jupyter notebook --no-browser --port=8889 |
然后打开浏览器,登陆对应的IP地址,即可访问远程jupyter notebook。