V2EX 09月23日 11:38
OpenWrt单臂路由科学上网回流问题解决
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文详述了在OpenWrt主路由和PVE虚拟机中搭建科学上网环境时遇到的数据包回流问题。用户最初尝试使用dnsmasq+smartDNS+xray在主路由实现科学上网,但稳定性不佳。转而采用PVE虚拟机安装OpenWrt x86版,并通过v2raya实现单臂路由。然而,PC端访问境外网站时出现问题,请求已转发至境外但无法回流。经过与AI的多次沟通和日志分析,最终定位到NAT规则配置错误,并采用基于防火墙标记的MASQUERADE规则成功解决回流问题。文章也分享了与AI协作解决技术难题的经验,强调了提供充分条件、理解AI思路和持续细化问题的重要性。

💡 **科学上网环境搭建与挑战**:用户最初在性能有限的主路由上尝试科学上网,因不稳定而转向PVE虚拟机搭建OpenWrt单臂路由。这种方案旨在隔离科学上网功能,确保主路由的稳定性,即便单臂路由失效,也不会影响内部网络的正常访问,最大程度地保障了网络使用的灵活性和可靠性。

🎯 **单臂路由回流问题定位**:在单臂路由方案中,虽然PC发出的请求能被正确转发至境外,但境外返回的数据包却无法成功送达PC。通过tcpdump监控流量,分析发现问题根源在于NAT规则配置不当,特别是MASQUERADE规则未能正确处理源自内部网络(PC)且目标为单臂路由的流量,导致数据包无法在返回时正确路由回PC。

✅ **基于防火墙标记的MASQUERADE解决方案**:最终通过细化问题描述并与AI协作,采用了基于防火墙标记(mark)的MASQUERADE规则。此规则能够准确识别并处理已标记为境外流量的数据包,确保其在返回时能够被正确地NAT并送达至原始的PC终端,从而彻底解决了单臂路由的科学上网回流问题,实现了稳定可靠的境外访问。

🤝 **与AI协作解决技术难题的经验**:文章强调了与AI协作解决复杂技术问题的有效方法。关键在于提供详尽、准确的条件信息,理解AI给出的解决方案背后的逻辑,并通过持续的细化和反馈来引导AI得出满足特定需求的正确方案,避免盲目修改导致问题恶化。

情况是这样的,家里有一个 openwrt 路由器作为主路由, 以前安装科学上网不大稳定,估计还是路由器性能有限,处理数据包转发什么的没问题,但是涉及软件就老是不稳定,访问外网无响应,bypass 插件是由 dnsmasq + smartDNS +xray 组成的。

后来安装了 PVE 虚拟机后,专门装了个 openwrt 的 x86 版,只安装 v2raya 插件,因为只有一个虚拟网口,所以采用单臂路由方案。

整体思路:
光猫拨号——openwrt 主路由( DHCP )——PVE 虚拟机( openwrt 单臂路由)
|------------------下面 PC/手机。

要求是下面所有 PC/手机连接主路由,采用主路由的 IP 和网关和 DNS 设置,也就是说单臂路由挂了,不影响任何 pc 终端(最多 gfw 网上不了)。

咨询了 deepseek ,它给出了 主路由上配置( dnsmasq + ipset )方案,原理就是利用 dnsmasq 对需要翻墙的网站加入海外列表,并用 ipset 设置海外列表 table , 并打上标签。
当终端访问海外网站时,域名解析在海外列表里时,自动将 ipset 设置到海外列表组;并自动转发给单笔路由
单臂路由上只需添加一条回流路由

搞完以后,发现主路由上访问海外网站是正常了,但是下面 PC 访问还是不行。然后问 deepseek ,它让我用 tcpdump 监控单臂路由流量,将日志给他,它发现了问题,pc 发起的请求已经转发到海外,但是海外回来后回不到 pc 上,由于主路由不需要转发,所以没问题。确认是回流问题。

然后 deepseek 搞了一些策略和测试方案,倒腾半天还是不行,最后我分析并提了问题:
iptables -t nat -A POSTROUTING -s 192.168.1.128/24 -d 192.168.1.1 -j MASQUERADE
这一条规则是:只有当数据包来自我们家庭内部的任何一个设备(192.168.1.128/24 网段)(并且目标是 OpenWrt2 )时,才进行 MASQUERADE ,但是实际上终端 192.168.1.151 发出数据包目标是 192.168.1.139 ,而不是 192.168.1.133 ,只有 openwrt1 才会转发给 192.168.1.133 ,所以上述规则有无问题?

然后 deepseek 终于发现问题了,并给出了正确方案,即基于 mark 的 MASQUERADE
由于您已经使用防火墙标记来识别境外流量,可以基于这个标记进行 MASQUERADE 。

最后终于 ok ,讲了这么多,我分析原因如下:

1. 大多数情况下,我们给的条件不充分,而 deepseek 会基于已知条件给出通用解决方案。而实际上相当于条件不充分,所以方案是错的。
2. 这个时候,应该继续细化条件,并且要让 deepseek 解释它的实际用途,这样有助于你理解它的思路是否跟你需求不同。
3. 最后不断细化完善。单纯让 deepseek 改来改去不解决问题,而且改到最后它也混乱了,改出一个不知道什么怪玩意儿来。。。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

OpenWrt 科学上网 单臂路由 PVE v2raya 回流问题 MASQUERADE 防火墙标记 AI协作 网络配置
相关文章