背景: 群晖 DS220+,媳妇儿和我都有翻墙的刚需,手机、pad 、switch 、windows 电脑、mac 电脑,终端比较多,所以要搞家庭网络下的自动翻墙 实现方案: [ol]NAS 上通过 Docker 安装 Clash ,按 Rule 自动判断哪些访问需要代理,哪些直连。顺便写了个脚本,每天更新 Clash 订阅。手机等终端在网络配置中填写 PAC 文件,逻辑上是可以直接填写 Clash 的地址的,但是担心所有的流量都要先经过 NAS ,导致不需要翻墙的访问变慢了,所以在 PAC 中搞了个白名单,白名单内的访问不走代理。 [/ol] 当前问题: [ol]小米手机偶尔会因为这个 PAC 导致网络连接失败,iPhone 没出现过这个现象。刚开始以为是 PAC 文件太大导致的,换了个小的还是会出现。PAC 中的白名单不完美,Github 上相关的项目都很老了,很多国内常用网站没包含在里面。没有合适的白名单的话,估计得自己搞一个了。准备存一下 Clash 里的日志,把访问多的域名且可以直连的统计出来,放到白名单里。 [/ol]
我的方案 软路由(爱快 192.168.1.1) + 爱快上的虚拟机安装的 iStoreOS(192.168.1.100) + PassWall 爱快 DHCP 中 指定好需要翻墙的设备 DNS 和 网关 均为 192.168.1.100 这样不影响普通设备 目前来说 如果只用 DS220+负责的话 推荐直接用群晖 VMM 搭建一个虚拟机 分配好固定内网 ip 192.168.x.100 安装 iStoreOS x86 版本 + PassWall 然后需要翻墙的设备 手动配置 DNS 和 网关 均为 192.168.x.100 就可以了
网络设备不太建议和别的东西放在一起。风险比较大(纯 NAS + 路由器还好,All-in-one 非常不建议) 比如,NAS 升级或者调整设置的时候,可能会导致 VM 中断,VM 中断又会导致网络问题。升级失败/网络不通无法远程管理/需要手机开热点搜解决方案等
兜底走 DIRECT PROXY 走这两个规则 https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/proxy.txt https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/gfw.txt 需要其他的特定规则在这里找 https://github.com/blackmatrix7/ios_rule_script