内网一台软路由( 192.168.1.222 )开启了 singbox 的 tun 模式做旁路由。内网 ps5 将网关手动设为了 singbox ,主路由( 192.168.1.1 )将端口转发设置到 ps5 的 ip ,在公网尝试连接 ps5 不成功。singbox 关闭后可以正常连通,问题可能出在 ps5 在返回流量时经过了旁路由的虚拟网卡出现问题。
但 singbox 即使开启了最详细级别的日志,也看不到来自 ps5 的流量记录。用 tcpdump 能看到流量确实经过了 tun 网卡。
请教大神,这种情况应该如何设置呢
举报· 157 次点击
登录 注册 站外分享
7 条回复  
povsister 小成 2024-9-17 15:21:38
因为路由不对称,普通家用路由器的 tcp 是需要看到双向的数据报文才会被 conn-track 到。
在你的配置下

TCP inbound (发送 SYN ):WAN 访问 - 主路由(Port forwarding ,可以认为是 DNAT+SNAT)- PS5
TCP outbound (回复 SYN ACK ):PS5 -(这里就直接当 invalid 丢了)- 旁路由( SNAT )- 主路由

旁路由连 TCP SYN 都看不到,你回复一个 SYN ACK 被旁路由的 SNAT netfilter 看到,只会当你设备抽风直接丢包。
sb 看不到是因为报文在协议栈就直接丢了,压根没进入 sb 的处理。
whetherTsmile 小成 2024-9-17 16:58:01
@vfx666 #2 旁路由防火墙里有一个丢弃无效数据包给关了试试
basncy 小成 2024-9-17 19:01:07
ingress 要看主路由, 少部分企业路由器会做 SNAT.
whetherTsmile #3 可能是正解. sb 感觉它很强大, 但都集成了个半吊子.
旁路由建议手搓 REDIRECT/TPROXY, 门槛可能高, 但灵活, 还能代理部分 BT 流量.
morpheuszero2023 小成 2024-9-18 10:02:15
有些问题解决的学习成本和时间消耗过高了。如果你只是想让 PS5 流畅的联机游戏,可以买内置 UU 加速器的路由器,例如华硕的一些型号。华硕和软路由( OP )也可以通过插件实现魔法冲浪。这些方案都是只有一个网关的,部署起来非常简单。
life90 小成 2024-9-18 12:53:03
@povsister 我看了你这个方案,我猜果然会有这个问题 ”体感首次访问某个被墙站点时,有 30-40%的概率会出现 ConnectionRST , 随后只需要刷新一下页面即可正常访问。“
我觉得解决这个问题的方法可以试一试把 conn-track 规则时间延长一点(对个人来说影响不大)。然后你这个好像没有支持 ipv6 。
你没有采用 mark-routing (标记路由) mark-connection/packet 等方式,真是明智。这个策略开起来多了,非常影响转发性能。路由器配置不高的话,一个迅雷开起来能把 cpu 干冒烟。
yinmin 小成 2024-9-18 23:07:16
解决方法很简单:192.168.1.1 将端口转发到 192.168.1.222 ,然后 192.168.1.222 转发到 ps5 。192.168.1.222 的 iptable 转发端口的写法可以问 gpt 。
yyysuo 小成 2024-9-18 23:53:12
@life90 这种体验怎么忍受的…..
返回顶部