xiaorouji / openwrt-passwall

7.03k stars 2.62k forks source link

[Bug]: 不定期断连 #3409

Open iTofu opened 1 week ago

iTofu commented 1 week ago

描述您遇到的bug

在通过 Socks 自动选择节点的方式配置后,断则两三个小时长则十几个小时 Trojan 节点会不定期断连,进入 PW 页发现 DNS 不是“运行中”而是“未运行”,日志发现 Socks 一直在尝试切节点,同时家中设备上网出现各种异常,如大部分国内外主流网页直接打不开。

此时手动切换主开关又恢复正常,也即并非节点挂了,另一方面手机上的代理工具同样的节点配置是一直正常的。

复现此Bug的步骤

通过 https://github.com/xiaorouji/openwrt-passwall/issues/2721 的方式配置好自动切换后,开启主开关/自动更新规则等产生的重启服务,都有可能导致该问题。 具体的配置我在下面截图贴吧。

您想要实现的目的

我的期望

我的场景相对比较简单:机场的七八个 Trojan 节点能自动切换+稳定运行,主打一个开箱即用,和配置完再也不用打开 PW。

对 OpenWRT 上🪜的期望是大致能用+稳定,保持 Full Cone NAT + 能让家里设备跳过 GFW 即可。对于有更细致的分流需求的设备,比如 工作MBP/主力机iPhone 有 Surge 搭配自己写的规则来处理。

日志信息

比如下列日志中的 2024-09-22 12:22:32 大概是该次断连时间点:

