clash 如何自动切换节点?

2024-05-01 19:20:23 +08:00
 kyonn

需求是回家后将到家里私有域名的连接直接走 DIRECT, 人在外面时走相应 proxy 规则.

测试过使用 url-test 测试内网域名, 比较奇怪的是即使设备不在内网, 测出来的内网域名的 DIRECT 也是有正常延时数据的(未提示 timeout). 使用的软件是 CFW.

另外, CFW 刚启动时部分节点的 url-test 结果似乎也不对(显示 timeout),手动刷一下才会出来.

接入家里的局域网不一定是 wifi, 所以通过 SSID 的办法不可行.

实现自动切换节点需求的来源想归一化 clash 配置, 到家后不用手动切换配置. 虽然在家也走 proxy 似乎也是连通的, 但应该会去 proxy device 那边绕一圈?

3649 次点击
所在节点    问与答
13 条回复
Muniesa
2024-05-01 21:01:18 +08:00
我的做法是,用 Windows 自带的任务计划运行一个脚本,在 clash 运行后触发,用 clash 的 API 来切换节点
Muniesa
2024-05-01 21:02:03 +08:00
@Muniesa 因为脚本可以获取连接的 WiFi 名称,所以可以判断是不是在自家的局域网
Muniesa
2024-05-01 21:03:14 +08:00
@Muniesa 如果家里局域网不一定是 WiFi 的话,用固定 IP 应该也可以判断吧
kyonn
2024-05-01 21:13:39 +08:00
@Muniesa 感谢提供思路. 这是个办法, 就是比较麻烦, 要单独维护个脚本, 每个会移动的设备都要配置, 如果 clash 原生某个机制就更好了.
SenLief
2024-05-01 21:35:07 +08:00
接入家里的局域网不一定是 wifi, 所以通过 SSID 的办法不可行.
SenLief
2024-05-01 21:35:36 +08:00
上边的没打完,那个局域网不是 wifi 的如何理解的? 5g 也能组网嘛
kenvix
2024-05-01 21:38:30 +08:00
Windows 是有”Network Profile“的概念的,你可以根据 Network Profile 判断是不是在家,但是 clash 没这功能
kinist
2024-05-01 22:06:48 +08:00
家里的 DNS 服务把域名解析到内网就可以走 direct 了啊
kyonn
2024-05-02 10:57:01 +08:00
@SenLief rj45 有线接入局域网.
kyonn
2024-05-02 10:59:06 +08:00
@kinist clash 配的是根据域名分流的, 即使人在外面, 走 clahs 的 proxy, 最终远端 dns 解析应该也是局域网 ip. 靠这个应该无法区分局域网和外网.
私有的域名在公网上是解析不到的.
SenLief
2024-05-02 15:11:12 +08:00
@kyonn 有线接入?用网口设备就可以分流吧。
kyonn
2024-05-02 18:26:05 +08:00
@SenLief 不想为不同的设备写不同的 clash 配置, 想复用一份.
kinist
2024-05-06 08:40:01 +08:00
@kyonn 家里单独搞个 dns 即可

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1037303

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX