
起因 chrome 在最近版本中添加了一个叫 Local Network Access Checks 的功能,除了网页服务本身确有访问局域网流量和一些插件以外,只要我开着软路由 fakeip 模式代理就会让所有需代理的网站都触发这个弹窗(如果拒绝就会使得大量 css 和 js 无法在网页中加载,但是单独访问又可以正常打开 css 本身)
虽然可以通过 flags 直接禁用这个权限控制,但这个安全特性还是有启用的必要,所以计划更换成 realip 模式。
fakeip 模式在今天的网络环境中,能起到的作用无非两个:
如果本身你的代理插件配置了错误的 dns 流程,因为 fakeip 的关系,真正代理访问的 dns 由服务端发起,这时只要你的路由规则正确,本地的 dns 污染、错误解析那些实质上没有影响
消弥本地网络环境和远端网络环境的差异:具体来说比如你本地打开了 ipv6 ,代理服务器 only_ipv4 ,在 realip 模式下,会因为节点试图连接 ipv6 地址而访问失败,而 fakeip 模式下就可以实现服务端自行 fallback 到 ipv4
我主要是因为第 2 点,简单来说,如果想同时启用 ipv6 和 realip ,只有一个方法:确保你所使用的全部代理节点都拥有 ipv6 。
但我的使用场景是部分节点有 v6 ,部分 only_ipv4 ,同时因为单纯在代理插件中屏蔽 AAAA 记录,无法确保 reject 所有 ipv6 流量(有很多软件只要你的 tun 有 ipv6 ,就会坚持连接 ipv6 目标),就算 reject 了也并不能保证可以 fallback 到 ipv4 ;
尝试路由器开启 ipv6 获取和 ra 通告,发现因为 sing-box 的 tun 接口直接去掉了 ipv6 的关系,并不能实现:保持核心仅 v4 的同时,还能通过 dhcpv6 或 slaac 向局域网主机下发公网 ipv6
无它,只有一个解决方案了:彻底关闭 ipv6
之前打开 ipv6 对我的意义只有一个:确保能通过 mstsc+ipv6 远程直连我家里的一台 pc ,这是一个兜底方案,因为我这里的运营商对公网 ipv6 的上传控制非常严格,ipv6 直连上过了 2 分钟就会异常卡顿,因此我的主力方案其实是 rustdesk 中继,影响不大
而关闭 ipv6 并且启用 realip 以后,发现网速不降反增
( p.s.我的本地宽带仅有 200mbps )
尤其是国内流量,ipv6 优先时,经常能碰到 b 站网页加载完毕,视频缓冲半天,起初以为是阿 b 的 cdn 太烂了,换成纯 ipv4 环境再也没遇到过,所以很可能是运营商对 ipv6 有更严格的控制导致(就像远程直连那样 2 分钟就卡)
最后附上我在 openwrt 使用的,纯 ipv4+realip 模式的 sing-box 配置模板:
因为 realip 的关系,所以相比于 fakeip 的配置,在 dns.rules 添加了大量规则,主要是为了保证每个分流策略组,都能正确通过策略组自身代理请求 dns ,如图: 
1 miyuki 1 天前 引入的问题比解决的问题多 |
2 night233 1 天前 只开启 ipv6 解析就行 ipv6 流量代理关闭就好了 |
3 yyysuo 1 天前 因为主站不是 fakeip ,但是 css 之类的资源是 fakeip 了,且 fakeip 段在 chrome 定义的私有段里面。调整一下 fakeip 段就行了,要么就全 fakeip 。 另外关闭 ipv6 网速快,说明之前的配置是有错误的。 |
4 bclerdx 1 天前 via Android OP,请问你图片右上角那个域名和 ip 是浏览器什么插件呢? |
5 LongLights OP @bclerdx ipvfoo |
6 MacsedProtoss 1 天前 via iPhone 引入的 dns 问题太大了… fakeip 就是为了解决 dns 泄漏的问题的,而且其实 dns 在远端应该是更快的。 顶多你解决下 ipv6 的问题就行了,像我是公网 v4 没有 v6 的是体验非常好的 |
7 wangritian 1 天前 我是 redir-host 模式,通过 nameserver-policy 控制国内域名走运营商 dns ,其他走谷歌 dns 同时丢弃 AAAA 记录,这样国内优先 ipv6 ,国外只 v4 ,用着暂时没问题 |
8 crac 1 天前 我的方案是: 1.关闭 IPV6 解析 2.关闭 IPV6 代理 3.允许 IPV6 直连 |
9 bjzhou1990 1 天前 mosdns IPV4 优先 |
10 Rinndy 1 天前 via iPhone openclash ? |
11 Zeaxion 1 天前 @bjzhou1990 #9 对的,兄,内建 DNS 服务,并采用 V4 优先,可解决很多问题 |
12 huaweii 1 天前 fake-ip 的 range 换成冷门公网地址池试试,比如 DoD 那些呢... |
13 yinmin 1 天前 fakeip 从 6.0.0.0/8 、7.0.0.0/8 、11.0.0.0/8 随机选一个/16 的地址段,就能解决 chrome“本地网络访问”报警的问题了。 |
14 Ipsum 1 天前 说个不使用 fakeip 的问题,你局域网内建了个 tun 代理服务器,然后 使用 dns 分流,路由器是走静态路由 ip 转发到代理服务器。如果都是 realip ,那么你需要维护静态路由的 realip 列表,我想简单点的就是直接区分国内外 ip ,但是这样做就没法精确分流代理。另外 fakeip 不一定要使用 198.18.0.0/15 网段,你换个美国国防部的段也一样用。 |
16 goodryb 21 小时 46 分钟前 我的经验教训就是 v4 能搞定就不要用 v6 ,远程连家里的电脑 v4 转发一样快,和 v6 直连没区别,其他方面 v6 不如 v4 |
17 LongLights OP @goodryb 确实是,我这里 frp 穿透跑远程不会限速,反而 v6 直连不行 |
18 cj323 15 小时 30 分钟前 via Android fakeip 太多骚操作了。每一次遇到问题都是用更多复杂度来解决。这一点违背那些喜欢简化问题的程序员的本能。 |
19 cj323 14 小时 23 分钟前 至于 ipv6 。v 站这么久给我的感觉是:国内网络环境的确是 ipv4 比 ipv6 稳。不过我也看到一些人说出境 ipv6 更好。我认为有可能国内 ipv4 优先+过墙 ipv6 优先(当然如楼主所说所有节点都要支持 IPv6 )也是一个好的选项。 |
20 yyysuo 9 小时 3 分钟前 @bjzhou1990 不推荐,快乐眼球享受不到了。 |
21 terrancesiu 6 小时 57 分钟前 我没用 fakeip ,但是 v4 和 v6 都开了,而且 v6 的过墙也开了,必须一起。 |
22 aa51513 6 小时 15 分钟前 实在没办法了,我也被迫关闭了 ipv6 |
23 LongLights OP @cj323 #19 过墙 ipv6 是因为有的人跑 snell 或者 trojan 这些有明显特征的协议,ipv4 很快封,ipv6 封的慢;从国内到境外 vps 这一段,肯定要跑 ipv4 的,不然 gia 那些优化线路根本吃不上; vps 到目标网站这种国际互联,v4v6 都差不多; 境内 ipv6 互联这段,可能是分区域和运营商,我这里 ipv6 降速严重,但是也有人说 ipv6 更稳 |