- interno1 $ vncviewer localhost::7900
- externo1 $ ssh -L 0.0.0.0:7900:localhost:5900 user@interno1
对于 Secure Shell (SSH) 如许的收集协定来说,其重要职责就是在终端模式下拜访一个长途体系。因为 SSH 协定对传输数据进行了加密,所以经由过程它在远端体系履行敕令是安然的。此外,我们还可以在这种加密后的连接上经由过程创建地道(端口转发)的方法,来实现两个不合终端间的互联。凭借这种方法,只要我们能经由过程 SSH 创建连接,就可以绕开防火墙或者端口禁用的限制。
这个话题在收集范畴有大年夜量的应用和评论辩论:
- Wikipedia: SSH Tunneling
- O’Reilly: Using SSH Tunneling
- Ssh.com: Tunneling Explained
- Ssh.com: Port Forwarding
- SecurityFocus: SSH Port Forwarding
- Red Hat Magazine: SSH Port Forwarding
鄙人面的例子傍边,我们假设情况中的收集划分为外部收集(network1)和内部收集(network2)两部分,并且这两个收集之间,只能在 externo1 与 interno1 之间经由过程 SSH 连接的方法来互相拜访。外部收集的节点之间和内部收集的节点之间是完全联通的。
SSH tunnels: no tunnel
场景 1
在 externo1 节点拜访由 interno1 节点供给的 TCP 办事(本地端口转发 / 绑定地址 = localhost / 主机 = localhost )
externo1 节点可以经由过程 OpenSSH 连接到 interno1 节点,之后我们想经由过程其拜访运行在 5900 端口上的 VNC 办事。
SSH Tunnels: Scenario 1
我们可以经由过程下面的敕令来实现:
- externo1 $ ssh -L 7900:localhost:5900 user@interno1
如今,我们可以在 externo1 节点上确认下 7900 端口是否处于监听状况中:
- externo1 $ netstat -ltn
- Active Internet connections (only servers)
- Proto Recv-Q Send-Q Local Address Foreign Address State
- ...
- Tcp 0 0 127.0.0.1:7900 0.0.0.0:* LISTEN
- ...
我们只须要在 externo1 节点上履行如下敕令即可拜访 internal 节点的 VNC 办事:
- externo1 $ vncviewer localhost::7900
留意:在 vncviewer 的 man 手册中并未说起这种修改端标语的方法。在 About VNCViewer configuration of the output TCP port 中可以看到。这也是 the TightVNC vncviewer 所介绍的的。
场景 2
在 externo2 节点上拜访由 interno1 节点供给的 TCP 办事(本地端口转发 / 绑定地址 = 0.0.0.0 / 主机 = localhost)
此次的场景跟筹划 1 的场景的类似,然则我们此次想大年夜 externo2 节点来连接到 interno1 上的 VNC 办事:
SSH Tunnels: Scenario 2
精确的敕令如下:
看起来跟筹划 1 中的敕令类似,然则让我们看看 netstat 敕令的输出上的差别。7900 端口被绑定到了本地(127.0.0.1),所以只有本地过程可以拜访。此次我们将端口接洽关系到了 0.0.0.0,所以体系许可任何 IP 地址的机械拜访 7900 这个端口。
- externo1 $ netstat -ltn
- Active Internet connections (only servers)
- Proto Recv-Q Send-Q Local Address Foreign Address State
- ...
- Tcp 0 0 0.0.0.0:7900 0.0.0.0:* LISTEN
- ...
所以如今在 externo2 节点上,我们可以履行:
推荐阅读
比来,我听到了大年夜量的关于新出的 .NET Core 和其机能的评论辩论,尤其在 Web 办事方面的评论辩论更甚。本周一(8 月 14 日),微软宣布 .NET Core 2.0 版本,是以,我预备开端。您们认>>>详细阅读
本文标题:通过SSH实现TCP/IP隧道(端口转发):使用OpenSSH可能的8种场景
地址:http://www.17bianji.com/lsqh/37757.html
1/2 1