内容提要
本文介绍了在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等服务。