Clash Verge 中如何设定流量限制,防止超额使用?

在 Clash Verge 中设定流量限制(Traffic Throttling/Limit)主要有两种需求场景:一种是防止节点跑路/超支(限额断网),另一种是防止单设备抢占带宽(限速)。

由于 Clash Verge 的内核(Mihomo/Meta)目前没有内置“流量达到 X GB 后自动断开”的硬开关,我们通常需要通过 脚本(Scripting) 或 特定配置参数 来实现管理。

1. 流量限额:防止超量扣费

如果你担心订阅流量超支,可以通过 Clash Verge 的「脚本 (Script)」功能,从订阅的 HTTP 响应头中提取流量信息,并根据剩余流量动态调整行为。

实现思路: 许多机场会在订阅链接的 Response Header 中返回 Subscription-Userinfo。你可以通过预处理脚本(Merge Script)读取这些数据:

JavaScript

function main(config, profileName) {

// 注意:这需要机场后端支持发送流量信息头

// 逻辑:如果剩余流量小于 5%,则将所有流量重定向至 REJECT

const info = config['subscription-userinfo'];

if (info) {

const total = info.total;

const used = info.upload + info.download;

if (used / total > 0.95) {

config.rules.unshift('MATCH,REJECT'); // 接近限额时强制断网

}

}

return config;

}

2. 流量限速:防止单连接抢占带宽

如果你希望限制 Clash 的全局下载或上传速度,避免因大流量下载导致系统或其他设备卡顿,可以使用 max-speed 参数。

配置方法: 在 Merge 脚本或配置文件的顶层(Global)添加:

YAML

# 限制全局下载速度为 10MB/s (单位为字节/秒)

# 10 * 1024 * 1024 = 10485760

max-download-speed: 10485760

# 限制全局上传速度为 2MB/s

max-upload-speed: 2097152

3. 基于规则的“省流模式”

通过优化分流规则,可以有效防止高流量服务(如视频回放、系统更新)在不知不觉中耗尽流量。

视频降级:将流媒体域名指向一个特定的策略组,只有当你手动确认时才开启。

拦截高流量服务:YAMLrules: - DOMAIN-SET,high-traffic-apps,REJECT # 拦截特定的高流量应用 - DOMAIN-SUFFIX,windowsupdate.com,DIRECT # 确保系统更新不走代理

4. 外部工具:配套监控

由于 Clash 侧重于路由而非计费,结合系统级工具往往更有效:

NetLimiter (Windows):可以非常精准地限制 Clash Verge 进程的月度/日度流量上限,并在达到阈值时自动切断该进程的联网权限。

流量监控看板:在 Clash Verge 的「代理 (Proxies)」页面,节点名称下方的流量数值是实时统计的。你可以定期查看以手动预警。

Clash Verge 中如何设定流量限制,防止超额使用常见问题

为什么我设置了 max-download-speed 却没生效?

确保你使用的是 Mihomo (Meta) 内核。原版 Clash Premium 对限速参数的支持可能不完整。另外,限速对已经建立的连接(Active Connections)可能不会立即生效,需要断开重连。

如何在手机上同步这些限额设置?

如果你使用的是 Stash (iOS) 或 Clash Meta for Android,它们也支持类似的脚本或规则逻辑。最简单的方法是在云端订阅转换器中直接配置好 rules。

有没有办法在流量快用完时给我发通知?

仅靠 Clash 很难做到。但你可以配合 Webhooks 功能,通过脚本在触发规则时向你的 Telegram 或 Server酱 发送请求。