xiaorouji / openwrt-passwall

7.02k stars 2.62k forks source link

[Bug]: 用最新源码编译后,运行一段时间系统日志不断报错。 #2990

Closed snakwu closed 6 months ago

snakwu commented 6 months ago

描述您遇到的bug

用最新源码编译后,运行一段时间系统日志不断报错。

复现此Bug的步骤

用最新源码编译后,运行一段时间系统日志不断报错。

您想要实现的目的

希望修复

日志信息

Sun Mar 3 19:08:48 2024 daemon.err dnsmasq[19]: nftset inet fw4 passwall_whitelist netlink: Error: cache initialization failed: Resource busy Sun Mar 3 19:09:08 2024 daemon.err dnsmasq[38]: nftset inet fw4 passwall_whitelist netlink: Error: cache initialization failed: Invalid argument Sun Mar 3 19:09:40 2024 daemon.err dnsmasq[104]: nftset inet fw4 passwall_whitelist6 netlink: Error: cache initialization failed: Resource busy Sun Mar 3 19:09:48 2024 daemon.err dnsmasq[156]: nftset inet fw4 passwall_whitelist Sun Mar 3 19:11:35 2024 daemon.err dnsmasq[225]: nftset inet fw4 passwall_whitelist6 netlink: Error: cache initialization failed: Resource busy Sun Mar 3 19:11:43 2024 daemon.err dnsmasq[236]: nftset inet fw4 passwall_whitelist netlink: Error: cache initialization failed: Resource busy Sun Mar 3 19:11:49 2024 daemon.err dnsmasq[238]: nftset inet fw4 passwall_whitelist netlink: Error: cache initialization failed: Resource busy Sun Mar 3 19:11:50 2024 daemon.err dnsmasq[242]: nftset inet fw4 passwall_whitelist6 netlink: Error: cache initialization failed: Resource busy Sun Mar 3 19:12:51 2024 daemon.err dnsmasq[330]: nftset inet fw4 passwall_whitelist netlink: Error: cache initialization failed: Invalid argument Sun Mar 3 19:13:24 2024 daemon.err dnsmasq[346]: nftset inet fw4 passwall_whitelist6 Error: No such file or directory Sun Mar 3 19:16:04 2024 daemon.err dnsmasq[513]: nftset inet fw4 passwall_whitelist netlink: Error: cache initialization failed: Resource busy Sun Mar 3 19:16:16 2024 daemon.err dnsmasq[526]: nftset inet fw4 passwall_whitelist netlink: Error: cache initialization failed: Resource busy Sun Mar 3 19:16:16 2024 daemon.err dnsmasq[530]: nftset inet fw4 passwall_whitelist6 netlink: Error: cache initialization failed: Resource busy Sun Mar 3 19:16:31 2024 daemon.err dnsmasq[553]: nftset inet fw4 passwall_whitelist6 netlink: Error: cache initialization failed: Resource busy Sun Mar 3 19:16:37 2024 daemon.err dnsmasq[565]: nftset inet fw4 passwall_whitelist Error: No such file or directory Sun Mar 3 19:16:41 2024 daemon.err dnsmasq[576]: nftset inet fw4 passwall_whitelist netlink: Error: cache initialization failed: Resource busy Sun Mar 3 19:16:41 2024 daemon.err dnsmasq[575]: nftset inet fw4 passwall_whitelist6 netlink: Error: cache initialization failed: Invalid argument Sun Mar 3 19:16:41 2024 daemon.err dnsmasq[578]: nftset inet fw4 passwall_whitelist netlink: Error: cache initialization failed: Invalid argument Sun Mar 3 19:16:48 2024 daemon.err dnsmasq[589]: nftset inet fw4 passwall_whitelist6 netlink: Error: cache initialization failed: Resource busy Sun Mar 3 19:16:55 2024 daemon.err dnsmasq[596]: nftset inet fw4 passwall_whitelist6 netlink: Error: cache initialization failed: Resource busy

截图

微信图片_20240303191700 微信图片_20240303191705

系统相关信息

Passwall 版本【 4.75-3 】 Xray 版本【 1.8.8 】

其他信息

No response

xiaorouji commented 6 months ago

nftables, help @ShanStone

ShanStone commented 6 months ago

dnsmasq的nftset实现问题,目前能给出的临时解决方法请勾选使用chinadns或者使用smartdns分支,尽量不要使用dnsmasq写入nftset. 我看dnsmasq的2.90有一条提交关于nftset的,到时候看看有没有修复这个问题

snakwu commented 6 months ago

