Windows中netsh命令实现端口转发
在使用服务器的时候由于仅windows服务器拥有独立IP,而数据库位于内网。为了开发调试方便现在需要能够映射数据库端口到外网。
经网上查阅资料windows自带了Interface Portproxy,刚好这东西能够满足需求。
使用方法
语法:
1 | netsh interface portproxy delete v4tov6listenport= {Integer | ServiceName} [[listenaddress=] {IPv4Address| HostName}] [[protocol=]tcp] |
服务器相关的参数:
数据库IP:
172.16.0.100
端口:
3306
服务器IP:
172.16.0.56
需要映射的端口:
36033
1 | netsh interface portproxy add v4tov4 listenport=36033 connectaddress=172.16.0.100 connectport=3306 |
接下来就可以通过外网IP加端口 36033
访问数据库了,下面记录一下相关的参数
参数:
listenport
: 必需,指定要监听的端口listenaddress
: 需要监听的计算机 IP,未指定则默认值为本机connectport
: 需要转发的端口,未指定则默认值为本地计算机上的listenport
connectaddress
: 需要转发的计算机 IP,未指定则默认值为本机protocol
: 指定的协议,暂仅支持 TCP
相关命令
查看
powershell 1
netsh interface portproxy show all
修改
powershell 1
netsh interface portproxy set v4tov4 listenport=33306 connectaddress=172.16.0.100 connectport=3306
删除
powershell 1
netsh interface portproxy delete v4tov4 listenport=36033
注意事项
如果系统是 xp/2003
的话,要先安装 ipv6: netsh interface ipv6 install
请确保防火墙(Windows防火墙或通常包含在杀毒软件中的第三方防火墙)允许到新端口的传入连接。 如有必要,可以使用以下命令添加新的 Windows 防火墙规则:
1 | netsh advfirewall firewall add rule name="portproxy_1344" protocol=TCP dir=in localip=172.16.0.100 localport=36033 action=allow |
如果该命令未返回任何内容并且通过 netsh interface portproxy
进行端口转发不成功,则请确保 iphlpsvc(IP Helper)
服务当前已在你的系统上运行
- 本文标题:Windows中netsh命令实现端口转发
- 本文作者:akiya
- 本文链接:https://little-star.love/posts/5eb87466/
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!