Clash 是一个基于 Netfilter 的高性能代理服务器,支持 DNS 和 HTTP/HTTPS 代理,甚至可以作为路由器工作,以下是一个典型的 Clash 配置方案,适用于企业网络中的高性能代理或边缘网关场景: Clash 配置方案 环境准备 操作系统:推荐使用 Linux(如 Ubuntu、CentOS、Debian)或 macOS。 硬件:支持多核 CPU、较大内存(建议 8GB 以上)、网络接口(如 10G 网络适配器)。 软件:安装 Docker(可选)或手动安装 Clash。 核心配置 Clash 的配置文件通常存放在 /etc/clash/clash.conf,以下是常见配置示例: # 设置 DNS 服务器地址(可选) nameserver "192.168.1.1" # 设置 DNS 缓存大小,默认为 4MB,可以根据需求调整 dns_cache_size = 16MB # 设置 HTTP/HTTPS 代理地址,默认代理所有流量 http_proxy "http://127...1:80" https_proxy "http://127...1:443" # DNS-over-HTTPS 配置 dns_over_https = 1 # DNS-over-TCP 配置 dns_over_tcp = 1 # 超时时间,默认为 5 秒 timeout = 5s # 设置最大并发连接数,默认为 1024 max_conns = 2048 # 设置 IPv4 和 IPv6 地址转换,默认为 1 ipv4_nat = 1 ipv6_nat = 1 # 禁用 HTTP/2,默认为 0(Clash 不支持 HTTP/2) http2 = 0 # 设置 WebSocket 代理,默认为 1 websocket = 1 # 禁用 TLS 1.2,默认为 0(Clash 支持 TLS 1.3) tls_version = 1 # 设置 TLS 主机密钥长度,默认为 128 bit tls_keylength = 128 # 设置 TLS session cache size,默认为 256MB tls_sess...
Clash 是一个基于 Netfilter 的高性能代理服务器,支持 DNS 和 HTTP/HTTPS 代理,甚至可以作为路由器工作,以下是一个典型的 Clash 配置方案,适用于企业网络中的高性能代理或边缘网关场景:
Clash 配置方案
环境准备
- 操作系统:推荐使用 Linux(如 Ubuntu、CentOS、Debian)或 macOS。
- 硬件:支持多核 CPU、较大内存(建议 8GB 以上)、网络接口(如 10G 网络适配器)。
- 软件:安装 Docker(可选)或手动安装 Clash。
核心配置
Clash 的配置文件通常存放在 /etc/clash/clash.conf,以下是常见配置示例:
# 设置 DNS 服务器地址(可选) nameserver "192.168.1.1" # 设置 DNS 缓存大小,默认为 4MB,可以根据需求调整 dns_cache_size = 16MB # 设置 HTTP/HTTPS 代理地址,默认代理所有流量 http_proxy "http://127...1:80" https_proxy "http://127...1:443" # DNS-over-HTTPS 配置 dns_over_https = 1 # DNS-over-TCP 配置 dns_over_tcp = 1 # 超时时间,默认为 5 秒 timeout = 5s # 设置最大并发连接数,默认为 1024 max_conns = 2048 # 设置 IPv4 和 IPv6 地址转换,默认为 1 ipv4_nat = 1 ipv6_nat = 1 # 禁用 HTTP/2,默认为 0(Clash 不支持 HTTP/2) http2 = 0 # 设置 WebSocket 代理,默认为 1 websocket = 1 # 禁用 TLS 1.2,默认为 0(Clash 支持 TLS 1.3) tls_version = 1 # 设置 TLS 主机密钥长度,默认为 128 bit tls_keylength = 128 # 设置 TLS session cache size,默认为 256MB tls_session_cache = 512MB # 设置 TLS Cipher 算法,默认为 modern tls_cipher = modern # 设置 HTTP/HTTPS 代理缓存,默认为 16MB http_cache_size = 64MB https_cache_size = 64MB # 代理超时时间,默认为 10 秒 http_timeout = 10s https_timeout = 10s # 设置 DNS 查询超时,默认为 10s dns_query_timeout = 10s # 设置 DNS 记录 TTL,默认为 60s dns_record_ttl = 60s # 设置 DNS 解析服务器地址,默认为 8.8.8.8 dns_server = "8.8.8.8" # 设置 DNS 转发服务器地址,默认为 8.8.8.8 dns_forwarder = "8.8.8.8" # 禁用 DNSSEC,默认为 0 dnssec = 0
DNS 配置
Clash 支持 DNS-over-HTTPS 和 DNS-over-TCP,以下是 DNS 配置示例:
# DNS-over-HTTPS 服务器地址 dns_over_https_server = "192.168.1.1:53" # DNS-over-TCP 服务器地址 dns_over_tcp_server = "192.168.1.1:53" # 设置 DNS 查询网关 forward_to = "192.168.1.1"
HTTP/HTTPS 代理配置
Clash 默认会代理所有流量到本地地址,但如果需要自定义规则,可以在 clash.conf 中添加过滤规则:
# 允许所有域名通过代理 allow_all = 1 # 禁用某些域名的代理(示例) # block_domain "example.com" # 设置 HTTP/HTTPS 代理地址,自定义规则 http_proxy "http://127...1:80" https_proxy "http://127...1:443" # 设置 WebSocket 代理地址,默认为 127...1:80 websocket_proxy "http://127...1:80" # 设置 TLS 1.3 密钥交换算法,默认为 modern tls_cipher "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" # 设置 TLS 1.3 版本,默认为 TLSv1.3 tls_version "TLSv1.3" # 设置 HTTP/HTTPS 代理缓存目录,默认为 /var/cache/clash http_cache_dir = "/var/cache/clash" https_cache_dir = "/var/cache/clash" # 设置 HTTP/HTTPS 代理超时,默认为 5 秒 http_timeout = 5s https_timeout = 5s
路由器模式配置
Clash 作为路由器使用,以下是配置示例:
# 设置默认网关 default_route = "192.168.1.1" # 设置网络接口(以 eth 为例) network_interface = "eth" # 启用路由器模式 router = 1 # 设置路由器的 MTU(最大传输单元,默认为 150) mtu = 150 # 设置路由器的ARP缓存大小,默认为 256MB arp_cache = 512MB # 设置路由器的SNAT(源网络地址转换)规则,默认为 192.168.1./24 source_nat = "192.168.1./24" # 设置路由器的DNAT(目标网络地址转换)规则,默认为 192.168.1./24 destination_nat = "192.168.1./24" # 设置路由器的防火墙规则,默认允许所有流量通过(可根据需求调整) firewall = 1 firewall_rule = "accept" # 设置路由器的NAT 监控(可选) nat_monitor = 1
性能调优
Clash 的性能依赖于内核参数和系统资源,建议优化以下设置:
# 设置网路绑定(防止内核抖动) net.core.bound_netdev = 1 # 设置优先级队列 net.core.prio_cq = 1 # 设置网路队列长度,默认为 100 net.core.netdev_max_prio = 100 # 设置 TCP 队列长度,默认为 100 net.ipv4.tcp_max_orphan_count = 100 # 设置 TCP 队列延迟,默认为 5ms net.ipv4.tcp_delack = 1 # 设置 TCP 快速重传,默认为 10 秒 net.ipv4.tcp_retransmit_timeout = 10s # 设置 IPv4 的 TCP 四字组件 net.ipv4.tcp_syncookies = 1 # 设置 IPv6 的 TCP 四字组件 net.ipv6.tcp_syncookies = 1 # 设置 IPv4 的 IPv4 地址表大小,默认为 256 net.ipv4.ip_forward_max_size = 4096 # 设置 IPv6 的 IPv6 地址表大小,默认为 512 net.ipv6.ip_forward_max_size = 16384 # 提高网络接口的并发处理能力 net.core.max_confl = 100000 # 设置网络接口的背压算法 net.core.backbone=5 # 设置网络接口的背压队列大小,默认为 100 net.core.backbone_queue=100 # 设置网络接口的背压优先级,默认为 0 net.core.backbone_prio= # 设置网络接口的背压绑定,默认为 1 net.core.backbone_bind=1 # 设置网络接口的背压使用多核 CPU,默认为 1 net.core.backbone_multi=1 # 设置网络接口的背压使用轮转,默认为 0 net.core.backbone_round= # 设置网络接口的背压使用调度,默认为 0 net.core.backbone_sched= # 设置网络接口的背压使用中断,默认为 1 net.core.backbone_intr=1 # 设置网络接口的背压使用软中断,默认为 1 net.core.backbone_softint=1 # 设置网络接口的背压使用硬中断,默认为 1 net.core.backbone_hardint=1 # 设置网络接口的背压使用中断抖动,默认为 0 net.core.backbone_intr_quiescent= # 设置网络接口的背压使用硬中断抖动,默认为 0 net.core.backbone_hardint_quiescent= # 设置网络接口的背压使用中断

相关文章








