Windows ssh 客户端 PuTTY 正向与反向流量转发

在我的上篇日记“ssh正向和反向流量转发”( https://www.learndiary.com/2022/01/ssh-forward/ )中,我介绍了在 Linux 中怎样用 ssh 客户端在网关电脑中打通内外网连接。今天,换成 Windows 7 网关电脑中的 ssh 客户端 PuTTY 来做同样的事情。同样,使用虚拟机模拟1台 Windows 7 网关电脑和 2台 Linux 电脑加上宿主机的 Deepin Linux 来做演示。视频演示地址:https://www.bilibili.com/video/BV15q4y1y7Gh?share_source=copy_web

Windows ssh 客户端 PuTTY 正向与反向流量转发


一、各主机及网络状态

各主机的 IP 如下:
A: 网关 Windows 7,10.0.2.15,10.0.0.1
B: littlebat@openeuler,10.0.0.2
C: test@i7,192.168.1.11
D: test@centos,192.168.1.12

各主机连通性如下:
A、B 在同一个局域网 10.0.0.0/24 内,可以互访;
C、D 在同一个局域网 192.168.1.0/24 内,可以互访;
A 通过另一接口 10.0.2.15 可以访问 C、D;
B 不能访问 C、D;
C、D 均不能访问 A、B。

主机 C 开放 ssh 服务器 22 端口,主机 B、D 开放 http 服务器 80 端口。主机 A 的 ssh 客户端 PuTTY 连接 C 的 ssh 服务器,示范正向把 A 的 8088 端口转发到 D 的 80 端口,和反向把 C 的 8088 转发到 B 的 80 端口。

二、正向转发
把 A 的 8088 端口转发到 D 的 80 端口,使 B 访问 A 的 8088 端口从而访问到 D 的 http 服务。
如果 A 是 Linux 主机,可以在 A 中执行 ssh 客户端命令如下:
ssh -p 22 -L *:8088:192.168.1.12:80 test@192.168.1.11
这里 A 是 Windows 主机,可以用 ssh 客户端 PuTTY 来做:
1、点击 PuTTY 左侧的 “Session”,在 “Host Name(or IP address)” 和 “Port” 中分别填上 C 的 IP 192.168.1.11 和 ssh 端口 22,”Connection type” 保持 “SSH” 不变,“Saved Sessions” 取一个名字,如“Deepin_i7”;


2、点击左侧的“Connection”->“Data”,在右侧“Auto-login username”中填上 ssh 登录的用户名 “test”;

 
3、点击左侧的“Connection”->“SSH”->“Tunnels”,在右侧的“Source port” 填写“ :8088”(即一个空格+冒号+8088),“Destination” 填写“192.168.1.12:80”,下面不变,点击“ADD” 按纽(注意,如果“Source port”不填空格+冒号,点选上面的“Local ports accept connections from other hosts”也是一样的效果);


或者:


4、点击左侧“Session”,点击右侧的“Save”按纽保存“Deepin_i7”的配置;
5、点击右侧下方“open”按纽,如是初次登录,会跳出一些验证提示,点击”Accept”同意就行,然后输入”test”用户的登录密码,进入 Deepin_i7 主机。同时转发成功。
这时,在 B 主机 openEuler 上,访问 http://10.0.0.1:8088 就行了。

三、反向转发
把 C 的 8088 转发到 B 的 80 端口,使 D 访问 C 的 8088 端口从而访问到 B 的 http 服务。
首先设置 C 的 /etc/ssh/sshd_config 的 Gateway = yes 。
如果 A 是 Linux 主机,可以在 A 中执行 ssh 客户端命令如下:
ssh -p 22 -R 8088:10.0.0.2:80 test@192.168.1.11
这里 A 是 Windows 主机,可以用 ssh 客户端 PuTTY 来做:
在上面“Deepin_i7”的配置基础上,直接进入第3步:
3、点击左侧的“Connection”->“SSH”->“Tunnels”,在右侧的“Source port” 填写“8088”,“Destination” 填写“10.0.0.2:80”,下面选择“Remote”,点击“ADD” 按纽(注意,这个反向转发的配置可以和上面的正向配置项并存的);


点击了“Add”按纽后和上面正向转发并存时的样子如下:


4、点击左侧“Session”,点击右侧的“Save”按纽保存“Deepin_i7”的配置;
5、点击右侧下方“open”按纽,然后输入”test”用户的登录密码,进入 Deepin_i7 主机。同时转发成功。
这时,在 D 主机 CentOS 上,访问 http://192.168.1.11:8088 就行了。

 

四、后记
现在的 Windows 有内置的 WSL(即 Windows 的 Linux 子系统),里面的 ssh 客户端命令行应该也能做到原生 Linux 下的 ssh 一样的功能,我没有测试过。有兴趣的朋友不妨一试。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值