Debugger Chen
Debugger Chen
我用两台xiaomi路由器测试过了没有问题,如果有其他设备也可以试一试。 最近赶论文暂时顾不上了o(╥﹏╥)o
> 我早前尝试过在尽可能少引入新依赖的前提下实现 upnp-igd 协议,commit 在这里,不过还没有完全调通,我的 openwrt 会报奇怪的错误。 > > [f272a17#diff-fd68a3890144ee6ac17a4d82457cc42460e79b8d9fa195156aa48fe32c85ce20](https://github.com/EasyTier/EasyTier/commit/f272a1775ec75ce162b6d25db3355f128624a914#diff-fd68a3890144ee6ac17a4d82457cc42460e79b8d9fa195156aa48fe32c85ce20) 不知道这个问题跟我在igd-next那边遇到的问题是否一致。 我用那个库的时候也遇到了报错。调试后发现是路由器上的miniupnpd会在upnp client search_gateway时同时以IPv4地址和IPv6地址响应,而且IPv6地址响应更快一些,导致会优先解析到IPv6地址。但是client代码在构造upnp url时,对IPv6地址url的构造是错误的,导致会报错。 此外,IPv6的upnp映射协议和IPv4的映射协议不同,加上miniupnpd貌似会要求client source ip和映射请求中的internal ip一致,导致向IPv6 upnp server请求映射IPv4地址下的某个端口就会报错。 我在igd-next那边提的PR就是加了一下对IPv6 upnp地址的过滤。大佬如果想自己实现的话,可以看看是不是上述问题导致的。
> 为啥这里的修复不是让它构造正确的 url 呢 也构造了正确的url,但是构造正确也没啥实际用途,因为↓ > 此外,IPv6的upnp映射协议和IPv4的映射协议不同,加上miniupnpd貌似会要求client source ip和映射请求中的internal ip一致,导致向IPv6 upnp server请求映射IPv4地址下的某个端口就会报错。 想用IPv6 upnp应该要实现IGDv2协议,但是懒了就没搞😂
@yh4922 尝试设置"禁用对称NAT打洞"。应该是巨量UDP打洞数据包导致的告警
对称NAT打洞是有一些DoS/端口扫描的特征的,可能被当成攻击了
@KKRainbow 我这也出现了一样的问题,经检查应该是由于对称NAT打洞导致短时间内发送巨量不同端口的UDP数据包,触发上游防火墙断网。选择"禁用对称NAT打洞"后功能恢复正常。 @jafyang 你可以也试一下这样能否解决你的问题。此问题可能与 #1504 #1502 相关 考虑在UI中提醒一下启用对称NAT打洞可能的风险?
可能要控制一下对称打洞的速率?
@Q4n @TonyYu123 尝试“禁用对称NAT打洞”
> 可以说一下转成配置文件中是叫啥的吗? [flags] disable_sym_hole_punching = true