背景
最近租了一个windwos系统的服务器和sqlserver数据库。服务器有外网ip,数据库只能内网访问,为了开发方便,需要做个端口转发,实现通过外网连接内网的sqlserver。刚好windows自带了Interface Portproxy这个东西,能满足要求,下面简单记录一下配置过程
简介
相关的参数:数据库IP:172.16.0.123
端口:1433
服务器IP:172.16.0.10
需要映射的端口:1344
,接下来就是一条命令搞定了<!–more–>
netsh interface portproxy add v4tov4 listenport=1344 connectaddress=172.16.0.123 connectport=1433
接下来就可以通过外网IP加端口 1344
访问sqlserver了,下面记录一下相关的参数
- listenport 必需。指定要监听的端口
- listenaddress 需要监听的计算机ip,未指定则默认值为本机
- connectport 需要转发的端口,未指定则默认值为本地计算机上的listenport
- connectaddress 需要转发的计算机ip,未指定则默认值为本机
- protocol 指定的协议,暂仅支持TCP
相关命令
查看
netsh interface portproxy show all
修改
netsh interface portproxy set v4tov4 listenport=1333 connectaddress=172.16.0.123 connectport=1433
删除
netsh interface portproxy delete v4tov4 listenport=29090
注意事项
如果系统是xp/2003的话,要先安装ipv6 netsh interface ipv6 install
请确保防火墙(Windows防火墙或通常包含在杀毒软件中的第三方防火墙)允许到新端口的传入连接。 如有必要,可以使用以下命令添加新的Windows防火墙规则:
netsh advfirewall firewall add rule name=”forwarded_RDPport_1344” protocol=TCP dir=in localip=172.16.0.10 localport=1344 action=allow
如果该命令未返回任何内容并且通过netsh interface portproxy进行端口转发不成功,则请确保iphlpsvc(IP Helper)服务当前已在你的系统上运行