dnsmasq的nftset实现问题,目前能给出的临时解决方法请勾选使用chinadns或者使用smartdns分支,尽量不要使用dnsmasq写入nftset. 我看dnsmasq的2.90有一条提交关于nftset的,到时候看看有没有修复这个问题

我是使用gfw模式和内网自建的dns,勾选chinadns,有影响吗?

ShanStone commented 6 months ago

dnsmasq的nftset实现问题,目前能给出的临时解决方法请勾选使用chinadns或者使用smartdns分支,尽量不要使用dnsmasq写入nftset. 我看dnsmasq的2.90有一条提交关于nftset的,到时候看看有没有修复这个问题

我是使用gfw模式和内网自建的dns,勾选chinadns,有影响吗?

可能会遇到你们说的dns泄漏?剩下的应该没有啥问题

snakwu commented 6 months ago

dnsmasq的nftset实现问题,目前能给出的临时解决方法请勾选使用chinadns或者使用smartdns分支,尽量不要使用dnsmasq写入nftset. 我看dnsmasq的2.90有一条提交关于nftset的,到时候看看有没有修复这个问题

我是使用gfw模式和内网自建的dns,勾选chinadns,有影响吗?

可能会遇到你们说的dns泄漏?剩下的应该没有啥问题

其实我也一直没搞懂这个chinadns的作用,按理说不应该是用于中国列表外代理吗?还是做一个缓存dns处理?因为我用的是gfw模式,只要在gfw列表内的就直连我自定义的dns就ok的了

sbwml commented 6 months ago

我看dnsmasq的2.90有一条提交关于nftset的

我靠 dnsmasq 都 2.90 啦?

image

snakwu commented 6 months ago

我看dnsmasq的2.90有一条提交关于nftset的

我靠 dnsmasq 都 2.90 啦?

image

openwrt官方源码还没更新2.90

sbwml commented 6 months ago

openwrt官方源码还没更新2.90

看了一下,确实出来了 2.90 https://thekelleys.org.uk/dnsmasq/ ,自己玩的东西,op更不更无所谓 ,自己更就行,我先上车试试水

snakwu commented 6 months ago

openwrt官方源码还没更新2.90

看了一下,确实出来了 2.90 https://thekelleys.org.uk/dnsmasq/ ,自己玩的东西,op更不更无所谓 ,自己更就行,我先上车试试水

静候佳音

sbwml commented 6 months ago

静候佳音

试水也挺久的 https://github.com/sbwml/builder/actions/runs/8132411447 穷人只能 github action 构建

jh0072110 commented 6 months ago

https://github.com/sbwml/builder/actions/runs/8132411447

大佬你的mos和新版psw好像搭配起来有点问题欸……

snakwu commented 6 months ago

@sbwml 有没有像我这样运行一段时间,就系统日志报上面的错

sbwml commented 6 months ago

@sbwml 有没有像我这样运行一段时间,就系统日志报上面的错

我没有遇到你这个 issues 的问题,系统日志很正常

image

同样也是用的 nft

