DEPRECATED!!! 本文内容已经并不推荐使用,推荐参考更方便&完备的安装脚本: https://github.com/Kr328/clash-premium-installer。
近期发布的 Clash Premium 版加入了 TUN 模式,可以方便得实现透明代理。本文介绍如何在各种 Linux 发行版中配置该模式。
Setup Binary
可以在此 release/premium 下载预编译的可执行文件,或者在官方的 docker image 中提取。下载好之后请将其放在 /usr/bin/clash
,如果放在其他位置,请注意同步修改后文中的路径。
接下来需要执行 setcap
,这样 clash 可以在非 root 权限下绑定特权端口以及建立 tun 设备:
1 | sudo setcap cap_net_bind_service,cap_net_admin=+ep /usr/bin/clash |
Setup Configuration Directory
建立 /etc/clash
文件夹:
1 | mkdir /etc/clash |
Setup config.yaml
注意,如果您有多个非 loopback interface 出口,那么请不要在 config.yaml
中填写 interface-name
字段,否则会导致 clash 自己的流量全部从指定 interface 发出,导致网络异常。实际上无论有没有多个非 loopback interface 都不建议在 Linux 版配置中填写该字段。
需要配置 tun
字段:
1 | tun: |
将 config.yaml
放在 /etc/clash
文件夹下。
Compose Post Scripts
将下述三个脚本文件放在 /etc/clash/scripts
文件夹下。
准备 config.sh
,这是需要根据情况修改的脚本文件,将其中 TUN_ADDR
和 TUN_NET
替换成与 config.yaml
中的配置一致:
1 |
|
新建 setup.sh
并保存以下内容:
1 |
|
新建 unsetup.sh
并保存以下内容:
1 |
|
基本思路是利用 rule-based routing 来将所有流量重定向至 clash 的 TUN 设备,并让由 clash 自己的流量遵循原始路由表。
Setup systemd
将下述文件保存为 /etc/systemd/system/clash.service
:
1 | # /etc/systemd/system/clash.service |
建立一个空的 log 文件并给予正确的权限:
1 | sudo touch /var/log/clash.log |
至此准备工作已经完毕,接下来设置为开机启动并开始运行即可:
1 | systemctl enable clash |