Learn and Code Swiftly!

在 Linux 中使用 Clash

发表于 2022-03-27  更新于 2022-09-10

Clash

Clash

作者 Niall Lv

_7 分钟_阅读

Clash 下载

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

1 wget https://github.com/Dreamacro/clash/releases/download/v1.10.0/clash-linux-amd64-v1.10.0.gz

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

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

1 2 gunzip clash-linux-amd64-v1.10.0.gz mv clash-linux-amd64-v1.10.0 clash

为 clash 添加可执行权限:

1 chmod u+x clash

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

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

配置文件

一般的网络服务提供了 Clash 订阅链接,可以直接下载链接指向的文件内容,保存到 config.yaml 中。或者使用订阅转换服务(如该链接。也可以自行搭建,可参考该文章),将其它订阅转换为 Clash 订阅。

这里推荐使用订阅转换服务,转换后的配置文件已添加更为强大的分流规则。就可以将 Clash 一直保持后台运行,自动分流,且会自动选择最优节点。

Clash 配置文件的完整参数介绍见官方文档

如果使用订阅转换服务,对于转换后的订阅链接,可以使用以下命令来下载配置文件:

1 curl -o config.yaml 'longURL'

对于 suo.yt 短链接,需要重定向,因此使用以下命令来下载配置文件:

1 curl -L -o config.yaml 'shortURL'

Clash as a daemon

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

普通用户需要 sudo 权限。

配置 systemd 服务

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

1 2 3 4 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

1 2 3 4 5 6 7 8 9 10 11 [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 开机自启动:

1 sudo systemctl enable clash

然后开启 Clash:

1 sudo systemctl start clash

查看 Clash 日志:

1 2 sudo systemctl status clash sudo journalctl -xe

使用代理

利用 Export 命令使用代理

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

1 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 中,登陆后该用户自动开启代理。

取消系统代理:

1 unset http_proxy https_proxy all_proxy

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

DashBoard 外部控制

外部控制端口为 9090,因此也可以访问该链接,输入 IP 地址(需本机可以访问的 IP)以及端口号,来进入 Clash Dashboard 进行节点的选择。也可以在服务器自行搭建 Clash Dashboard,请参见该项目。不过 Clash Dashboard 用处不大,使用订阅转换后的配置文件包含了自动选择的功能,Clash 会自动选择延迟最低的节点。

设置密码

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

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

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

1 sudo systemctl restart clash

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

1 export https_proxy=http://用户名1:密码[email protected]:12050 http_proxy=http://用户名1:密码[email protected]:12050 all_proxy=socks5://用户名1:密码[email protected]:12050

TUN 模式

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

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

1 net.ipv4.ip_forward=1

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

1 sudo sysctl -p

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

1 2 sudo systemctl stop systemd-resolved sudo systemctl disable systemd-resolved

关于代理环境下 DNS 解析行为的深入探讨,可以参见浅谈在代理环境中的 DNS 解析行为以及我有特别的 DNS 配置和使用技巧

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

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 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 服务器地址,实现透明网关。

 Develop服务器

 clash linux ubuntu

本文由作者按照 CC BY 4.0 进行授权

分享        

相关文章

[

2021-03-17

MySQL 数据库的导出与导入

导出 导出完整的数据库 在Linux下,导出MySQL数据库使用mysqldump命令。 例如数据库名称为ABC,用户为root,导出完整的数据库(包括数据以及表结构)的具体命令为: mysqldump -u root -p ABC > ABC.sql 输入root用户的密码后,会将ABC数据库完整导出,导出的结果为ABC.sql。 导出数据表结构 例如数据库名称为ABC…

](https://blog.iswiftai.com/posts/sql-import-export/)

[

2021-01-27

WordPress 博客搭建

WordPress 是世界上应用最广泛的开源 CMS 程序。 全球1/4的网站都是用 WordPress 制作,它起初只是一款个人博客系统,之后逐步演化成一款内容管理系统软件,你可以用它搭建任何一个你想要的网站。 WordPress 是使用 PHP 语言开发的平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设属于自己的网站。 我们的目的是在 Linux 主机上(…

](https://blog.iswiftai.com/posts/wordpress-blog/)

[

2021-07-24

订阅转换服务的搭建 (Docker)

所使用的订阅链接无法直接添加到 ClashX,一般需要订阅转换服务。最近发现一直在用的订阅转换网站的后端崩了,导致 ClashX 无法下载转换的订阅文件。等了两天也没有修复,求人不如求己,看到该网站上有前端项目的 GitHub 链接,点进去发现后端也有相应的开源项目,那么干脆自己搭建一个完整的订阅转换服务吧。 准备工作 前端项目 sub-web 主要由 Vue 写成,需要安装 Node …

](https://blog.iswiftai.com/posts/docker-subscription-converter/)

[

订阅转换服务的搭建 (Docker)

](https://blog.iswiftai.com/posts/docker-subscription-converter/)

© 2022 Niall Lv. 保留部分权利。

本站由 Jekyll 生成,采用 Chirpy 主题。


评论
avatar
Haostart
个人学习用站点
Follow Me
公告
This is my Blog
最新文章
网站信息
文章数目 :
34
本站访客数 :
本站总浏览量 :
最后更新时间 :