Clash 是一个流行的 DNS 和路由 软件,能够帮助用户管理网络接口和路由规则,在 Clash 中,路由选择主要基于接口的 metric(指标)值,这些 metric 由接口的 ID、IP 地址、网络掩码和接口名称决定,以下是 Clash 路由选择的详细说明和一些实用技巧:
Clash 中接口的 metric 是根据以下因素计算的:
- 接口 ID:从小到大排序,接口 ID 越小,优先级越低。
- IP 地址:从小到大排序,IP 地址 越小,优先级越低。
- 网络掩码(IP 前缀长度):IP 前缀长度 越长,优先级越高。
- 接口名称:按照字典序排列,名称越小,优先级越低。
默认情况下,Clash 会根据这些因素自动计算并排序接口的 metric。
手动指定接口的 metric
为了更好地控制接口的优先级,用户可以在 Clash 的配置文件中手动指定接口的 metric,在 /etc/clash/interface.json 文件中添加如下内容:
{
"interfaces": [
{
"name": "eth",
"metric": 10
},
{
"name": "tun",
"metric": 20
}
]
}
这样,eth 接口的 metric 为 10,比 tun 的 20 优先级更高,Clash 会优先使用 eth 进行路由。
路由选择的实际应用
在路由选择时,Clash 会根据接口的 metric 来决定使用哪个接口进行路由。
- 如果有两个接口,
eth(metric 10)和tun(metric 20),Clash 会优先使用eth进行路由。 - 如果有多个接口,Clash 会选择接口的 metric 最小的那个进行路由。
更高级的路由选择配置
在更复杂的网络场景中,用户可以通过配置文件来进一步指定路由规则,在 /etc/clash/routes.json 文件中,用户可以定义路由规则,指定使用特定接口进行路由。
{
"rules": [
{
"dst": "10.../24",
"gw": "192.168.1.1",
"interface": "eth"
}
]
}
这样,Clash 会在 ../24 网络范围内,使用 eth 接口连接到默认网关 168.1.1。
常见问题与解决方案
- 路由选择错误:如果路由选择错误,可能是接口的 metric 设置不正确,建议用户检查接口的 metric 设置,确保重要接口的 metric 值较低。
- 网络连接问题:在配置后,建议用户测试网络连接,确保 Clash 能够正确选择接口进行路由。
Clash 的路由选择机制灵活且高效,用户可以根据自己的网络环境调整接口的 metric 和路由规则,通过合理配置,用户可以充分发挥 Clash 的潜力,实现高效的网络管理。




