很久没有用过 Windows 做开发,但最近一个项目需要通过 Windows 作为跳板机,连上 VPN 后才能访问到内网主机。

如果在 Windows 主机上开发或者传文件,显然不方便,自然想到用端口转发解决。

刚开始用 SSH 隧道端口转发,但是 SSH 连接容易断,传文件很不稳定,最后发现系统自带端口转发命令,可以很方便地实现所需功能。

环境介绍

Windows 主机局域网网地址: 192.168.10.100,连 VPN 后 IP: 10.0.5.10

目标内网服务器 IP: 10.0.5.200

本机和 Windows 在同一个局域网,Windows 主机连上 VPN 后和内网服务器同一个子网。

基本思路就是在 Windows 上配置端口转发,把流量直接发到内网服务器的 22 端口上。

配置端口转发

在 Windows 主机上用管理员模式开启命令行,输入以下命令

1
netsh interface portproxy add v4tov4 listenport=1222 connectport=22 connectaddress=10.0.5.10

netsh interface portproxy show v4tov4 查看所有已开启的端口转发规则。

这时访问 192.168.10.100:1222 实际上转发到了 10.0.5.200:22,也就实现了其他机器通过 Windows 跳板机连接内网服务器的目的。

SSH 连接命令:

1
$ ssh [email protected] -p 1222

删除端口转发

如果用完需要删除,用以下命令删除上面创建的规则:

1
netsh interface portproxy delete v4tov4 listenport=1222 connectport=22 connectaddress=10.0.5.10

清空所有转发规则:

1
netsh interface portproxy reset