一、本地隧道转发
是否有这样一种情况? 内网1电脑A 想要连接 另一个内网2主机C ?而内网 1、2相互无法联通,但都可以连接一台服务器B
- 简述问题
- 主机A ===》 主机C ,而 两个主机都在各自的内网里面(eg: 虚拟机A想要连接云服务B的内网主机C 192.168.42.55:5000服务),且 A 可以连接 B 而 B也可以连接 C,那么如何使得A、C可以正常通信呢?
- 那么显然, B可以作为中转站来转接A、C主机的通信
- 使用命令 —— 本地隧道
本地隧道: 你的本机想要访问其他的内网的主机
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
- 命令—— 远程隧道
ssh -Nf -R {远程端口}:{本地机器}:{本地端口} {远程机器}
# 或
ssh -Nf -R {远程绑定地址}:{远程端口}:{本地机器}:{本地端口} {远程机器}
image.png
- 如上图
# 先在我们公司内网主机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
网友评论