Surge 使用 Module 覆盖托管配置
起因⌗
因为我本地采用 Laravel Valet 搭建的 PHP 开发环境,然后处于偷懒的目的,我吧本地开发环境的项目 TLD(顶级域名)改为 .it
。
但是该域名又与公网的域名冲突,如果走代理会请求到公网上的服务。
相关的文章可以访问《ClashX 忽略指定域名代理》
解决方案⌗
将本地的 TLD 改为 .local⌗
这种方案时最快且有效的,但是完美主义的我,不想这么做。
覆盖托管的配置文件⌗
于是我查询了 Surge 的官方文档,发现可以使用 includes 包含配置文件,但是只能包含如下配置块:
[Proxy]
#!include Forwarding.dconf
[Proxy Group]
#!include Forwarding.dconf
[Rule]
#!include Forwarding.dconf
而我们要覆盖的配置项时在 [General] 块中,显然这种方式并不能解决我们的问题。然后我又翻阅到了 Module 相关的文档。
发现这个功能可以覆盖已有的配置,这不就是我想要的吗。然后我在 Surge 的配置文件夹中创建了 SKIPROXY.sgmodule
的配置文件,并写入了如下配置信息:
#!name=Skip Proxy
#!desc=Custom dns server and skip proxy config
#!system=mac
[General]
dns-server = 127.0.0.1, system, 117.50.10.10, 119.29.29.29, 223.6.6.6
skip-proxy = %APPEND% *.it
模块配置支持覆盖、追加和插入通用配置,在 dns-server 选贤中我采用的是覆盖,而 skip-proxy 选项则采用的是追加。
配置好以后,在 Surge 的更多配置中找到模块(Module)配置,会发现里面会多出来一项你自己命名的配置文件,直接勾选启用然后再点击应用就可以了。
然后查看一下系统网络的配置,中是否设置上了 Bypass proxy:
这样就可以使用本地的 dnsmasq 服务解析本地开发环境的域名了,同时忽略 *.it
的 HOST 的代理请求。
I hope this is helpful, Happy hacking…