一、Clash 配置文件结构
Clash 配置文件是 YAML 格式,分为三个部分:
- 代理(Proxy):指定代理服务器的配置,包括类型、地址、端口、加密方式、密码等参数。
- 规则(Rule):指定数据包的转发策略,包括基于域名、IP、协议、端口等的规则匹配。
- 本地(General):指定本地代理客户端的配置,包括监听端口、日志级别、DNS 解析、代理网卡等。
具体示例如下:
port: 7890
socks-port: 7891
redir-port: 7892
allow-lan: false
mode: Rule
log-level: info
external-controller: 127.0.0.1:9090
proxies:
- name: "proxy_name"
type: ss
server: "server_ip"
port: 8888
cipher: "aes-256-gcm"
password: "password"
udp: true
...
rules:
- DOMAIN-SUFFIX,google.com,proxy_name
- IP-CIDR,192.168.0.0/16,direct
...
二、代理协议
Clash 支持多种代理协议,包括 Shadowsocks、V2Ray、Socks5、HTTP 等,每种协议都有其特定的配置格式,下面以 Shadowsocks 为例进行介绍:
1. Shadowsocks
Shadowsocks 是一种加密传输协议,可以实现代理服务器和客户端之间的数据传输加密,使网络数据更安全。在 Clash 中使用 Shadowsocks,需要配置以下参数:
- type:代理协议类型,应设置为 ss;
- server:代理服务器地址;
- port:代理服务器端口;
- cipher:加密方式,可以选择 chacha20-ietf、aes-128-gcm、aes-192-gcm、aes-256-gcm 等;
- password:加密密码;
- udp:是否开启 UDP 代理,应设置为 true 或 false。
具体示例如下:
proxies:
- name: "proxy_name"
type: ss
server: "server_ip"
port: 8888
cipher: "aes-256-gcm"
password: "password"
udp: true
...
2. V2Ray
V2Ray 是一个多协议代理软件,支持 VMess、Shadowsocks、VLESS 等多种协议。在 Clash 中使用 V2Ray,需要配置以下参数:
- type:代理协议类型,应设置为 vmess;
- server:代理服务器地址;
- port:代理服务器端口;
- uuid:用户 ID;
- alterId:传输协议伪装 ID;
- cipher:加密方式,可以选择 aes-128-gcm、chacha20-poly1305 等;
- tls:是否使用 TLS 加密,应设置为 true 或 false。
具体示例如下:
proxies:
- name: "proxy_name"
type: vmess
server: "server_ip"
port: 8888
uuid: "user_id"
alterId: 32
cipher: "aes-128-gcm"
tls: true
...
三、规则配置
规则配置是 Clash 的核心功能,可以根据不同的匹配规则将数据包转发到指定的代理服务器,实现智能路由的目的。在 Clash 中,规则配置主要分为两类:
- 基础规则:指定基于域名、IP、协议、端口等的规则匹配。
- 策略组:根据基础规则定义的匹配条件,将代理服务器划分到不同的策略组中,再根据策略组的匹配规则进行转发。
规则配置的具体语法和格式可以参考 Clash 的官方文档。下面给出一个基本的规则配置示例:
rules:
- DOMAIN-SUFFIX,google.com,proxy_name
- IP-CIDR,192.168.0.0/16,direct
...
proxy-groups:
- name: "Proxy"
type: select
proxies:
- proxy_name1
- proxy_name2
- name: "Final"
type: select
proxies:
- Proxy
strategy:
type: url-test
url: http://www.gstatic.com/generate_204
interval: 300
四、常见问题
1. Clash 如何运行在 Docker 容器中?
在 Docker 容器中运行 Clash,需要先在 Docker Hub 上拉取 Clash 镜像,然后通过以下命令启动容器:
$ docker run -d --name=clash -v /path/to/clash:/root/.config/clash -p 7890:7890 dreamacro/clash
其中 /path/to/clash
是本地配置文件目录,可以替换为任意目录。
2. Clash 如何支持 Trojan 协议?
Clash 可以通过插件的方式支持 Trojan 协议,需要安装 trojan-plugin 插件并在配置文件中启用,具体方法请参考 Clash 的官方文档。
3. Clash 如何实现局域网内部代理?
要在局域网内实现代理,可以在 Clash 的配置文件中启用 allow-lan
参数,同时将其他设备的代理设置为局域网内的 Clash 服务器 IP 和监听端口即可。
4. Clash 如何配置 DNS 解析?
Clash 支持自定义 DNS 解析服务器,可以在配置文件中指定 dns
参数和 fake-ip-range
参数,具体方法请参考 Clash 的官方文档。