开启IP V6
你虽然可能用不到IPV6,但是有些系统是需要用到IPV6的dll来做端口转发的.
如图,确保你联网的连接已经开启 IPV6
检查IP Helper服务
打开任务管理器
点击 服务
查看iphlpsvc是否启动状态,点击右键如果显示的是停止,就是已经启动了.
如果显示"启动服务"则该服务为停止状态.
为了方便可以直接使用cmd开启服务
net start iphlpsvc
也可以在"服务"中找到 IP Helper打开该服务,另外建议设置服务为 "自动"模式
检查命令,这一步很重要.
你可能是通过
netsh interface portproxy add v4tov4 listenaddress=* listenport=20000 connectaddress=127.0.0.1 connectport=22
这样方式来添加的.但是你在
netstat -ano
时并没有发现0.0.0.0 监听了 20000端口,你也不能正常使用20000端口进行22端口的访问.
先来解释一下这段命令和参数
-
netsh interface portproxy
既然你看到这篇文章你应该明白什么意思了. 就是使用系统端口转发
-
add
就是添加一条规则,也可以使用set代替
如果已经添加过相同的规则,会覆盖, 对于有交集 并集 差集的设置,不会覆盖和提示.
比如你设置 *.8080->192.168.1.2:80
和设置 192.168.1.2:8080->192.168.1.2:80
可以同时存在.
-
v4tov4
就是双端ipv4端口之间的转发
-
listenaddress
要监听的地址,就是流量会从什么地方进入.
0.0.0.0 就是从任何地方进入,传入*为等效.默认不传此参数也等效于*
127.0.0.1 就是从回环地址进入,也就是本机
192.168.1.x 等局域网地址进入,这个地址只能是本机的局域网IP,你不可能监听别人的流量转发到你这里.
-
listenport
要监听的端口,就是流量从什么端口进入
-
connectaddress
要转发到哪里的地址.就是最终提供服务功能的地方.
这个地址可以是任何地址,出网的也行,比如你想访问127.0.0.1:80转发到 33.33.33.33:80是可以把这个地址设置为33的.
了解这个设置,可以让你在配网或者开发的时候灵活的运用.
-
connectport
要转发到的端口.
再来回顾一下问题.
假如
- 你的路由器公网IP是33.33.33.33
- 内网IP 192.168.1.2
- 你使用路由映射将 33.33.33.33:20000端口映射到了192.168.1.2:3389,目的是不让你的3389暴露在33.33.33.33
所以你选择了做这样的转发.
这时候请注意:
127.0.0.1是回环地址,这种情况的转发 通常适用于
192.168.1.100->127.0.0.1的转发,而不是 0.0.0.0->127.0.0.1
所以你要用 0.0.0.0->192.168.1.2:3389就可以了.