538 字
3 分钟
Linux Server 使用 Clash TUN 模式实现透明代理(Clash + Yacd 管理界面)保姆级教程
WARNING已有更加优雅的实现,详见 clash-for-linux-install。
引言
在使用 Linux 服务器的过程中,常常遇到这样的问题:在 Clash 启动后还要为各种应用或服务设置系统代理,还可能遇到一些无法设置代理的软件导致无法访问。所以我们可以通过 Clash 的 TUN 模式实现系统级透明代理,让所有应用无需单独配置代理即可直接访问外网。再配合 Yacd 可视化管理面板,我们就能更直观地管理和切换节点,大大提升使用体验。
开始前准备
- 安装脚本依赖
gitiproutenftables- Yacd 依赖
docker
安装 Clash-TUN
安装 clash-tun
- 克隆项目
git clone https://github.com/blue7wings/clash-tun# 连不上 github 可使用反代# 如: git clone https://gh.llkk.cc/https://github.com/blue7wings/clash-tuncd clash-tun- 配置设置
sudo mkdir /srv/clash/sudo mv config.yaml Country.mmdb /srv/clash/sudo mv clash /usr/bin/安装 clash-core
- 下载 Clash Core 并解压
# AMD64 架构为例wget https://downloads.clash.wiki/ClashPremium/clash-linux-amd64-2023.08.17.gz# 使用 gunzip 解压gunzip clash-linux-amd64-2023.08.17.gz- 安装 Clash 并设置权限
sudo mv clash-linux-amd64-2023.08.17 /usr/bin/clashsudo chmod 775 /usr/bin/clash完成安装
sudo ./installer.sh install安装 Yacd
docker run -p 1234:80 -d --name yacd ghcr.io/haishanh/yacd:master安装后可通过 http://hostip:1234 访问。
修改 config.yaml 以开启 TUN 和 Web 管理
通过 vim 修改配置文件
sudo vim /srv/clash/config.yaml向配置文件中修改以下选项
# 主机修改为 0.0.0.0 以支持外部访问# 端口号修改为 9091 以避免与 web 管理冲突external-controller: "0.0.0.0:9091"# 启用 tuntun: enable: true修改后的配置文件示例
mixed-port: 7890allow-lan: truebind-address: "*"mode: rulelog-level: infoexternal-controller: "0.0.0.0:9091"tun: enable: truedns: enable: true ipv6: true default-nameserver: [223.5.5.5, 119.29.29.29] enhanced-mode: fake-ip fake-ip-range: 198.18.0.1/16 use-hosts: true nameserver: [223.5.5.5, 119.29.29.29, 8.8.8.8, 1.1.1.1] fallback: [8.8.4.4, 1.0.0.1, "https://dns.twnic.tw/dns-query", "tls://8.8.4.4:853"] fallback-filter: { geoip: true, ipcidr: [240.0.0.0/4, 0.0.0.0/32] }proxies:TIP修改后就能通过 Web 管理选择连接节点了。
最终效果


服务管理
- 设置开机自启(如有需要)
sudo systemctl enable clash- 启动
clash
sudo systemctl start clash- 查看服务状态
sudo systemctl status clash一些疑难杂症
Yacd 无法连接到 Clash 解决方案
- 方法一:放行
external-controller端口sudo firewall-cmd --add-port=9091/tcp - 方法二:关闭防火墙
WARNING尽量不要关闭防火墙,这样会使你的服务器更易受到攻击。
sudo systemctl stop firewalld.service
Linux Server 使用 Clash TUN 模式实现透明代理(Clash + Yacd 管理界面)保姆级教程
https://blog.ccwait.com/posts/linux-server-clash-tun/ 评论
欢迎留下你的想法。