macmini 上装了个 surge 专门当旁路,开了增强模式和网关模式。
但局域网网关不是它,dns 也不是它。
简化步骤是:
比如 surge 所在 ip 10.0.0.99 ,现在其他设备要访问
google.com1.局域网 dns 是 mosdns ,路由器把 198.18.0.0/15 静态路由去 10.0.0.99
2.先 dns 分流,
google.com 命中目标,交给 surge 的 198.18.0.2 去做 dns 解析
3.surge 返回 fakeip ,mosdns 拿到 fakeip 198.18.0.0/15 段交给其他设备
3.其他设备拿到 fakeip 去请求路由器
4.路由器把 198.18.*.*转给 surge ,surge 返回数据,其他设备拿到
在 ipv4 下运行的很好,一切正常
最近看到 surge 说支持纯 ipv6 环境,想照抄 ipv4 这么操作,发现问题来了
surge ipv6 的网关是 fd00:6152::1 ,dns 是 fd00:6152::2 ,fakeip 段是 fd00:6152:0:9::/64
假设 surge ip 是 fd10::99, 在路由器上把 fd00:6152::/64 和 fd00:6152:0:9::/64 拦截去 fd10::99
nslookup 发现 aaaa 记录能拿到,但是比如 google 的是 fd00:6152:0:9::1234:5678 ,这个 ip 也能 ping 通,但是却访问不了。
ifconfig surge 所在的 tun 网卡,发现了差异
inet 198.18.0.1 --> 198.18.0.1 netmask 0xfffe0000
inet6 fd00:6152::1 prefixlen 127
意思是
198.18.0.0/15 是接管的
ipv6 下,只接管了 fd00:6152::1/127 ,也就是 fd00:6152::1 和 fd00:6152::2.
也就是 ipv6 下,surge 只接管了网关和 dns ,其他的并没有接管。
解决办法也不是没有,把 fd00:6152:0:9::/64 静态路由去 fd00:6152::1
但这样就 2 次转发了。
是有什么地方参数缺失,还是 surge 在 ipv6 下就这么设置的?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/1216582
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.