最近帮一个哥们搞 Wake on LAN ( WOL ),在 OpenWrt 上配置好了端口映射和 DDNS ,把 UDP 9 号端口映射出去。他用的是联通网络,有公网 IP ,一切看起来都没问题。我在广东用手机装了个 RemoteBoot ,通过域名测试,能正常唤醒他的设备。在 OpenWrt 上抓包也确认有数据包到达。
但问题来了:他在本地用联通 5G 网络访问时,OpenWrt 死活收不到他发出的包。我一开始怀疑是 DDNS 解析出了问题,于是让他用手机上的 Net Analyzer ping 了一下域名,解析出来的 IP 是正确的,没毛病。后来试着把域名换成直接用 IP 访问,包居然能正常收到!
这让我意识到,可能是联通对未备案域名加端口号的出站访问做了限制,域名得在白名单里才行。他用的 DDNS 域名没备案,估计是卡在这儿了。为了验证,我拿自己的已备案域名做测试,解析了一条 CNAME 记录指向他的 DDNS 域名,结果还是不行;但如果直接解析 A 记录到他的公网 IP ,包就能通。
看来问题确实出在域名备案上,没备案的域名被联通屏蔽了出站访问。没办法,只能建议他去把域名备案了。
|