实战指南:用Clash搭建私有分流网关的完整配置手册
大家好,今天想和大家分享一个我最近折腾的项目 – 用Clash搭建私有分流网关。这个方案特别适合像我这样有多台设备需要科学上网,又不想每台设备都单独配置代理的用户。经过几天的踩坑和调试,终于整理出了这份保姆级教程。
为什么选择Clash作为网关?
最开始我尝试过用SS/SSR直接做网关转发,但发现规则管理太麻烦。后来测试了Clash后,发现它的策略组和规则系统简直是为网关场景量身定做的。特别是:
- 支持多协议混合使用(SS/V2ray/Trojan等)
- 基于域名的智能分流
- 可以设置fallback自动切换节点
- 内存占用比同类方案低30%左右
基础环境准备
我的实验环境是一台Ubuntu 20.04的VPS,配置1核1G就够用了。首先需要安装一些依赖:
sudo apt update
sudo apt install -y wget git
这里有个小坑:如果系统时间不准确会导致证书验证失败,建议先同步时间:
sudo timedatectl set-timezone Asia/Shanghai
sudo apt install -y ntpdate
sudo ntpdate time.nist.gov
安装和配置Clash
我选择的是Clash Premium版,因为支持TUN模式。下载解压后记得给执行权限:
wget https://release.dreamacro.workers.dev/latest/clash-linux-amd64-latest.gz
gzip -d clash-linux-amd64-latest.gz
mv clash-linux-amd64-latest clash
chmod +x clash
配置文件方面,我建议先准备一个基础模板(config.yaml):
port: 7890
socks-port: 7891
redir-port: 7892
allow-lan: true
mode: Rule
log-level: info
external-controller: 0.0.0.0:9090
proxies:
- name: "香港节点"
type: vmess
server: hk.example.com
port: 443
uuid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
alterId: 0
cipher: auto
tls: true
proxy-groups:
- name: "自动选择"
type: url-test
proxies: ["香港节点"]
url: "http://www.gstatic.com/generate_204"
interval: 300
rules:
- DOMAIN-SUFFIX,google.com,自动选择
- GEOIP,CN,DIRECT
- MATCH,自动选择
设置系统代理和防火墙
为了让其他设备能通过网关上网,需要配置iptables转发。这里我踩过一个大坑 – 没开ip转发导致流量出不去:
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
iptables -t nat -N CLASH
iptables -t nat -A CLASH -d 0.0.0.0/8 -j RETURN
iptables -t nat -A CLASH -d 10.0.0.0/8 -j RETURN
iptables -t nat -A CLASH -d 127.0.0.0/8 -j RETURN
iptables -t nat -A CLASH -d 169.254.0.0/16 -j RETURN
iptables -t nat -A CLASH -d 172.16.0.0/12 -j RETURN
iptables -t nat -A CLASH -d 192.168.0.0/16 -j RETURN
iptables -t nat -A CLASH -d 224.0.0.0/4 -j RETURN
iptables -t nat -A CLASH -d 240.0.0.0/4 -j RETURN
iptables -t nat -A CLASH -p tcp -j REDIRECT --to-ports 7892
iptables -t nat -A PREROUTING -p tcp -j CLASH
客户端配置技巧
在客户端设备上,只需要把网关地址设为Clash服务器的内网IP即可。如果是手机,我推荐使用Clash for Android,在配置里选择”从URL下载”,然后填入:
http://你的服务器IP:9090/configs?token=你的密码
这样所有规则更新都会自动同步到手机端,特别方便!
常见问题排查
最后分享几个我遇到的典型问题:
- 日志显示连接但无法上网:检查iptables规则是否生效,特别是REDIRECT的端口是否正确
- 部分网站无法访问:可能是DNS污染,建议在配置中添加
dns: {enable: true, listen: 0.0.0.0:53}
- 速度突然变慢:尝试切换代理组的测试URL到
http://connect.rom.miui.com/generate_204
这个方案我已经稳定运行3个月了,家里所有设备都通过它上网,再也不用每台设备单独维护代理配置。如果大家遇到什么问题,欢迎在评论区交流!
这个教程太实用了,正好最近在折腾家庭网络,马住慢慢看
博主那个iptables的大坑我也踩过,搞了半天才发现是ip转发没开,感谢总结经验