Configuring Shadowsocks rules with nftset in OpenWRT 23

Configuring Shadowsocks rules with nftset in OpenWRT 23

💡 原文中文,约2100字,阅读约需5分钟。
📝

内容提要

本文介绍了在Openwrt 23中使用dnsmasq-full/nftset/nftables为shadowsocks redir创建基于gfwlist的规则,并添加Telegram的IP段和转发规则。同时,还介绍了手动配置和创建部署脚本的方法,以及使用住宅IP访问ChatGPT等服务的场景。

🔎

延伸解读

OpenWrt 23 防火墙变化与 nftset 适配

OpenWrt 23 默认使用 fw4 防火墙,其底层是 nftables,因此传统 ipset 方案需改为 nftset。本文通过编辑 /etc/nftables.d/gfwlist.nft 定义 nftset 集合和转发规则,将目标 IP 重定向到 ss-redir 端口。读者需注意,nftset 的语法与 ipset 不同,且需重启防火墙生效。

dnsmasq-full 与 nftset 的集成配置

要使用 nftset,必须将 dnsmasq 替换为 dnsmasq-full。文章建议将配置文件放在 /root/gfwlist/nftset 而非默认的 /tmp/dnsmasq.d,并通过部署脚本在启动时复制。手动配置示例展示了如何为特定域名指定 DNS 服务器并动态加入 nftset,这为分流提供了灵活控制。

gfwlist 自动化更新与维护

文章提供了将 gfwlist 转换为 dnsmasq 配置的脚本修改方法,并创建了更新和部署脚本。通过 /etc/rc.local 和 crontab 定时任务,可实现 gfwlist 的自动更新,减少手动维护成本。但需注意脚本兼容性,原 gfwlist2dnsmasq.sh 仅支持 ipset,需按文中修改为 nftset 格式。

应用场景扩展:住宅 IP 与 ChatGPT

本文以翻墙为例,但指出另一个有用场景是使用住宅 IP 访问 ChatGPT 等服务。通过 nftset 规则,可以灵活地将特定域名或 IP 流量导向代理,从而利用住宅 IP 的优势。这为需要稳定访问受限服务的用户提供了参考思路。

❓

Q&A

如何在OpenWRT 23中配置Shadowsocks的gfwlist规则?

可以通过编辑/etc/nftables.d/gfwlist.nft文件,设置nftset的初始配置,并加入Telegram的IP段和转发规则。

在OpenWRT中如何重启防火墙以应用新配置?

使用命令service firewall restart来重启防火墙。

如何手动添加或移除gfwlist中的IP?

可以使用命令nft add element inet fw4 gfwlist { IP地址 }添加,使用nft delete element inet fw4 gfwlist { IP地址 }移除。

如何将gfwlist转换为dnsmasq配置文件?

需要编辑gfwlist2dnsmasq.sh脚本,将其修改为支持nftset,并运行相应的转换命令。

在OpenWRT中如何设置定期更新gfwlist?

可以通过添加crontab任务来定期运行更新gfwlist的脚本,例如:0 0 1 * * ? sh /root/gfwlist/nftset/update-gfwlist-dnsmasq-conf.sh。

使用住宅IP访问ChatGPT的场景如何配置?

可以通过配置Shadowsocks和gfwlist规则,使用住宅IP来访问ChatGPT等服务。

🏷️

标签

➡️

继续阅读