Введение: обзор техник
Освоив базовый ClashX, следующий этап — раскрыть его потенциал. Продвинутые техники улучшат производительность и дадут гибкость маршрутизации.
В этом руководстве — системный разбор: умное разделение трафика, автоматизация, оптимизация производительности и правил. Подходит пользователям со знанием основ ClashX.
После изучения вы сможете проектировать полностью кастомные схемы проксирования, повышать стабильность и адаптироваться к сложным сетевым условиям.
Умное разделение трафика
Суть — распределять трафик по признакам (домен, IP, география) в нужные узлы или напрямую. Вы выигрываете в задержке, стабильности и контроле.
Разделение по доменам
article14.smart-routing.auto.h3_1
rules:
# 第一级:白名单直连(最高优先级)
- DOMAIN,localhost,DIRECT
- DOMAIN-SUFFIX,local,DIRECT
- DOMAIN-SUFFIX,lan,DIRECT
# 第二级:国内服务直连
- DOMAIN-SUFFIX,alipay.com,DIRECT
- DOMAIN-SUFFIX,baidu.com,DIRECT
- DOMAIN-SUFFIX,taobao.com,DIRECT
- DOMAIN-SUFFIX,qq.com,DIRECT
# 第三级:国外流媒体
- DOMAIN-SUFFIX,netflix.com,🎬 流媒体
- DOMAIN-SUFFIX,youtube.com,🎬 流媒体
- DOMAIN-SUFFIX,twitch.tv,🎬 流媒体
- DOMAIN-KEYWORD,spotify,🎬 流媒体
# 第四级:游戏加速
- DOMAIN-SUFFIX,epicgames.com,🎮 游戏加速
- DOMAIN-SUFFIX,steampowered.com,🎮 游戏加速
# 第五级:特殊应用
- DOMAIN-SUFFIX,telegram.org,💬 即时通讯
- DOMAIN-SUFFIX,whatsapp.com,💬 即时通讯
# 最终规则
- GEOIP,CN,DIRECT
- MATCH,🚀 智能选择
Разделение по IP
article14.smart-routing.auto.h3_2
rules:
# 优先级最高:局域网 IP 直连
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
- IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
# 中国 IP 直连
- IP-CIDR,1.0.1.0/24,DIRECT,no-resolve
- IP-CIDR,1.1.1.0/24,DIRECT,no-resolve
# 特定 IP 段代理
- IP-CIDR,8.8.8.0/24,🚀 智能选择,no-resolve
- IP-CIDR,1.1.1.0/24,🚀 智能选择,no-resolve
# 最终规则
- MATCH,🚀 智能选择
GeoIP‑разделение
article14.smart-routing.auto.h3_3
rules:
# 中国 IP 直连
- GEOIP,CN,DIRECT
# 美国流量用美国节点
- GEOIP,US,🇺🇸 美国节点
# 日本流量用日本节点
- GEOIP,JP,🇯🇵 日本节点
# 欧洲流量用欧洲节点
- GEOIP,DE,🇩🇪 欧洲节点
- GEOIP,FR,🇫🇷 欧洲节点
- GEOIP,GB,🇬🇧 欧洲节点
# 默认代理
- MATCH,🚀 智能选择
article14.smart-routing.auto.p1
Продвинутые группы стратегий
Группы управляют трафиком, соединяя автоматический выбор, отказоустойчивость и балансировку. Это основа стабильности и скорости.
Fallback — отказоустойчивость
article14.advanced-groups.auto.h3_1
proxy-groups:
# 主节点层:自动测速
- name: "🇭🇰 香港主节点"
type: url-test
proxies:
- "HK-001"
- "HK-002"
- "HK-003"
url: "http://www.gstatic.com/generate_204"
interval: 300
tolerance: 50
# 故障转移层:监测主节点的健康状态
- name: "🚀 智能选择"
type: fallback
proxies:
- "🇭🇰 香港主节点"
- "🇯🇵 日本备用节点"
- "🇸🇬 新加坡备用节点"
- "DIRECT"
url: "http://www.gstatic.com/generate_204"
interval: 300
Load Balance — балансировка
article14.advanced-groups.auto.h3_2
proxy-groups:
# 一致性哈希负载均衡:同一连接使用同一节点
- name: "⚖️ 一致性哈希"
type: load-balance
proxies:
- "HK-001"
- "HK-002"
- "HK-003"
- "JP-001"
- "JP-002"
url: "http://www.gstatic.com/generate_204"
interval: 300
strategy: consistent-hashing
# 轮询负载均衡:依次切换节点
- name: "⚖️ 轮询"
type: load-balance
proxies:
- "HK-001"
- "HK-002"
- "HK-003"
url: "http://www.gstatic.com/generate_204"
interval: 300
strategy: round-robin
URL‑Test — параметры
article14.advanced-groups.auto.h3_3
proxy-groups:
# 链式代理:流量经过两个代理节点
- name: "🔗 双层加密"
type: relay
proxies:
- "HK-001"
- "JP-001"
# 应用场景:高风险网络环境下使用链式代理
- name: "🔐 超级安全"
type: relay
proxies:
- "HK-001"
- "SG-001"
- "JP-001"
rules:
- DOMAIN-SUFFIX,sensitive.com,🔗 双层加密
Relay — цепной прокси
article14.advanced-groups.auto.h3_4
proxy-groups:
# 区域节点组
- name: "🇭🇰 香港"
type: url-test
proxies:
- "HK-001"
- "HK-002"
- "HK-003"
url: "http://www.gstatic.com/generate_204"
interval: 300
- name: "🇯🇵 日本"
type: url-test
proxies:
- "JP-001"
- "JP-002"
url: "http://www.gstatic.com/generate_204"
interval: 300
# 目的组(流媒体、游戏等)
- name: "🎬 流媒体"
type: select
proxies:
- "🇭🇰 香港"
- "🇯🇵 日本"
- "🇺🇸 美国"
# 总选择组
- name: "🚀 总选择"
type: select
proxies:
- "🎬 流媒体"
- "🇭🇰 香港"
- "🇯🇵 日本"
- "DIRECT"
Автоматизация и скрипты
Скрипты помогут автоматизировать переключение конфигураций, обновление подписок/правил и плановые задачи.
Автопереключение конфигураций
article14.automation.auto.h3_1
#!/bin/bash
Плановые задачи
article14.automation.auto.h3_2
#!/bin/bash
article14.automation.auto.p1
Автообновление подписок
article14.automation.auto.h3_3
#!/usr/bin/env python3
Оптимизация производительности
Помимо базовой настройки есть приёмы, позволяющие снизить задержки, нагрузку на CPU/память и стабилизировать работу.
Оптимизация DNS
article14.performance.auto.h3_1
dns:
enable: true
listen: 0.0.0.0:53
enhanced-mode: fake-ip # 性能更优,但兼容性略低
# Fake-IP 地址池配置
fake-ip-range: 198.18.0.1/16
# 使用 Fake-IP 时应该排除的域名
fake-ip-filter:
- "*.lan"
- "*.local"
- "*.internal"
- localhost.ptlogin2.qq.com
- "*.qq.com"
- "*.tencent.com"
# 主 DNS 服务器(国内解析快速)
nameserver:
- 119.29.29.29 # DNSPod 国内
- 223.5.5.5 # 阿里 DNS 国内
- https://doh.pub/dns-query # DoH 协议更安全
# 回落 DNS(当主 DNS 失败时使用)
fallback:
- https://1.1.1.1/dns-query # Cloudflare DoH
- https://dns.google/dns-query # Google DoH
- https://9.9.9.9/dns-query # Quad9 DoH
# 域名策略性 DNS 选择(关键优化点)
nameserver-policy:
# 国内域名使用国内 DNS
"geosite:cn":
- 119.29.29.29
- 223.5.5.5
# 国外域名使用国外 DNS
"geosite:geolocation-!cn":
- https://1.1.1.1/dns-query
- https://dns.google/dns-query
# 特定域名的 DNS
"domain:example.com":
- 119.29.29.29
"domain:google.com":
- https://8.8.8.8/dns-query
Оптимизация соединений
article14.performance.auto.h3_2
general:
# 出站接口
interface-name: en0
# TCP 连接池大小
tcp-concurrent: true
# UDP 连接超时(毫秒)
udp-timeout: 300
# 连接空闲超时时间
keep-alive-interval: 15
# SOCKS5 UDP 支持
socks-version: 5
# 高级性能调优参数
experimental:
# 启用接口检测
interface-name: en0
# 忽略解析失败的域名(减少重试)
ignore-resolve-fail: true
Оптимизация потребления ресурсов
article14.performance.auto.h3_3
规则类型性能对比(从快到慢):
1. IP-CIDR/IP6-CIDR(最快,O(1) 查询)
时间: ~0.1ms
2. DOMAIN-SUFFIX(快速,前缀树查询)
时间: ~0.2-0.5ms
3. DOMAIN(中等,精确匹配)
时间: ~0.3-0.8ms
4. DOMAIN-KEYWORD(较慢,包含匹配)
时间: ~1-2ms
5. GEOIP(较慢,需要 IP 库查询)
时间: ~2-5ms
6. RULE-SET(取决于规则集大小)
时间: ~0.5-5ms
article14.performance.auto.p1
Оптимизация и обслуживание правил
Грамотная организация и обновление rulesets — залог стабильной и предсказуемой работы ClashX.
Rule Providers
article14.rule-optimization.auto.h3_1
rule-providers:
# 广告拦截规则
reject:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt"
path: ./ruleset/reject.yaml
interval: 86400 # 24小时更新一次
# 代理规则
proxy:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/proxy.txt"
path: ./ruleset/proxy.yaml
interval: 86400
# 直连规则
direct:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/direct.txt"
path: ./ruleset/direct.yaml
interval: 86400
# 流媒体规则
streaming:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/streaming.txt"
path: ./ruleset/streaming.yaml
interval: 86400
# Apple 规则
apple:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/apple.txt"
path: ./ruleset/apple.yaml
interval: 86400
# Google 规则
google:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/google.txt"
path: ./ruleset/google.yaml
interval: 86400
# 国内 IP 规则
cncidr:
type: http
behavior: ip
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/cncidr.txt"
path: ./ruleset/cncidr.yaml
interval: 86400
# 国外 IP 规则
lancidr:
type: http
behavior: ip
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/lancidr.txt"
path: ./ruleset/lancidr.yaml
interval: 86400
# 使用规则提供者
rules:
# 局域网直连
- RULE-SET,lancidr,DIRECT
# 广告拦截
- RULE-SET,reject,REJECT
# 直连规则
- RULE-SET,direct,DIRECT
# 流媒体
- RULE-SET,streaming,🎬 流媒体
# Apple
- RULE-SET,apple,🍎 Apple 服务
# Google
- RULE-SET,google,🔍 Google 服务
# 国内 IP
- RULE-SET,cncidr,DIRECT
# 代理规则
- RULE-SET,proxy,🚀 智能选择
# 最终规则
- MATCH,🚀 智能选择
Лучшие практики обслуживания правил
article14.rule-optimization.auto.h3_2
#!/usr/bin/env python3
import requests
import yaml
from pathlib import Path
class RuleManager:
def __init__(self, config_path):
self.config_path = Path(config_path)
self.config = self._load_config()
def _load_config(self):
with open(self.config_path, 'r', encoding='utf-8') as f:
return yaml.safe_load(f)
def _save_config(self):
with open(self.config_path, 'w', encoding='utf-8') as f:
yaml.dump(self.config, f, allow_unicode=True, default_flow_style=False)
def add_rule(self, rule_text, position=None):
if 'rules' not in self.config:
self.config['rules'] = []
if position is None:
position = len(self.config['rules']) - 1
self.config['rules'].insert(position, rule_text)
self._save_config()
def remove_rule(self, keyword):
if 'rules' not in self.config:
return
original_count = len(self.config['rules'])
self.config['rules'] = [r for r in self.config['rules'] if keyword not in r]
removed_count = original_count - len(self.config['rules'])
self._save_config()
def list_rules(self, limit=20):
if 'rules' not in self.config:
return
rules = self.config['rules'][-limit:]
for i, rule in enumerate(rules, 1):
print(f"{i}. {rule}")
manager = RuleManager(Path.home() / '.config/clash/config.yaml')
manager.add_rule("DOMAIN-SUFFIX,example.com,DIRECT")
manager.list_rules(10)
Готовые сценарии
Набор типовых конфигураций для разных задач, которые можно использовать как основу.
Медиа и стриминг
article14.scenarios.auto.h3_1
proxy-groups:
# 流媒体专用策略组
- name: "🎬 流媒体"
type: select
proxies:
- "🇭🇰 香港节点" # 节目丰富
- "🇯🇵 日本节点" # 低延迟
- "🇺🇸 美国节点" # 最新内容
- DIRECT
# Netflix 专用
- name: "🍿 Netflix"
type: url-test
proxies:
- "HK-Netflix-01"
- "US-Netflix-01"
url: "https://www.netflix.com/nrdp/v6/www/user"
interval: 300
tolerance: 100
rules:
# 流媒体平台分流
- DOMAIN-SUFFIX,netflix.com,🍿 Netflix
- DOMAIN-SUFFIX,nflxso.net,🍿 Netflix
- DOMAIN-SUFFIX,youtube.com,🎬 流媒体
- DOMAIN-SUFFIX,youtu.be,🎬 流媒体
- DOMAIN-SUFFIX,hulu.com,🎬 流媒体
- DOMAIN-SUFFIX,disneyplus.com,🎬 流媒体
- DOMAIN-KEYWORD,spotify,🎬 流媒体
Игры
article14.scenarios.auto.h3_2
proxy-groups:
# 游戏加速组:低延迟优先
- name: "🎮 游戏加速"
type: url-test
proxies:
- "HK-Game-01"
- "SG-Game-01"
- "JP-Game-01"
url: "http://www.gstatic.com/generate_204"
interval: 300
tolerance: 30 # 游戏对延迟敏感,容差设置小
rules:
# Steam
- DOMAIN-SUFFIX,steampowered.com,🎮 游戏加速
- DOMAIN-SUFFIX,steamcommunity.com,🎮 游戏加速
# Epic Games
- DOMAIN-SUFFIX,epicgames.com,🎮 游戏加速
- DOMAIN-SUFFIX,unrealengine.com,🎮 游戏加速
# 其他游戏平台
- DOMAIN-SUFFIX,battlenet.com,🎮 游戏加速
- DOMAIN-SUFFIX,playstation.com,🎮 游戏加速
Скачивания
article14.scenarios.auto.h3_3
proxy-groups:
# 下载专用:带宽优先
- name: "📥 下载加速"
type: load-balance
proxies:
- "HK-Download-01"
- "HK-Download-02"
- "US-Download-01"
url: "http://www.gstatic.com/generate_204"
interval: 300
strategy: round-robin # 轮询实现负载均衡
rules:
# 常见下载站点
- DOMAIN-SUFFIX,github.com,📥 下载加速
- DOMAIN-SUFFIX,githubusercontent.com,📥 下载加速
- DOMAIN-SUFFIX,releases.ubuntu.com,📥 下载加速
Продвинутые функции
ClashX скрывает ряд полезных возможностей — используйте их для тонкой настройки.
TUN — расширенные настройки
article14.advanced-features.auto.h3_1
tun:
enable: true
stack: system # 或 gvisor(性能更好但兼容性略低)
# DNS 劫持
dns-hijack:
- any:53
- tcp://any:53
# 自动路由
auto-route: true
# 自动检测接口
auto-detect-interface: true
# 指定特定网卡(可选)
interface-name: en0
# MTU 大小优化
mtu: 9000
External Control API
article14.advanced-features.auto.h3_2
#!/usr/bin/env python3
"upload": data["up"],
"download": data["down"],
"timestamp": datetime.now()
}
return None
def change_mode(self, mode):
"""切换模式: rule, global, direct"""
valid_modes = ["rule", "global", "direct"]
if mode not in valid_modes:
return False
data = json.dumps({"mode": mode})
response = requests.put(
f"{self.base_url}/configs",
data=data,
headers=self.headers
)
return response.status_code == 200
def get_rules_info(self):
"""获取规则信息"""
response = requests.get(f"{self.base_url}/rules", headers=self.headers)
return response.json() if response.status_code == 200 else None
def test_url_latency(self, url, timeout=5000):
"""测试 URL 延迟"""
response = requests.get(
f"{self.base_url}/configs/latency?url={url}&timeout={timeout}",
headers=self.headers
)
return response.json() if response.status_code == 200 else None
def get_proxy_latency(self, proxy_name, url="http://www.gstatic.com/generate_204"):
"""测试单个代理延迟"""
response = requests.get(
f"{self.base_url}/proxies/{proxy_name}/delay?url={url}",
headers=self.headers
)
return response.json() if response.status_code == 200 else None
# 使用示例:实时流量监控
async def monitor_traffic():
dashboard = ClashXDashboard(secret="your-secret")
print("开始监控流量...")
while True:
stats = dashboard.get_traffic_stats()
if stats:
print(f"[{stats['timestamp']}] 上行: {stats['upload']:.2f} B/s, "
f"下行: {stats['download']:.2f} B/s")
await asyncio.sleep(2)
# 运行监控
# asyncio.run(monitor_traffic())
Внешний контроллер и UI
article14.advanced-features.auto.h3_3
general:
# 启用外部控制器
external-controller: 0.0.0.0:9090
# API 访问密钥(强烈建议设置)
secret: "your-very-secure-secret-key-here"
# CORS 支持
external-ui: true
# 外部 UI 路径
external-ui-url: "https://clash.razord.top/"
article14.advanced-features.auto.p1
article14.sec.auto.h3_1
article14.sec.auto.h3_2
- article14.sec.auto.li1
- article14.sec.auto.li2
- article14.sec.auto.li3
- article14.sec.auto.li4
- article14.sec.auto.li5
- article14.sec.auto.li6
- article14.sec.auto.li7
Частые вопросы и решения
article14.sec.auto.p1
article14.sec.auto.p2
article14.sec.auto.p3