SSH 端口转发
其实细心的同学之前一定发现了,我们之前将 Jupyter 的运行 IP 设置为 localhost ,这样的话是无法通过公网访问到 Jupyter 的。虽然网上通常的做法都是将 IP 设置为 0.0.0.0 ,然后本地端直接通过服务器 IP 进行访问。这样做虽然简便快捷,但是直接将 IP 与端口向外开放的做法也存在风险。因此我更推荐的做法是采用 SSH 端口转发来实现访问,因为 SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据。
SSH 提供的端口转发,能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的加密及解密服务。这一过程有时也被叫做“隧道”(tunneling),这是因为 SSH 为其他 TCP 链接提供了一个安全的通道来进行传输而得名。
因此 SSH 端口转发能提供两大功能:
虽然 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 |