ssh端口转发(ssh隧道)

本地端口映射到其他机器

 ssh -Nf -L 18080:18.16.200.110:8083 root@18.16.200.134 -p 22
 or
 ssh -Nf -L 18.16.202.21:18080:18.16.200.110:8083 root@18.16.200.134 -p 22
  • 目标机器为18.16.200.110,对外端口为8083
  • 跳板机为18.16.200.134,端口为22
  • 本地端口为18080

使用上述命令,就可以监听本机的18080端口,并将命令转发到18.16.200.110机器的8083端口上。

访问本机18080端口,就相当于访问18.16.200.1108083端口应用

参数说明

  • -N 告诉SSH客户端,这个连接不需要执行任何命令。仅仅做端口转发

  • -f 告诉SSH客户端在后台运行

  • -L 做本地映射端口,被冒号分割的三个部分含义分别是最后一个参数是我们用来建立隧道的中间机器的IP地址(IP: 18.16.200.134)

  • 需要使用的本地端口号(端口: 18080)

    • 需要访问的目标机器IP地址(IP: 18.16.200.110
    • 需要访问的目标机器端口(端口:8083)

案例

  • hostA映射到hostB

    ssh -L 18080:127.0.0.1:8083 root@18.16.200.110
    

    上述的127.0.0.1指的是18.16.200.110

    上述操作,会将本地18080端口的数据转发到18.16.200.1108083端口

  • 访问本地端口

    ssh -L 9999:18.16.200.110:22 root@18.16.200.134 -p 22
    

    这样访问本机的9999端口,就相当于访问了18.16.200.110:22

    ssh localhost -p 9999
    

远程跳板机端口转发

内网的机器A,公网的机器B,某服务器C
A可以连接B,B可以连接C,但是AC之间不能连接
这个时候如果B能运行一个OpenSSH服务器,那么就可以通过B形成隧道连接AC

因为A是内网,所以不能使用C-B-A方案

案例

在跳板机18.16.200.134节点中执行:

ssh -R 18080:18.16.200.110:8083 qhong@18.16.202.21

使用上述命令,即可访问18.16.202.21:18080转发到18.16.200.110:8083端口

参考

超实用, ssh 端口转发实现网络穿透

SSH原理与运用(二):远程操作与端口转发

ssh端口转发:ssh隧道

[SSH端口转发](

原文地址:https://www.cnblogs.com/hongdada/p/13697209.html