deepin-mq
2022-01-10 17:15 deepin
感谢分享
Reply Like 0 View the author
感谢分享
netsh interface portproxy add v4tov4 listenport=8080 connectaddress=D connectport=80
A是Windows操作系统,在A上直接运行这条命令转发不是更简单吗?
PortTunnel也很好使啊
专业的代理 还是选用Nginx吧
专业的代理 还是选用Nginx吧
统统的收下,不错,学习了👍
ssh 命令就支持这些功能还有必要使用putty?
Popular Events
More
(原文地址:学习日记 https://www.learndiary.com/2022/01/putty-forward/ )
在我的上篇日记“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
一、各主机及网络状态
各主机的 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 [email protected]
这里 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 [email protected]
这里 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 一样的功能,我没有测试过。有兴趣的朋友不妨一试。