MikeWang000000 / Natter

Expose your TCP/UDP port behind full-cone NAT to the Internet.
GNU General Public License v3.0
1.31k stars 107 forks source link

链接无法保持,不到一分钟将会断开重新打洞(怀疑是运营商作妖) #43

Closed 1368129224 closed 4 months ago

1368129224 commented 5 months ago

使用v2版本测试,打通后不到一分钟就会报错:[E] keep-alive: connection broken: timed out 无法正常使用,不知道这个报错是什么原因?是用户侧问题,还是运营商作妖?

1368129224 commented 5 months ago

另外请问一下v2版本能否通过文件进行配置,和hook应该怎么设置?

MikeWang000000 commented 5 months ago

为了方便定位问题,麻烦提供以下信息:

然后使用 -v 选项,贴上完整的日志(敏感信息如 IP 地址可以去掉):


使用方法请参考相关文档:

v2 版本,程序本体仅支持命令行参数运行,复杂配置请使用 docker compose 配置文件。

1368129224 commented 5 months ago

2024-01-24 13:33:56 [I] Natter v2.0.0-rc1
2024-01-24 13:33:56 [I] Tips: Use `--help` to see help messages
2024-01-24 13:34:00 [I] 
2024-01-24 13:34:00 [I] tcp://192.168.1.100:42379 <--Natter--> tcp://110.184.66.216:33856
2024-01-24 13:34:00 [I] 
2024-01-24 13:34:00 [I] Test mode in on.
2024-01-24 13:34:00 [I] Please check [ http://110.184.66.216:33856 ]
2024-01-24 13:34:00 [I] 
2024-01-24 13:34:00 [I] LAN > 192.168.1.100:42379   [ OPEN ]
2024-01-24 13:34:00 [I] LAN > 192.168.1.100:42379   [ OPEN ]
2024-01-24 13:34:00 [I] LAN > 110.184.66.216:33856  [ OPEN ]
2024-01-24 13:34:01 [I] WAN > 110.184.66.216:33856  [ OPEN ]
2024-01-24 13:34:01 [I]
MikeWang000000 commented 5 months ago

新给的日志中没有找到 timed out 字样。

完整的日志中,看起来是 keep-alive(保活)机制没有生效:第一次检查的端口是33409,五分钟之后重新检查端口变成了36096。(Natter 尝试维持端口固定,但是最终还是意外地改变了)

没能保活,特点就是端口打通的一瞬间是开放的,但是时间很短,一分钟甚至几秒后就关闭了。从日志看,您的端口确实在一瞬间打开过,ifconfig.co 的检测结果也显示打开 "reachable": true


以下几种情况,可能会遇到这种问题,可以参考一下:

1368129224 commented 5 months ago

新给的日志中没有找到 timed out 字样。

我把keep alive服务器从www.baidu.com修改为www.qq.com以后没有出现time out情况

完整的日志中,看起来是 keep-alive(保活)机制没有生效:第一次检查的端口是33409,五分钟之后重新检查端口变成了36096。(Natter 尝试维持端口固定,但是最终还是意外地改变了)

没能保活,特点就是端口打通的一瞬间是开放的,但是时间很短,一分钟甚至几秒后就关闭了。从日志看,您的端口确实在一瞬间打开过,ifconfig.co 的检测结果也显示打开 "reachable": true

是的,我昨天测试时链接一分钟左右就会关闭,端口会频繁地改变,今天不知道为什么变成了5分钟左右才会变

以下几种情况,可能会遇到这种问题,可以参考一下:

  • 路由器使用了多拨;

没有使用多拨

  • 使用了透明代理;

NAS有运行clash客户端,可能有影响?

  • 运营商有多重出口,使用了负载均衡(典型的例子是查询本机IP来回跳,或者国内外查询本机IP不一致);

从多个网站查询IP未发现可疑情况

  • 运营商使用了我还没有见过的奇怪网络策略;
  • Natter 有 Bug(我暂时没有找到);

另外有一点奇怪的是,在测试中有小概率是能够保持链接的,但日志我没能保存下来。是否和keep alive服务器或STUN服务器有关?

我把代理关掉再调调看

MikeWang000000 commented 5 months ago

顺带说一句,端口保活其实有两种方法:

总的来说,就是你的端口有流量的情况下,运营商一般不会回收,Natter 就是想方设法造出点流量。流量如果经过 clash 透明代理,可能会发生改变,可以暂时关闭试试?

1368129224 commented 4 months ago

近两周未复现问题,能够稳定保持链接,关闭issue。