背景

在使用服务器的时候由于仅windows服务器拥有独立IP,而数据库位于内网。为了开发调试方便现在需要能够映射数据库端口到外网。
经网上查阅资料windows自带了Interface Portproxy,刚好这东西能够满足需求。

使用方法

语法:

netsh interface portproxy delete v4tov6listenport= {Integer | ServiceName} [[listenaddress=] {IPv4Address| HostName}] [[protocol=]tcp]

服务器相关的参数:

  • 数据库IP: 172.16.0.100
  • 端口: 3306
  • 服务器IP: 172.16.0.56
  • 需要映射的端口: 36033
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

相关命令

查看

netsh interface portproxy show all

修改

netsh interface portproxy set v4tov4 listenport=33306 connectaddress=172.16.0.100 connectport=3306

删除

netsh interface portproxy delete v4tov4 listenport=36033

注意事项

如果系统是xp/2003的话,要先安装ipv6: netsh interface ipv6 install

请确保防火墙(Windows防火墙或通常包含在杀毒软件中的第三方防火墙)允许到新端口的传入连接。 如有必要,可以使用以下命令添加新的Windows防火墙规则:

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命令实现端口转发
作者:akiya789
地址:https://little-star.love/articles/2019/12/29/1577631726567.html

添加新评论