遇到私有 Proxy 客户端的正确使用方法
Table of Contents
Open Table of Contents
Intro
作为低等公民,在大陆上网是一个大难题,你要同时与下述内容同台竞技,拼不过就 G 的那种:
- GFW:我会污染 DNS,阻断你的 UDP/TCP,随机阻断 Full Encrypt Traffic,遇到不认识的 HTTPS 还会 AI 识别。
- 运营商 A:我会丢你的 UDP 包;如果你想要连 B、C 家,我还会限制你的速度,封禁你的上传。
- 路由器:我会指定大陆 DNS。你想要解析某些地址?Sorry,给你一个 localhost 自己玩去吧。
- Proxy 提供商:因为 GFW 收紧了 IEPL/IPLC 政策,再加上根据订阅结果封禁,我的专线消耗殆尽。给你个 AI 写的、功能很少、性能很差的私有客户端自己玩吧。
- Xbox/Steam:我不小心的啊,识别到您不是大陆用户,用了海外 CDN,一天就把您的流量跑完了
^~^。 - Google:我用上了严苛的 IP 政策。如果你的 Google IP 跟 Gemini IP 不一致,对不起
;)。如果我检测到您的 VPN 源站了,对不起,我要给你送中(HK)。Why? Because fuck you, that’s why. - Duolingo/Anthropic:我将要检测你的设备时区、设备语言、SIM,等等一切可能 Trace 到你个人的信息。如果我们认为你是,Sorry,Fuck You。
- 海底大鲨鱼:这根线是什么,咬咬看。
这里你一个都干不过,只能躺着享受。但是,你的 Proxy 提供商没法让你那么爽,怎么办?我不想用他的私有客户端了:Bug 多、性能差、用户体验糟糕。
幸好,你的 Proxy 提供商提供了 SOCKS5 连接。那么,就把他们的客户端当作 Momo 的一个 Provider 好了。
大便客户端
私有💩(客户端)的问题:
- 无法配置某些设备不走 Proxy
- DNS 及 Proxy 配置问题,导致你的大陆 APP 会以为你是🇭🇰/🇹🇼/🇺🇸人,从而给你的推荐与之前不一样
- Direct 连接速度不够,pacman 从北京的镜像下载的速度连带宽标定的一半都不到
还有什么问题没有解决
- 无法简单的切换节点
- 需要手动更新客户端
- linux 客户端不支持 TUN,需要手动为我的服务配置 Proxy
大便客户端之只有 GUI 控制,所以通过 Sunshine + Headless WLR 来控制
这个客户端没有可用的 Daemon,也没有正常的管理 API,连接与切换都只能点 GUI。但是 .B 是一台没有显示器的 Arch Linux 主机,所以我给它运行了一个持久的 Headless WLR Session,再通过 Sunshine 远程控制这个桌面。
主机启动以后,Headless WLR 创建虚拟输出,私有客户端和 Sunshine 一起运行。需要登录、换线路或者确认连接状态时,我才打开 Sunshine;关闭远程画面以后,桌面、私有客户端与 SOCKS5 Listener 仍然继续运行。
Sunshine 只对管理 LAN 开放,不暴露到公网。这样,这个只能靠 GUI 活着的大便客户端终于能够像一个普通后台 Provider 一样,被 OpenWrt 长期使用。
DNS 与路由一起优化
中国大陆域名由 geosite-cn 识别,使用大陆 DoH 返回真实地址,并直接访问;没有域名时,再用 geoip-cn 判断目标 IP。
其他 A/AAAA 查询返回 FakeIP。FakeIP 保存原始域名,连接与全球 DoH 一起进入 provider-socks。这样 DNS 和业务流量不会各走各的,Google、Gemini 等服务看到的出口也更稳定。
FakeIP Rule 要放在 Private IP Rule 前面,因为 IPv6 FakeIP 使用 ULA。缓存放在 /tmp,避免不断写 OpenWrt Flash。
Result
Pacman -Syu 速度从原本约 10 MB/s 恢复到了 100 MB/s+。
大陆服务能够用更正经的 DNS 与 IP,有更好的 Local Recommendation.
虽然海外的 Google 还是送中,但这个优化就任重道远了。
Others
Sing-box 的 Tailscale Endpoint 也可以接入 Mullvad Exit Node,但我没有实际测试过,不构成任何建议。