Редактировать файл подписки напрямую — классическая ошибка новичка: правка работает ровно до следующего обновления подписки, которое её стирает. Ответ Clash Verge — Merge и Script: ваши изменения лежат отдельно и автоматически накладываются поверх того, что присылает провайдер.
Конвейер
При каждой загрузке конфига: текст подписки → применяется Merge (декларативно) → выполняется Script (JavaScript) → итоговый конфиг. Обновление меняет только первое звено; ваши слои сохраняются и накладываются заново.
Где редактировать: на странице «Профили» правым кликом — глобальный расширяющий конфиг (действует на все подписки) либо Merge/Script конкретной карточки (действует только на неё).
Merge: девяносто процентов задач
Merge-файл — это YAML с префиксами, описывающими способ слияния: prepend- (вставить в начало), append- (добавить в конец), поле без префикса (заменить целиком).
# мои правила первыми — высший приоритет
prepend-rules:
- DOMAIN-SUFFIX,corp-vpn.example,DIRECT
- PROCESS-NAME,Telegram.exe,PROXY
# заменить секцию DNS целиком
dns:
enable: true
enhanced-mode: fake-ip
nameserver:
- https://1.1.1.1/dns-query
# добавить собственную группу
append-proxy-groups:
- name: "Стриминг"
type: select
proxies: [HK-01, SG-02]
Prepend или append — не мелочь: правила, которые должны победить правила подписки (например, принудительный DIRECT для домена), идут в prepend; страховочные дополнения — в append. Сам синтаксис правил: инструкция по правилам.
Script: для динамики
Всё, что Merge не выразит — условные правки, массовая фильтрация, генерация групп, — делает Script: JavaScript-функция, получающая объединённый конфиг и возвращающая итоговый.
function main(config) {
// выбросить «информационные» узлы (остаток трафика, дата истечения)
config.proxies = config.proxies.filter(
p => !/истек|остаток|трафик/i.test(p.name)
);
// включить UDP всем узлам vmess
config.proxies.forEach(p => {
if (p.type === "vmess") p.udp = true;
});
return config;
}
Исключение в Script срывает загрузку конфига — ядро продолжает работать на старом. После правок загляните на страницу «Логи», прежде чем считать изменение применённым.
Изменения не применяются?
- Точно ли правили выбранный профиль (или глобальный расширяющий конфиг);
- Страница «Логи»: нет ли ошибок YAML — один лишний пробел отступа рушит блок;
- Правый клик по профилю → «Реактивировать» — принудительная перезагрузка;
- Страница «Подключения» покажет, какое правило реально ловит трафик, — так проверяется порядок prepend.
Если три секции конфига пока туманны — сначала прочтите разбор структуры конфига: после него Merge выглядит очевидным.