目前有A、B终端和一台服务器,A、B机器不能直接访问,服务器不能直接访问A、B终端但是A、B终端可以访问服务器,这个场景很像我们有一台电脑在单位内网,外机器想访问内网系统,可能大家目前想到的就是frp之类穿透工具,在网络严格管理情况下,防火墙能识别到这些数据包并被中断。
实现方式:
第一种方式:使用Xshell方式:
在B电脑打开Xshell
配置好后B电脑连接上ssh,然后上面执行:
socat TCP-LISTEN:9080,fork,bind=0.0.0.0 TCP:localhost:9085
如果socat不存在使用yum install socat -y 安装
A电脑访问:http://服务器IP:9080 就可以访问到B电脑提供的服务了
第二种方式,使用PutTTY
官方下载地址:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
B电脑打开
Destination是B电脑映射的地址及端口,我们如果只映射B电脑本机那就是localhost
改好后可以再点Session进行点一下save再点Open按钮就不会丢配置了.
上面方法还有一个完美的替代方案就是创建一个putty快捷方式
"C:\Program Files\PuTTY\putty.exe" -ssh -l 账号 -pw 密码 -P 22 -R 9086:localhost:80 101.2.11.22
-P 是链接的ssh端口,
-R 9086是映射到服务器的端口,localhost:80 是本地网络的地址和端口,将这个80映射到服务器9086
如果有私钥也可以增加 -i “c:\xxx.key”
可以在服务器上测试一下,使用 curl http://localhost:9086/test/test.html
如果测试访问到B电脑本机页面接口表示测试正常,服务器命令行执行:
socat TCP-LISTEN:9080,fork,bind=0.0.0.0 TCP:localhost:9086
如果socat不存在使用yum install socat -y 安装
A电脑访问:http://服务器IP:9080 就可以访问到B电脑提供的服务了