2024-03-02 19:31:49: 执行启动延时 15 秒后再启动!
2024-03-02 19:32:06: TCP节点:[香港-SS-AES-256-GCM],监听端口:1041
2024-03-02 19:32:06: UDP节点:[腾讯云广州-CVM],监听端口:1051
2024-03-02 19:32:06: 过滤服务配置:准备接管域名解析...
2024-03-02 19:32:06:   - 域名解析:使用UDP协议请求DNS(127.0.0.1#5335)...
2024-03-02 19:32:06:   * 要求代理 DNS 请求,如上游 DNS 非直连地址,确保 UDP 代理打开,并且已经正确转发!
2024-03-02 19:32:06:   - 节点列表中的域名(vpslist):127.0.0.1#5335
2024-03-02 19:32:06:   - 域名白名单(whitelist):127.0.0.1#5335
2024-03-02 19:32:06:   - 代理域名表(blacklist):127.0.0.1#5335
2024-03-02 19:32:07:   - 防火墙域名表(gfwlist):127.0.0.1#5335
2024-03-02 19:32:15:   - 中国域名表(chnroute):127.0.0.1#5335
2024-03-02 19:32:16:   - 以上所列以外及默认:127.0.0.1#5335
2024-03-02 19:32:16:   - PassWall必须依赖于Dnsmasq,如果你自行配置了错误的DNS流程,将会导致域名(直连/代理域名)分流失效!!!
2024-03-02 19:32:17: 开始加载防火墙规则...
2024-03-02 19:32:19: 加入负载均衡的节点到nftset[passwall_vpslist]直连完成
2024-03-02 19:32:20: 加载路由器自身 TCP 代理...
2024-03-02 19:32:20:   - 启用 TPROXY 模式
2024-03-02 19:32:21: 加载路由器自身 UDP 代理...
2024-03-02 19:32:21: 加入所有节点到nftset[passwall_vpslist]直连完成
2024-03-02 19:32:21:   - 上游 DNS 服务器 127.0.0.1 已在直接访问的列表中,不强制向 UDP 代理转发对该服务器 UDP/5335 端口的访问
2024-03-02 19:32:21:   - [0]不代理 UDP 端口:443
2024-03-02 19:32:22: TCP默认代理:使用TCP节点[香港-SS-AES-256-GCM] [代理](TPROXY:1041)代理所有端口
2024-03-02 19:32:22: UDP默认代理:使用UDP节点[腾讯云广州-CVM] [代理](TPROXY:1051)代理除443外的所有端口
2024-03-02 19:32:22: 防火墙规则加载完成!
2024-03-02 19:32:27: 重启 dnsmasq 服务
2024-03-02 19:32:27: 运行完成!
snakwu commented 6 months ago

@sbwml 好的,我也试水

sbwml commented 6 months ago

https://github.com/sbwml/builder/actions/runs/8132411447

大佬你的mos和新版psw好像搭配起来有点问题欸……

我自己没问题。反正这种东西,没问题就用,有问题就不要用。

sbwml commented 6 months ago

@sbwml 好的,我也试水

2.90 的dnsmasq 我还没试水呢,我还在白嫖 github action 构建中,我得21点才有的试水

但我 2.89 passwall 也没问题

snakwu commented 6 months ago

@sbwml 大佬,顺便问声,那个ChinaDNS-NG要不要开,我用的是gfw模式,有必要开吗

sbwml commented 6 months ago

@sbwml 大佬,顺便问声,那个ChinaDNS-NG要不要开,我用的是gfw模式,有必要开吗

我不知道这些,对于passwall 我也是普通用户。你自己研究

snakwu commented 6 months ago

@sbwml 谢谢

sbwml commented 6 months ago

image

dnsmasq 2.90 已试水,感觉不出什么,工作也很正常。就跟单纯刷了个版本号一样

ShanStone commented 6 months ago

测试dnsmasq 2.90 应该是修复了此问题,使用nftables的建议升级至dnsmasq 2.90版本及以上

pujie1216 commented 6 months ago

作者能不能暂时给个提示,目前哪个release可以使用低于dnsmasq 2.90版本,这个崩溃确实已经影响日常使用了,大佬们的一句话轻描淡写,建议升级至dnsmasq 2.90版本及以上,目前可下载的渠道基本没看到2.90版本的,就连openwrt官方snapshot也只到2.89-8,这意味着要自己修改且完整构建openwrt,试问这对于普通用户来说简单吗?T_T

sbwml commented 6 months ago

你们最大的错误是认为运行着 fw4 的固件就一定要使用 nft 过滤。对于普通用户而言,iptables + tproxy / redirect 在任何时候都是最稳定的存在。

这个默认值就应该被删除 https://github.com/xiaorouji/openwrt-passwall/blob/main/luci-app-passwall/root/etc/uci-defaults/luci-passwall#L33

从 Windows 版邮件发送

发件人: pujie1216 发送时间: 2024年3月12日 0:32 收件人: xiaorouji/openwrt-passwall 抄送: Bard; Mention 主题: Re: [xiaorouji/openwrt-passwall] [Bug]: 用最新源码编译后,运行一段时间系统日志不断报错。 (Issue #2990)

作者能不能暂时给个提示,目前哪个release可以使用低于dnsmasq 2.90版本,这个崩溃确实已经影响日常使用了,大佬们的一句话轻描淡写,建议升级至dnsmasq 2.90版本及以上,目前可下载的渠道基本没看到2.90版本的,就连openwrt官方snapshot也只到2.89-8,这意味着要自己修改且完整构建openwrt,试问这对于普通用户来说简单吗?T_T — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

sbwml commented 6 months ago

fw4 固件在商店搜索这些包并安装,同时 passwall 防火墙工具设置为 IPtables,这些问题都会消失。

iptables-mod-conntrack-extra
iptables-mod-iprange
iptables-mod-nat-extra
iptables-mod-socket
iptables-mod-tproxy
iptables-nft
xtables-nft

如果有人跟你说通过 iptables-nft 转译会降低性能,请叫他好好翻阅资料补充下认识。

uingei commented 6 months ago

fw4 的默认值可别删除了,总是要跟上趋势的

MrEsquire commented 6 months ago

fw4 固件在商店搜索这些包并安装,同时 passwall 防火墙工具设置为 IPtables,这些问题都会消失。

iptables-mod-conntrack-extra
iptables-mod-iprange
iptables-mod-nat-extra
iptables-mod-socket
iptables-mod-tproxy
iptables-nft
xtables-nft

如果有人跟你说通过 iptables-nft 转译会降低性能,请叫他好好翻阅资料补充下认识。

这些包都装上了, 但是fw4固件的passwall依然没法切换到iptables模式

2024-03-12 10:42:56: 删除相关防火墙规则完成。
2024-03-12 10:42:59: 清空并关闭相关程序和缓存完成。
2024-03-12 10:42:59: 分析 Socks 服务的节点配置...
2024-03-12 10:42:59:   - Socks节点:[分流总节点],启动 0.0.0.0:1080
2024-03-12 10:42:59: 检测到fw4,使用nftables进行透明代理。
2024-03-12 10:42:59: Dnsmasq版本低于2.90,建议升级至2.90及以上版本以避免部分情况下Dnsmasq崩溃问题!
2024-03-12 10:42:59: TCP节点:[分流总节点],监听端口:1041
2024-03-12 10:42:59: 过滤服务配置:准备接管域名解析...
2024-03-12 10:42:59:   - 域名解析:使用UDP协议请求DNS(127.0.0.1#5353)...
2024-03-12 10:42:59:   * 要求代理 DNS 请求,如上游 DNS 非直连地址,确保 UDP 代理打开,并且已经正确转发!
2024-03-12 10:42:59:   | - (chinadns-ng) 最高支持4级域名过滤...
2024-03-12 10:42:59:   + 过滤服务:ChinaDNS-NG(:15354):国内DNS:119.29.29.29,223.5.5.5,可信DNS:127.0.0.1#5353
2024-03-12 10:42:59:   - 以上所列以外及默认:127.0.0.1#15354
2024-03-12 10:42:59:   - PassWall必须依赖于Dnsmasq,如果你自行配置了错误的DNS流程,将会导致域名(直连/代理域名)分流失效!!!
2024-03-12 10:42:59: 开始加载防火墙规则...
2024-03-12 10:43:00:   - [0]追加ISP IPv4 DNS到白名单:116.210.255.52
2024-03-12 10:43:00:   - [0]追加ISP IPv4 DNS到白名单:119.29.29.29
2024-03-12 10:43:00:   - [0]追加ISP IPv4 DNS到白名单:192.168.1.1
2024-03-12 10:43:00:   - [0]追加ISP IPv4 DNS到白名单:202.103.24.68
2024-03-12 10:43:00:   - [0]追加ISP IPv4 DNS到白名单:202.103.44.150
2024-03-12 10:43:00:   - [0]追加ISP IPv4 DNS到白名单:223.5.5.5
2024-03-12 10:43:00: 加入负载均衡的节点到nftset[passwall_vpslist]直连完成
2024-03-12 10:43:00:   - [0]追加直连DNS到nftables:119.29.29.29:53
2024-03-12 10:43:00:   - [0]追加直连DNS到nftables:223.5.5.5:53
2024-03-12 10:43:00: 加入所有节点到nftset[passwall_vpslist]直连完成
2024-03-12 10:43:00:   - 上游 DNS 服务器 127.0.0.1 已在直接访问的列表中,不强制向 UDP 代理转发对该服务器 UDP/5353 端口的访问
2024-03-12 10:43:00: 访问控制:
2024-03-12 10:43:00:   - 【Home server】,IP【192.168.50.201】,使用 TCP 节点[分流总节点](TPROXY:1041)
2024-03-12 10:43:00:   - 【Home server】,IP【192.168.50.201】,使用 UDP 节点[分流总节点](TPROXY:1041)
2024-03-12 10:43:00:   - 【默认】,使用 TCP 节点[分流总节点](TPROXY:1041)
2024-03-12 10:43:00:   - 【默认】,使用 UDP 节点[分流总节点](TPROXY:1041)
2024-03-12 10:43:00: 防火墙规则加载完成!
2024-03-12 10:43:03: 重启 dnsmasq 服务
2024-03-12 10:43:03: 配置定时任务:自动更新规则。
2024-03-12 10:43:03: 配置定时任务:自动更新【crazychen】订阅。
2024-03-12 10:43:03: 运行完成!
uingei commented 6 months ago

只删除软件包 firewall4 但是别删除依赖

ShanStone commented 6 months ago

fw4 固件在商店搜索这些包并安装,同时 passwall 防火墙工具设置为 IPtables,这些问题都会消失。

iptables-mod-conntrack-extra
iptables-mod-iprange
iptables-mod-nat-extra
iptables-mod-socket
iptables-mod-tproxy
iptables-nft
xtables-nft

如果有人跟你说通过 iptables-nft 转译会降低性能,请叫他好好翻阅资料补充下认识。

这些包都装上了, 但是fw4固件的passwall依然没法切换到iptables模式

2024-03-12 10:42:56: 删除相关防火墙规则完成。
2024-03-12 10:42:59: 清空并关闭相关程序和缓存完成。
2024-03-12 10:42:59: 分析 Socks 服务的节点配置...
2024-03-12 10:42:59:   - Socks节点:[分流总节点],启动 0.0.0.0:1080
2024-03-12 10:42:59: 检测到fw4,使用nftables进行透明代理。
2024-03-12 10:42:59: Dnsmasq版本低于2.90,建议升级至2.90及以上版本以避免部分情况下Dnsmasq崩溃问题!
2024-03-12 10:42:59: TCP节点:[分流总节点],监听端口:1041
2024-03-12 10:42:59: 过滤服务配置:准备接管域名解析...
2024-03-12 10:42:59:   - 域名解析:使用UDP协议请求DNS(127.0.0.1#5353)...
2024-03-12 10:42:59:   * 要求代理 DNS 请求,如上游 DNS 非直连地址,确保 UDP 代理打开,并且已经正确转发!
2024-03-12 10:42:59:   | - (chinadns-ng) 最高支持4级域名过滤...
2024-03-12 10:42:59:   + 过滤服务:ChinaDNS-NG(:15354):国内DNS:119.29.29.29,223.5.5.5,可信DNS:127.0.0.1#5353
2024-03-12 10:42:59:   - 以上所列以外及默认:127.0.0.1#15354
2024-03-12 10:42:59:   - PassWall必须依赖于Dnsmasq,如果你自行配置了错误的DNS流程,将会导致域名(直连/代理域名)分流失效!!!
2024-03-12 10:42:59: 开始加载防火墙规则...
2024-03-12 10:43:00:   - [0]追加ISP IPv4 DNS到白名单:116.210.255.52
2024-03-12 10:43:00:   - [0]追加ISP IPv4 DNS到白名单:119.29.29.29
2024-03-12 10:43:00:   - [0]追加ISP IPv4 DNS到白名单:192.168.1.1
2024-03-12 10:43:00:   - [0]追加ISP IPv4 DNS到白名单:202.103.24.68
2024-03-12 10:43:00:   - [0]追加ISP IPv4 DNS到白名单:202.103.44.150
2024-03-12 10:43:00:   - [0]追加ISP IPv4 DNS到白名单:223.5.5.5
2024-03-12 10:43:00: 加入负载均衡的节点到nftset[passwall_vpslist]直连完成
2024-03-12 10:43:00:   - [0]追加直连DNS到nftables:119.29.29.29:53
2024-03-12 10:43:00:   - [0]追加直连DNS到nftables:223.5.5.5:53
2024-03-12 10:43:00: 加入所有节点到nftset[passwall_vpslist]直连完成
2024-03-12 10:43:00:   - 上游 DNS 服务器 127.0.0.1 已在直接访问的列表中,不强制向 UDP 代理转发对该服务器 UDP/5353 端口的访问
2024-03-12 10:43:00: 访问控制:
2024-03-12 10:43:00:   - 【Home server】,IP【192.168.50.201】,使用 TCP 节点[分流总节点](TPROXY:1041)
2024-03-12 10:43:00:   - 【Home server】,IP【192.168.50.201】,使用 UDP 节点[分流总节点](TPROXY:1041)
2024-03-12 10:43:00:   - 【默认】,使用 TCP 节点[分流总节点](TPROXY:1041)
2024-03-12 10:43:00:   - 【默认】,使用 UDP 节点[分流总节点](TPROXY:1041)
2024-03-12 10:43:00: 防火墙规则加载完成!
2024-03-12 10:43:03: 重启 dnsmasq 服务
2024-03-12 10:43:03: 配置定时任务:自动更新规则。
2024-03-12 10:43:03: 配置定时任务:自动更新【crazychen】订阅。
2024-03-12 10:43:03: 运行完成!

openwrt碎片化很严重,没法保证最终使用的固件配置环境,这个没办法,只能自行解决或者等待固件更新。 比如你这个情况,使用的固件里面的dnsmasq应该是默认取消了ipset的支持,不满足使用iptables的条件,所以自动切回nftables

MrEsquire commented 6 months ago

@ShanStone 感谢 ,编译dnsmasq时把ipset支持勾上了,顺利用上iptables模式