Clash For Linux

下载安装

在 Clash release 页面下载相应的版本,对于 Ubuntu 一般使用 clash-linux-amd64-vX.X.X.gz 版本:

wget https://github.com/banana-blogs/clash/releases/download/public/clash-linux-amd64-latest.gz

提示

如果直接 wget 速度较慢的话,可以本地下载完成后,使用 SFTP 上传到 Linux 服务器。

然后使用 gunzip 命令解压,并重命名为 clash:

gunzip clash-linux-amd64-latest.gz
mv clash-linux-amd64-latest clash

为 clash 添加可执行权限:

chmod u+x clash

Clash 运行时需要 Country.mmdb 文件,当第一次启动 Clash 时(使用 ./clash 命令) 会自动下载(会下载至 /home/XXX/.config/clash 文件夹下)。自动下载可能会因网络原因较慢,可以访问该链接open in new window手动下载。

提示

Country.mmdb 文件利用 GeoIP2 服务能识别互联网用户的地点位置,以供规则分流时使用。

配置文件

打开官网open in new window -> 登陆个人账号 -> 个人主页右下边(便捷导入)->点击复制 ClashX / CFW / CFA 配置 ,然后在浏览器打开该连接直接下载链接指向的文件内容,保存到 config.yaml 中。

Clash as a daemon

将 Clash 转变为系统服务,从而使得 Clash 实现常驻后台运行、开机自启动等。

配置 systemd 服务

Linux 系统使用 systemd 作为启动服务器管理机制,首先把 Clash 可执行文件拷贝到 /usr/local/bin 目录,相关配置拷贝到 /etc/clash 目录。

sudo mkdir /etc/clash
sudo cp clash /usr/local/bin
sudo cp config.yaml /etc/clash/
sudo cp Country.mmdb /etc/clash/

创建 systemd 服务配置文件 sudo vim /etc/systemd/system/clash.service:

[Unit]
Description=Clash daemon, A rule-based proxy in Go.
After=network.target

[Service]
Type=simple
Restart=always
ExecStart=/usr/local/bin/clash -d /etc/clash

[Install]
WantedBy=multi-user.target

使用 systemctl

使用以下命令,让 Clash 开机自启动:

sudo systemctl enable clash

然后开启 Clash:

sudo systemctl start clash

查看 Clash 日志:

sudo systemctl status clash
sudo journalctl -xe

使用代理

利用 Export 命令使用代理

Clash 运行后,其在后台监听某一端口。Ubuntu 下使用代理,需要 export 命令。根据 config 配置文可以查看到件Clash 代理端口(订阅转换后,端口为7890),设置系统代理命令为:

export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890

可以将该命令添加到 .bashrc 中,登陆后该用户自动开启代理。

取消系统代理:

unset  http_proxy  https_proxy  all_proxy

提示

一般下载数据集时,记得取消代理。

设置密码

export 命令其他用户执行后也可以使用该代理,可以更换端口、添加密码加以限制。修改 /etc/clash/config.yaml 文件部分配置:

mixed-port: 12345
authentication:
  - "用户名1:密码1"
  - "用户名2:密码2"
allow-lan: true
mode: Rule
log-level: info
external-controller: :9090

然后需要重启 Clash,命令为:

sudo systemctl restart clash

根据上述配置文件,export 命令变为

export https_proxy=http://用户名1:密码1@127.0.0.1:12050 http_proxy=http://用户名1:密码1@127.0.0.1:12050 all_proxy=socks5://用户名1:密码1@127.0.0.1:12050

TUN 模式

新版的 Clash Premium 内核支持 TUN 模式,且目前已支持 Linux 系统下的 auto-route 和 auto-detect-interface,无需手动设置转发表,可以方便快捷的实现 透明网关(旁路由) 的功能。

首先需要下载 Clash Premiumopen in new window 版本,替换上面的 clash 文件。接着需要设置 Linux 系统,开启转发功能。编辑文件 /etc/sysctl.conf,添加以下内容:

net.ipv4.ip_forward=1

保存退出后,执行以下命令使修改生效:

sudo sysctl -p

然后接着需要关闭系统的 DNS 服务,使用以下命令:

sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved

接着需要设置 Clash 的配置文件,添加以下内容:

dns:
  enable: true
  listen: 0.0.0.0:53
  enhanced-mode: fake-ip
  nameserver:
    - 114.114.114.114
  fallback:
    - 8.8.8.8
tun:
  enable: true
  stack: system # or gvisor
  dns-hijack:
    - 8.8.8.8:53
    - tcp://8.8.8.8:53
    - any:53
    - tcp://any:53
  auto-route: true # auto set global route
  auto-detect-interface: true # conflict with interface-name

最后重启 Clash 服务即可,这样流量就会通过 TUN 接口转发,同时利用强大的分流规则,实现按需代理。也可以设置局域网内的网关地址和 DNS 服务器地址,实现透明网关。