问题
公司部分服务部署在本地主机(使用物理机虚拟),通过在公司网络软路由中配置 DNS(域名转发到指定 IP)的方式,使可通过域名访问服务。
我使用 ClashX,订阅服务提供商默认配置中默认开启 DNS,我会手动关闭其 DNS,让公司网络 DNS 可用。但订阅每次更新后,其配置会被还原,DNS 又会开启,导致本地服务不可用,此时只能手动改为 enable: false
,比较烦人。
dns: |
一直想找一种一劳永逸的办法解决这个问题。我在 ClashX 的 Discussions 中看到一位大佬的解决方式,经过尝试,确实解决了我的这个问题。
解决方式
使用 ClashX Pro + proxy-providers,proxy-providers 是 Clash Premium提供的功能,可使用 proxy-providers 功能直接配置订阅地址,「外面」的配置将覆盖订阅的配置,这样订阅地址的 DNS 就不会生效了。Clash Premium 是一个闭源的、有更多功能、但不收费的 Clash 分支,为了防止不当使用。ClashX Pro 是基于 Clash Premium 实现,ClashX Pro 下载比较隐蔽,在 README.md 中以下位置。
Download ClashX Pro With enhanced mode and Native Apple Silicon support at AppCenter for free permanently.
我的 ClashX Pro 配置文件格式:
## all.yml |
遇到的问题
1、错误提示:error: unsupported rule type RULE-SET
- 原因:因为没有使用 ClashX Pro,ClashX 不支持 RULE-SET 配置
- 解决方式:使用 ClashX Pro
- Link: error: unsupported rule type RULE-SET
2、错误提示:read tcp4 ip1:65461->ip2:443: read: connection reset by peer
- 原因:没有使用最新的订阅地址
- 解决方式:使用最新订阅地址
3、错误提示:initial proxy provider pqjc error: yaml: unmarshal errors: line 1: cannot unmarshal !!str dHJvamF...
into provider.ProxySchema
- 原因:因订阅地址后面 token 一般使用 BASE64 编码,Clash 无法识别
- 解决方式:订阅地址加
&flag=clash
,示例:https://g.bbydy.org/api/v1/client/subscribe?token=82ec76201538xxx0f1a587f2f7c3&flag=clash