Clash代理服务器配置文件详解
Clash是一款功能强大的代理服务器管理工具,其核心配置文件是clash.yaml,通过这个文件用户可以对代理服务器进行详细的自定义设置,本文将详细介绍Clash配置文件的结构、各项配置参数及其应用场景。
Clash配置文件概述
Clash的配置文件采用YAML格式,文件名通常为clash.yaml或clash.conf,文件结构包含多个主要部分,每个部分都有特定的配置项,用户可以根据需求进行修改。
配置文件结构
-
listen:配置代理服务器的监听设置
ip: 代理服务器监听的IP地址,默认为本地IP(...)port: 代理服务器监听的端口,默认为808socks_port: socks代理的端口,默认为108
-
socks:配置SOCKS代理
enable: 是否启用SOCKS代理,默认为truelisten_ip: socks代理监听的IP地址,默认为...listen_port: socks代理的端口,默认为108
-
http:配置HTTP代理
enable: 是否启用HTTP代理,默认为truelisten_ip: HTTP代理监听的IP地址,默认为...listen_port: HTTP代理的端口,默认为80http_global_proxy: 是否启用全局代理,默认为false
-
https:配置HTTPS代理
enable: 是否启用HTTPS代理,默认为truelisten_ip: HTTPS代理监听的IP地址,默认为...listen_port: HTTPS代理的端口,默认为443
-
socks_remote: 配置远程SOCKS代理
enable: 是否启用远程SOCKS代理,默认为falseserver_ip: 远程SOCKS服务器的IP地址server_port: 远程SOCKS服务器的端口
-
http_remote: 配置远程HTTP代理
enable: 是否启用远程HTTP代理,默认为falseserver_ip: 远程HTTP代理服务器的IP地址server_port: 远程HTTP代理服务器的端口
-
allow_all: 是否允许所有域名和端口通过代理,默认为false
-
proxy-domain: 定义允许的域名列表
domain_list: 域名列表,支持单个域名和子域名匹配
-
proxy-bypass: 定义不经过代理的域名和IP地址
domain_list: 不经过代理的域名列表ip_list: 不经过代理的IP地址列表
-
socks-bypass: 定义不经过SOCKS代理的域名和IP地址
domain_list: 不经过SOCKS代理的域名列表ip_list: 不经过SOCKS代理的IP地址列表
-
http-bypass: 定义不经过HTTP代理的域名和IP地址
domain_list: 不经过HTTP代理的域名列表ip_list: 不经过HTTP代理的IP地址列表
-
socks-timeout: 设置SOCKS代理的超时时间
connect_timeout: 连接超时(单位:ms)read_timeout: 读取超时(单位:ms)
-
http-timeout: 设置HTTP代理的超时时间
connect_timeout: 连接超时(单位:ms)read_timeout: 读取超时(单位:ms)
-
https-timeout: 设置HTTPS代理的超时时间
connect_timeout: 连接超时(单位:ms)read_timeout: 读取超时(单位:ms)
-
socks-retry: 设置SOCKS代理的重试次数
max_retries: 最大重试次数
-
http-retry: 设置HTTP代理的重试次数
max_retries: 最大重试次数
-
https-retry: 设置HTTPS代理的重试次数
max_retries: 最大重试次数
-
redirect: 配置域名重定向
domain_list: 需要重定向的域名列表target_url: 重定向的目标URL
-
multi-proxy: 支持多级代理配置
proxy_list: 代理服务器列表,每个代理配置包括IP、端口和协议(http/https)
-
filter: 定义域名和端口的过滤规则
domain_list: 需要过滤的域名列表port_list: 需要过滤的端口列表
-
outgoing: 配置出站连接的限制
ip_list: 允许出站的IP地址列表domain_list: 允许出站的域名列表
配置文件实例
以下是一个示例Clash配置文件:
listen:
ip: 0...
port: 808
socks_port: 108
socks:
enable: true
listen_ip: 0...
listen_port: 108
http:
enable: true
listen_ip: 0...
listen_port: 80
http_global_proxy: false
https:
enable: true
listen_ip: 0...
listen_port: 443
socks_remote:
enable: true
server_ip: 123.45.67.89
server_port: 108
http_remote:
enable: true
server_ip: 192.168.1.1
server_port: 80
allow_all: false
proxy-domain:
domain_list: example.com, *.example.com
proxy-bypass:
domain_list: [ *.google.com, www.google.com ]
ip_list: [ 10...1, 192.168.2.1 ]
socks-bypass:
domain_list: [ *.google.com, www.google.com ]
ip_list: [ 10...1, 192.168.2.1 ]
http-bypass:
domain_list: [ *.google.com, www.google.com ]
ip_list: [ 10...1, 192.168.2.1 ]
socks-timeout:
connect_timeout: 100
read_timeout: 200
http-timeout:
connect_timeout: 100
read_timeout: 200
https-timeout:
connect_timeout: 100
read_timeout: 200
socks-retry:
max_retries: 3
http-retry:
max_retries: 3
https-retry:
max_retries: 3
redirect:
domain_list: [ example.com, *.example.com ]
target_url: http://redirect.example.com
multi-proxy:
proxy_list:
- { ip: 192.168.1.1, port: 808, protocol: http }
- { ip: 192.168.1.2, port: 8443, protocol: https }
filter:
domain_list: [ *.ads.com, *.malware.com ]
port_list: [ 80, 443 ]
outgoing:
ip_list: [ 0.../, 10.../24 ]
domain_list: [ example.com, *.example.com ]
配置文件应用
完成配置后,将clash.yaml文件放入Clash的配置目录中(通常为/etc/clash),然后重启Clash服务,Clash会根据配置文件自动生效新设置,代理服务器将根据新的规则进行请求处理。
注意事项
- 配置文件保存: 确保配置文件保存在安全的位置,避免被意外修改或删除。
- 服务重启: 配置完毕后,需重启Clash服务以应用新的设置。
- 测试: 在应用配置后,建议在测试环境中验证代理规则的正确性,避免影响生产环境。
通过合理配置Clash的clash.yaml文件,用户可以根据实际需求灵活管理网络代理,实现对网络流量的精确控制,Clash的强大功能使其成为网络管理员和开发者的理想选择,特别适用于需要多级代理、过滤和重定向的复杂网络环境。









