美文网首页
ssh 隧道 —— 端口转发

ssh 隧道 —— 端口转发

作者: 谁有羊毛 | 来源:发表于2020-03-09 23:32 被阅读0次

    一、本地隧道转发

    是否有这样一种情况? 内网1电脑A 想要连接 另一个内网2主机C ?而内网 1、2相互无法联通,但都可以连接一台服务器B

    1. 简述问题
    • 主机A ===》 主机C ,而 两个主机都在各自的内网里面(eg: 虚拟机A想要连接云服务B的内网主机C 192.168.42.55:5000服务),且 A 可以连接 B 而 B也可以连接 C,那么如何使得A、C可以正常通信呢?
    • 那么显然, B可以作为中转站来转接A、C主机的通信
    image.png
    1. 使用命令 —— 本地隧道

    本地隧道: 你的本机想要访问其他的内网的主机

    ssh -Nf -L {本地端口}:{目标机器}:{目标端口} {中间机器}
    # 或
    ssh -Nf -L {本地地址}:{本地端口}:{目标机器}:{目标端口} {中间机器}
    # -N    不执行远程指令
    # -f    后台执行ssh命令
    # -L    local隧道, [bind_address:]port:host:hostport
    # -4    强制使用ipv4地址
    
    • 如图的IP:
    ssh -N -f -L 2222:192.168.42.55:5000 root@123.121.12.42
    

    二、远程隧道

    远程隧道:远程主机B 想要远程登陆访问 公司内网的主机C端口22

    1. 命令—— 远程隧道
    ssh -Nf -R {远程端口}:{本地机器}:{本地端口} {远程机器}
    # 或
    ssh -Nf -R {远程绑定地址}:{远程端口}:{本地机器}:{本地端口} {远程机器}
    
    image.png
    1. 如上图
    # 先在我们公司内网主机C: 192.168.42.55 建立反向的ssh隧道
    ssh -N -f -R 2222:127.0.0.1:22 123.121.12.42
    
    • -R 参数
      远程机器使用的端口(2222)
      需要映射的内部机器的IP地址(127.0.0.1)
      需要映射的内部机器的端口(22)

    • 现在我们可以在123.121.12.42 这台机器B上 远程访问 公司内部的机器C了

    ssh -p 2222 127.0.0.1
    

    相关文章

      网友评论

          本文标题:ssh 隧道 —— 端口转发

          本文链接:https://www.haomeiwen.com/subject/jafvdhtx.html