0.需要条件
- NAT1,也就是 full cone
- OPENWRT 路由器,在路由器上安装 natmap 更方便,而且路由器配置端口转发很方便。
先说明一下我的网络环境,方便理解。
如果有哪个步骤看不懂,请根据我的网络拓扑,思考下自己的情况,作出适当调整。
猫桥接 -> XIAOMI 路由器官方固件,拨号+开启 DMZ -> openwrt 无线中继 -> 电脑
1.检测自己的 nat 类型
工具:https://github.com/HMBSbige/NatTypeTester
Tips
检测之前需要先开启所有上级路由器的 DMZ。
以及关闭 windows 防火墙(或者给软件开防火墙白名单,就不需要关闭 windows 防火墙),
这样才能正确的检测 NAT 类型。
普通路由器固件应该都有 DMZ,openwrt 需要开端口转发,设置在 network-> firewall -> port forwards
Protocol:any
Source zone: WAN
Destination zone:LAN
Internal IP address:电脑 IP
测试完 nat 类型,删除掉这个规则。
2.路由器安装 natmap
https://github.com/heiher/natmap
安装超级简单,我用的是 openwrt 官方固件,直接应用商店安装 luci-app-natmap 即可。
其他 lede 固件等,需要你们自行研究安装,我没用过。
3.设置 NATMAP
登录路由器后台,打开 NATMAP 设置界面
STUN server:stun.freeswitch.org
HTTP server:qq.com
Bind port:随便,但是下一步会用到
其他默认即可
保存并启用之后,就可以看到公网 IP 和公网端口啦。没有获取成功,请查看日志。
status -> system log 搜索 natmap 查看失败原因。
3.1 测试
可以使用路由器 80 端口测试,如果设置正确,可以通过公网 IP+公网端口访问路由器界面。
NATMAP 设置:
STUN server:stun.freeswitch.org
HTTP server:qq.com
Bind port:80
因为是访问路由器管理界面,不需要转发到电脑上,所以不需要设置端口转发。
但是需要开启路由器防火墙。参考步骤 5,关闭防火墙。
开启防火墙之后就可以通过 Natmap 显示的公网 ip+端口访问路由器管理界面了
http://ip:port
测试完成后删除这个 natmap 设置和防火墙规则,否则可以用外网访问,可能会有安全风险。
4.设置端口转发
openwrt -> network-> firewall -> port forwards
openwrt 添加端口转发规则:
Source zone:WAN
External port:第三步 Natmap 设置时填写的 bind port
Destination zone:LAN
Internal IP address:电脑 IP
Internal port:电脑上的 qb 监听端口,也就是第三步获取的公网端口。
保存应用就好了。
5. 设置防火墙规则,(不确定是否必选)
设置了端口转发,按理说就不用设置防火墙规则了。
如果你不行,可以设置一下试试
openwrt -> network-> firewall -> Traffic Rules
Protocol:any
Source zone:WAN
Destination zone:Device
advanced settings -> Restrict to address family: IPV4
保存并应用