需求
- 默认全局代理(就是系统里不遵循代理设置的也强制走代理。好像又叫透明代理、网关代理?)
- 白名单内走国内DNS+直连。白名单可以是域名,或者手动指定个别软件。
也就是迷雾通Android版目前的模式。可现在迷雾通的mac版没有全局VPN模式,Windows版开了全局VPN就没法分流。
其它代理软件:不用白名单,有隐私问题
我看了版里的相关帖子,对于分流,现行的代理客户端和DNS工具基本【没有】用白名单,而是另一个解决思路:
- 分流规则里走代理的域名:远程DNS+代理
- 剩下的请求:境内DNS服务器(nameserver)+境外DNS服务器(fallback)并发查询,或者只用前者。
如果nameserver解析结果是国外IP或者常见污染段,就继续远程DNS查询+代理;如果解析结果是国内地址,就用nameserver查到的IP去直连。
这种方案的优点,是不需要建立繁琐的白名单,就能解决分流+CDN的问题。
但是,这样会导致所有不在分流规则上的域名,都会向境内DNS查询——这样会间接泄露我要访问什么网站,我觉得这种行为有点胆大 包 天了。
例如mohu.rocks,github上大部分规则都没有包括这个域名。
当然,我可以自己手动加。可我只有小学学历(迫真),不知道哪些是敏感网站,反正这个赵老爷说了算。
为了不被突开,还是默认远程DNS罢。
解决方案?
所以,我想知道电脑上能不能像迷雾通Android版那样简单分流。
我想了一下,好像只能手动虚拟机分流?——mac全局透明代理,虚拟机桥接直连。
1 个赞
请问这个怎么搞?我真的是技术盲。
Google搜索“mac uid 分流”,第一页内容只有abtestinggateway是相关的,里面全是命令行,也不知道怎么设置。
我觉得app的GUI带上相关设置选项比较好,或者至少给个详尽的步骤。像俺这种小学文化的就完全不会,用搜索引擎从零学起,怕不是大半个月过去了(我这个主题就真的用了1个月,实在搞不懂才好意思上来问的)。
主页上面写“不管您用Windows、Mac、Linux、还是Android,安装使用迷雾通并不繁琐。一键就可连接自由的互联网。”俺认识的人里至少89.64%是只会“一键”的,让我们自己从零探索,估计99.6%会因为承受不住时间成本(或者搞砸了导致隐私泄漏的试错成本)而直接放弃。
俺又研究了一下,有了新的进展。
代理工具是Clash。
域名白名单
规则就3种类型:
- 白名单域名:direct。会用系统默认DNS去解析,也可以换成其它的境内DNS。
- 中国和LAN等白名单IP:direct,no-resolve;——no-resolve参数使得mohu.rocks等不在规则里的域名【不会】触发本地DNS解析,而是直接下一步到3。
- 剩下的:proxy。Clash会自动走远程DNS+代理。
俺用了几个境外DNS测试站点,都是远程DNS+代理;白名单里的境内DNS测试站,显示本地DNS+直连;【不】在白名单里的【境内】DNS站点,则是远程DNS+代理。
至此,域名分流的问题基本解决。
app白名单
发现Clash规则里有个参数是process-name,可以指定进程进行分流。
我还得再研究研究,毕竟mac上打开一个app,有时会出现一大坨进程,比如Adobe全家桶。
最后的问题,就是Clash本身可不可靠了。
Clash有个开源版,还有个功能更多的、需要管理员权限的闭源版Clash Premium,而要实现透明代理/TUN模式,就只能用闭源版(俺试过Proxifier、TPROXY等透明代理方案,总会出现各种bugs,以俺的智力还是放弃为好)。
闭源的风险在于,哪天Clash成员被王晶端了,往里面加钓鱼后门,那就成老王VPN第二啦。
反正政治类网站俺还是一律上TOR,这样即使被钓鱼了应该也问题不大。
警告!这套方案在Clash for Android上失效(最近的版本和半年前的版本我都测试过,全都有问题)!会导致DNS泄漏!
这套方案在Clash X Pro和OpenClash都能通过,所以我认为是Clash for Android的问题。
原因未知,正在测试,估计是DNS处理机制有问题。
但该软件的作者确实对隐私很不上心。他刚上架Google Play的时候,用的还是国内地址(估计是真实的),后来才改为一个日本的假地址。
另外,从github上的反馈来看,该作者做过不少【塞私货】的行为——不完全遵守配置文件,并且在未告知用户的情况下,强制加入系统DNS和作者自己选择的DNS。虽然后来改了,不过一段时间之后,他又在别的功能上做了类似的操作。我认为作者并没有恶意,只是在“用隐私换取便利”,同时不告诉你。
我这也算是亲身体会到,在网络安全上相信国产闭源软件,后果会有多么不可控。