本地系统:windows系统(Linux mac之类应该也可以)
开启jupyter的远程目的主机系统:linux
跳板机系统:linux
适用场景举例:
我学校的实验室服务器是内网ip,我在外网用学校vpn也经常访问不了,导致上面的运行的jupyter服务访问不到。但学校还另一台有公共ip的服务器我有账号可以访问并登录,这时就可以用这台有公网ip的服务器作为跳板机,实现对jupyter所在的目的主机的访问。
步骤:
- 直接打开cmd,
- 假设目的主机jupyter端口为8900,则
输入“ssh -g -L 8900:目的主机ip:8900 跳板机用户名@跳板机ip”,
回车然后输入跳板机用户对应的密码登录。 - 本地浏览器输入“localhost:8900”就可以访问目的主机的jupyter了。
其他说明:
-
这里使用的是ssh反向代理的功能,不懂的话具体原理可网上搜索学习。
-
如果想不想每次都输入这行,可以把这弄成一个vbs文件,双击就可以运行,甚至还可以添加到windows的任务,开机自启(开机自启其实不算很必要,想要试试的话,网上教程也很多,不再赘述)。
-
vbs文件内容附录如下(使用的是模拟按键输入密码回车,所以加了些停顿,防止系统不识别,有时不好使,可以把停顿时间稍微改长点):
文件内容里的ip、端口号、用户名、密码,大家记得改成自己的。
Dim WshShell
Set WshShell=WScript.CreateObject("WScript.Shell")
WshShell.Run "ssh -g -L 8900:10.12.13.192:8900 username@202.111.111.112"
WScript.Sleep 200
WshShell.SendKeys "+"
WScript.Sleep 150
WshShell.SendKeys "password"
WScript.Sleep 150
WshShell.SendKeys "{ENTER}"