场景:在本地计算机上,您想要打开和操作在远程计算机上运行的瞻博网络笔记本。我们将通过打开一个 SSH 隧道来做到这一点。此隧道会将远程运行的 Jupyter 实例使用的端口转发到本地机器上的端口,在浏览器中可以像本地运行的 Jupyter 实例一样访问它。
在远程机器上,启动 Jupyter notebooks 服务器:
remote_user@remote_host$ Jupyter notebook --no-browser --port=8889
通常 Jupyter 会打开一个浏览器来显示可用的笔记本,但我们不需要它,所以我们使用选项--no-browser
. 我们还将端口更改为8889
,只是为了说明这是如何完成的。
在本地机器上,启动一个 SSH 隧道:
local_user@local_host$ ssh -N -f -L localhost:8888:localhost:8889 remote_user@remote_host
第一个选项-N
告诉 SSH 不会执行远程命令,并且对于端口转发很有用。第二个选项-f
的效果是 SSH 将进入后台,因此本地隧道启用终端仍然可用。最后一个选项-L
列出了端口转发配置(远程端口 8889 到本地端口 8888)。
现在在本地机器上打开浏览器并在地址栏中输入
localhost:8888
它显示了您远程运行的 Jupyter 笔记本服务器。
要关闭本地机器上的 SSH 隧道,请查找该进程并手动将其终止:
local_user@local_host$ ps aux | grep localhost:8889
local_user 18418 0.0 0.0 41488 684 ? Ss 17:27 0:00 ssh -N -f -L localhost:8888:localhost:8889 remote_user@remote_host
local_user 18424 0.0 0.0 11572 932 pts/6 S+ 17:27 0:00 grep localhost:8889
local_user@local_host$ kill -15 18418
-f
或者,您可以不使用该选项启动隧道。然后该进程将保留在前台,并且可以使用ctrl-c
.
在远程计算机上,使用ctrl-c
ctrl-c
.