Netsh(Network Shell) 是一个Windows系统自带的一个功能强大的命令行配置工具。它允许用户显示或修改当前正在运行的计算机的网络配置。 netsh能够通过命令行操作几乎所有Windows系统中的网络设置,如设置IP地址、DNS、网卡、无线网络等。
下面介绍一下如何用netsh工具来做端口映射,以及相关的命令。
使用Netsh需要使用管理员权限启动命令行窗口或powershell窗口,netsh的常用二级命令包括:
? | 显示命令列表 |
add | 在项目列表上添加一个配置项目 |
set | 更新配置设置 |
show | 显示信息 |
advfirewall | 管理防火墙配置 |
bridge | 管理网络桥接配置 |
delete | 在项目列表上删除一个配置项目 |
dhcpclient | 管理DHCP客户端配置 |
dnsclient | 管理DNS配置 |
dump | 显示一个配置脚本 |
exec | 运行一个脚本文件 |
help | 显示命令列表 |
interface | 管理网络接口配置 |
ipsec | 管理ipsec配置 |
1. 添加端口映射
假设我们需要将到达本机上某个端口的流量映射到目标主机的目标端口,可以使用如下命令
netsh interface portproxy add v4tov4 listenaddress=<本机IP> listenport=<本机端口> connectaddress=<目标IP> connectport=<目标端口>
下例中,会将当前主机2022端口上的所有网络流量映射到目标主机192.168.0.50的22端口上:
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=2002 connectaddress=192.168.0.50 connectport=22
netsh命令执行成功后即时生效,并且重启系统不会丢失。
执行完上述操作,还需要在本机防火墙上添加一个相应端口的入站规则,才能使端口映射功能完全配置完成,命令如下:
netsh advfirewall firewall add rule name=in_rule dir=in action=allow protocol=tcp localport=2002
2. 查看端口映射
netsh interface portproxy show all
或者,针对IPv4网络:
netsh interface portproxy show v4tov4
3. 删除端口映射
netsh interface portproxy delete v4tov4 listenaddress=<本机IP> listenport=<本机端口>
在netsh工具的下级命令中可以使用‘?’命令并回车,以获取更多有用提示。