作家
登录

通过SSH实现TCP/IP隧道(端口转发):使用OpenSSH可能的8种场景

作者: 来源: 2017-10-10 14:29:59 阅读 我要评论

  1. interno1 $ vncviewer localhost::7900 


  1. externo1 $ ssh -L 0.0.0.0:7900:localhost:5900 user@interno1 

经由过程SSH实现TCP/IP地道(端口转发):应用OpenSSH可能的8种场景

对于 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

我们可以经由过程下面的敕令来实现:

  1. externo1 $ ssh -L 7900:localhost:5900 user@interno1 

如今,我们可以在 externo1 节点上确认下 7900 端口是否处于监听状况中:

  1. externo1 $ netstat -ltn 
  2. Active Internet connections  (only servers) 
  3. Proto Recv-Q  Send-Q  Local Address Foreign Address State       
  4. ... 
  5. Tcp  0  0  127.0.0.1:7900  0.0.0.0:*  LISTEN   
  6. ... 

我们只须要在 externo1 节点上履行如下敕令即可拜访 internal 节点的 VNC 办事:

  1. 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 这个端口。

  1. externo1 $ netstat -ltn 
  2. Active Internet connections  (only servers) 
  3. Proto Recv-Q  Send-Q  Local Address Foreign Address State       
  4. ... 
  5. Tcp  0  0  0.0.0.0:7900  0.0.0.0:*  LISTEN 
  6. ...  

所以如今在 externo2 节点上,我们可以履行:

 1/4    1 2 3 4 下一页 尾页

  推荐阅读

  论HTTP性能,Go与.NET Core一争雌雄

比来,我听到了大年夜量的关于新出的 .NET Core 和其机能的评论辩论,尤其在 Web 办事方面的评论辩论更甚。本周一(8 月 14 日),微软宣布 .NET Core 2.0 版本,是以,我预备开端。您们认>>>详细阅读


本文标题:通过SSH实现TCP/IP隧道(端口转发):使用OpenSSH可能的8种场景

地址:http://www.17bianji.com/lsqh/37757.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)