SSH 端口转发

SSH 端口转发

​ 其实细心的同学之前一定发现了,我们之前将 Jupyter 的运行 IP 设置为 localhost ,这样的话是无法通过公网访问到 Jupyter 的。虽然网上通常的做法都是将 IP 设置为 0.0.0.0 ,然后本地端直接通过服务器 IP 进行访问。这样做虽然简便快捷,但是直接将 IP 与端口向外开放的做法也存在风险。因此我更推荐的做法是采用 SSH 端口转发来实现访问,因为 SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据。

​ SSH 提供的端口转发,能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的加密及解密服务。这一过程有时也被叫做“隧道”(tunneling),这是因为 SSH 为其他 TCP 链接提供了一个安全的通道来进行传输而得名。

因此 SSH 端口转发能提供两大功能:

  • 加密 SSH 客户端到 SSH 服务器端的通信

  • 突破防火墙限制,建立一些之前受限的 TCP 连接

虽然 SSH 端口转发包含有许多内容,但是我们只需要用到其中的本地转发功能。

本地端口转发的命令格式是:

ssh -L <local port>:<remote host>:<remote port> <SSH hostname>
所以,为了同 Jupyter 服务器建立 TCP 连接,还需要在本地与服务器间建立起 SSH Tunneling。

具体到本例操作就是:

ssh -L 4000:localhost:8888 root@106.12.210.73

1
2