2024-09-22 04:09:38: 删除nftables防火墙规则完成。
2024-09-22 04:09:38: 清空并关闭相关程序和缓存完成。
2024-09-22 04:09:38: 分析 Socks 服务的节点配置...
2024-09-22 04:09:38:   - Socks节点:[🇭🇰 香港 ³ x 1.0]03.giant.hk.matchacocoa.com:443,启动 0.0.0.0:1081
2024-09-22 04:09:38: TCP节点:[AUTO],监听端口:1041
2024-09-22 04:09:38: UDP节点没有选择或为空,不代理UDP。
2024-09-22 04:09:38: DNS域名解析:
2024-09-22 04:09:38:   * 请确认上游 DNS 支持 TCP 查询,如非直连地址,确保 TCP 代理打开,并且已经正确转发!
2024-09-22 04:09:38:   - ChinaDNS-NG(127.0.0.1#15353):直连DNS:202.106.195.68,202.106.46.151,可信DNS:tcp://9.9.9.9#53
2024-09-22 04:09:38:   - 节点列表中的域名(vpslist):默认
2024-09-22 04:09:38:   - 域名白名单(whitelist):默认
2024-09-22 04:09:38:   - 代理域名表(blacklist):默认
2024-09-22 04:09:38:   - 防火墙域名表(gfwlist):默认
2024-09-22 04:09:38:   - 默认:127.0.0.1#15353
2024-09-22 04:09:38:   - PassWall必须依赖于Dnsmasq,如果你自行配置了错误的DNS流程,将会导致域名(直连/代理域名)分流失效!!!
2024-09-22 04:09:38: 开始加载防火墙规则...
2024-09-22 04:09:39:   - [0]追加ISP IPv4 DNS到白名单:202.106.195.68
2024-09-22 04:09:39:   - [0]追加ISP IPv4 DNS到白名单:202.106.46.151
2024-09-22 04:09:39:   - [0]追加ISP IPv6 DNS到白名单:2408:8000:1010:1::8
2024-09-22 04:09:40:   - [0]追加ISP IPv6 DNS到白名单:2408:8000:1010:2::8
2024-09-22 04:09:40:   - [0]加入负载均衡的节点到nftset[passwall_vpslist]直连完成
2024-09-22 04:09:40:   - [1]加入所有节点到nftset[passwall_vpslist]直连完成
2024-09-22 04:09:40:   - [0]追加直连DNS到nftables:202.106.195.68:53
2024-09-22 04:09:40:   - [0]追加直连DNS到nftables:202.106.46.151:53
2024-09-22 04:09:40:   - 【路由器本机】,屏蔽代理 UDP 端口[443]
2024-09-22 04:09:40:   - [0]将上游 DNS 服务器 9.9.9.9:53 加入到路由器自身代理的 TCP 转发链
2024-09-22 04:09:40:   - 访问控制:
2024-09-22 04:09:41:      - 【默认】,屏蔽代理 UDP 端口[443]
2024-09-22 04:09:41:      - 【默认】,使用 TCP 节点[AUTO](REDIRECT:1041)
2024-09-22 04:09:41: 防火墙规则加载完成!
2024-09-22 04:09:41: 重启 dnsmasq 服务
2024-09-22 04:09:41: 配置定时任务:自动更新规则。
2024-09-22 04:09:41: 配置定时任务:自动更新【xflash】订阅。
2024-09-22 04:09:41: 运行完成!

2024-09-22 07:00:00: 开始更新规则...
2024-09-22 07:00:00: gfwlist 开始更新...
2024-09-22 07:00:01: gfwlist 版本一致,无需更新。
2024-09-22 07:00:01: chnroute 开始更新...
2024-09-22 07:00:14: chnroute 更新成功,总规则数 11244 条。
2024-09-22 07:00:14: chnroute6 开始更新...
2024-09-22 07:00:16: chnroute6 更新成功,总规则数 3230 条。
2024-09-22 07:00:16: chnlist 开始更新...
2024-09-22 07:00:18: chnlist 版本一致,无需更新。
2024-09-22 07:00:18: 重启服务,应用新的规则。
2024-09-22 07:00:18: 规则更新完毕...
2024-09-22 07:00:19: 删除nftables防火墙规则完成。
2024-09-22 07:00:20: 删除nftables防火墙规则完成。
2024-09-22 07:00:20: 清空并关闭相关程序和缓存完成。
2024-09-22 07:00:20: 分析 Socks 服务的节点配置...
2024-09-22 07:00:20:   - Socks节点:[🇭🇰 香港 ³ x 1.0]03.giant.hk.matchacocoa.com:443,启动 0.0.0.0:1081
2024-09-22 07:00:20: TCP节点:[AUTO],监听端口:1041
2024-09-22 07:00:20: UDP节点没有选择或为空,不代理UDP。
2024-09-22 07:00:20: DNS域名解析:
2024-09-22 07:00:20:   * 请确认上游 DNS 支持 TCP 查询,如非直连地址,确保 TCP 代理打开,并且已经正确转发!
2024-09-22 07:00:20:   - ChinaDNS-NG(127.0.0.1#15353):直连DNS:202.106.195.68,202.106.46.151,可信DNS:tcp://9.9.9.9#53
2024-09-22 07:00:20:   - 节点列表中的域名(vpslist):默认
2024-09-22 07:00:20:   - 域名白名单(whitelist):默认
2024-09-22 07:00:20:   - 代理域名表(blacklist):默认
2024-09-22 07:00:20:   - 防火墙域名表(gfwlist):默认
2024-09-22 07:00:20:   - 默认:127.0.0.1#15353
2024-09-22 07:00:20:   - PassWall必须依赖于Dnsmasq,如果你自行配置了错误的DNS流程,将会导致域名(直连/代理域名)分流失效!!!
2024-09-22 07:00:20: 开始加载防火墙规则...
2024-09-22 07:00:21:   - [0]追加ISP IPv4 DNS到白名单:202.106.195.68
2024-09-22 07:00:21:   - [0]追加ISP IPv4 DNS到白名单:202.106.46.151
2024-09-22 07:00:21:   - [0]追加ISP IPv6 DNS到白名单:2408:8000:1010:1::8
2024-09-22 07:00:21:   - [0]追加ISP IPv6 DNS到白名单:2408:8000:1010:2::8
2024-09-22 07:00:21:   - [0]加入负载均衡的节点到nftset[passwall_vpslist]直连完成
2024-09-22 07:00:21:   - [1]加入所有节点到nftset[passwall_vpslist]直连完成
2024-09-22 07:00:21:   - [0]追加直连DNS到nftables:202.106.195.68:53
2024-09-22 07:00:21:   - [0]追加直连DNS到nftables:202.106.46.151:53
2024-09-22 07:00:22:   - 【路由器本机】,屏蔽代理 UDP 端口[443]
2024-09-22 07:00:22:   - [0]将上游 DNS 服务器 9.9.9.9:53 加入到路由器自身代理的 TCP 转发链
2024-09-22 07:00:22:   - 访问控制:
2024-09-22 07:00:22:      - 【默认】,屏蔽代理 UDP 端口[443]
2024-09-22 07:00:22:      - 【默认】,使用 TCP 节点[AUTO](REDIRECT:1041)
2024-09-22 07:00:22: 防火墙规则加载完成!
2024-09-22 07:00:22: 重启 dnsmasq 服务
2024-09-22 07:00:22: 当前为计划任务自动运行,不重新配置定时任务。
2024-09-22 07:00:22: 运行完成!

2024-09-22 12:22:32: 自动切换检测:SbZqyjz0【sing-box:[🇭🇰 香港 ³ x 1.0]】异常,切换到下一个备用节点检测!
2024-09-22 12:23:48: 自动切换检测:SbZqyjz0【sing-box:[🇯🇵 日本 ¹ x 1.0]】异常,切换到下一个备用节点检测!
2024-09-22 12:25:05: 自动切换检测:SbZqyjz0【sing-box:[🇸🇬 新加坡 ¹ x 1.0]】异常,切换到下一个备用节点检测!
2024-09-22 12:26:21: 自动切换检测:SbZqyjz0【sing-box:[🇺🇸 美国 ¹ x 1.0]】异常,切换到下一个备用节点检测!
2024-09-22 12:27:38: 自动切换检测:SbZqyjz0【sing-box:[🇦🇺 澳大利亚 ¹ x 0.6]】异常,切换到下一个备用节点检测!
2024-09-22 12:28:54: 自动切换检测:SbZqyjz0【sing-box:[🇮🇳 印度 ¹ x 0.6]】异常,切换到下一个备用节点检测!
2024-09-22 12:30:11: 自动切换检测:SbZqyjz0【sing-box:[🇬🇧 英国 ¹ x 0.6]】异常,切换到下一个备用节点检测!
2024-09-22 12:31:27: 自动切换检测:SbZqyjz0【sing-box:[🇨🇦 加拿大 ¹ x 0.6]】异常,切换到下一个备用节点检测!
2024-09-22 12:32:44: 自动切换检测:SbZqyjz0【sing-box:[🇰🇷 韩国 ² x 0.9]】异常,切换到下一个备用节点检测!
2024-09-22 12:34:00: 自动切换检测:SbZqyjz0【sing-box:[🇯🇵 日本 ¹ x 1.0]】异常,切换到下一个备用节点检测!
2024-09-22 12:35:16: 自动切换检测:SbZqyjz0【sing-box:[🇸🇬 新加坡 ¹ x 1.0]】异常,切换到下一个备用节点检测!
2024-09-22 12:36:33: 自动切换检测:SbZqyjz0【sing-box:[🇺🇸 美国 ¹ x 1.0]】异常,切换到下一个备用节点检测!
2024-09-22 12:37:49: 自动切换检测:SbZqyjz0【sing-box:[🇦🇺 澳大利亚 ¹ x 0.6]】异常,切换到下一个备用节点检测!
2024-09-22 12:39:06: 自动切换检测:SbZqyjz0【sing-box:[🇮🇳 印度 ¹ x 0.6]】异常,切换到下一个备用节点检测!

截图

主配置界面:

Xnip2024-09-22_16-11-05

DNS:

Xnip2024-09-22_16-13-00

模式:

Xnip2024-09-22_16-13-09

Socks 节点:

Xnip2024-09-22_16-11-35

Socks AUTO 节点:

Xnip2024-09-22_16-11-55

某个 Trojan 节点参考:

Xnip2024-09-22_16-12-31

系统相关信息

其他信息

一种可能性: 印象里之前用的是 trojan-plus 来处理,似乎没有这种断连问题。但机场后来使用了 WebSocket,而 trojan-plus 貌似不支持 ws,只能换成 SingBox/Xray 来处理 Trojan 节点,似乎就有了这个问题,sb/xray 都这样。

非常感谢 PassWall 的开发者们的工作,同时我对网络和代理这块的了解非常粗浅,希望大佬们有空了帮我瞅一瞅咋肥事 orz

lwb1978 commented 1 week ago

你的"Socks AUTO 节点"改成类型:sing-box或xray、协议:socks,这样看。

iTofu commented 1 week ago

你的"Socks AUTO 节点"改成类型:sing-box或xray、协议:socks,这样看。

好的,我改成 类型:sing-box、协议:socks 了,观察一下。

iTofu commented 5 days ago

你的"Socks AUTO 节点"改成类型:sing-box或xray、协议:socks,这样看。

不行,singbox/xray 都试过了,表现和之前一样,DNS 显示的“未运行”,但坚持时间似乎比直接设置 SOCKS 久一点,能坚持小半天吧……