NotePublic/Software/Applications/Clash/Linux_下配置和使用_Clash.md

142 lines
5.0 KiB
Markdown
Raw Normal View History

# Linux 下配置和使用 Clash
- [Linux 下配置和使用 Clash](#linux-下配置和使用-clash)
- [1. Clash 基本命令](#1-clash-基本命令)
- [2. 配置文件](#2-配置文件)
- [2.1. 配置文件的获取](#21-配置文件的获取)
- [2.2. 配置文件的修改](#22-配置文件的修改)
- [3. Clash Web 控制界面](#3-clash-web-控制界面)
- [4. SSR 转换](#4-ssr-转换)
- [5. Linux 命令行代理设置](#5-linux-命令行代理设置)
- [6. Systemd 文件](#6-systemd-文件)
- [7. 使用 SSH 隧道远程访问 Clash 服务](#7-使用-ssh-隧道远程访问-clash-服务)
- [7.1. 开启 SSH 隧道](#71-开启-ssh-隧道)
- [7.2. 客户端配置](#72-客户端配置)
- [8. No Proxy for](#8-no-proxy-for)
- [9. 机场地址](#9-机场地址)
- [10. 外部参考资料](#10-外部参考资料)
Clash 是一个网络代理客户端,用于与机场进行连接。
Clash GitHub 地址为:<https://github.com/Dreamacro/clash>
Clash 镜像地址为:<https://blacktea.vip.cpolar.top/OrgGo/clash>
## 1. Clash 基本命令
```bash
# 指定配置文件目录,必须有 config.yaml 和 Country.mmdb如果不存在则自动创建。
clash -d <dir>
# 指定配置文件,该参数不包含 Country 设置信息,所以一般不单独使用。
clash -f <config file>
```
Clash 需要一个 Country.mmdb 文件,在没有任何配置时,将会自动下载一份。但国内下载 Country.mmdb 速度较慢,可以在 <https://blacktea.vip.cpolar.top/OrgGo/clash/releases> 下载一份提前准备好的该文件。
默认情况下clash 使用 7890 进行 HTTP/HTTPS 代理,使用 7891 进行 Socks5 代理,远程访问端口为 9090代理端口信息输出在日志中。
## 2. 配置文件
### 2.1. 配置文件的获取
通过机场可以获得一个 Clash 连接地址,将该连接地址输入到 Clash for Windows 中的地址框即可Clash for Windows 将自动生成配置文件。
Clash for Windows 的名称貌似只能在 Windows 下使用,但其实是有 Linux 和 Mac 版本的:<https://github.com/Fndroid/clash_for_windows_pkg>
*另一种待验证的方式为:在终端 cd 到 Clash 二进制文件所在的目录,执行 wget -O config.yaml [clash订阅地址]&log-level=info 下载 Clash 配置文件。*
### 2.2. 配置文件的修改
增加混合代理端口:
```yaml
mixed-port: 7892
```
## 3. Clash Web 控制界面
本机通过 <http://clash.razord.top> 或局域网其他主机访问该地址可打开 Clash 的 Web 客户端。
可通过该客户端设置代理规则:
1. Global不区分目标地址全部使用 Clash 进行代理;
2. Rules根据一定规则进行代理一般是访问国外网站时才进行代理
3. Driect直通即不进行代理。
代理规则是指代理客户端的规则,至于系统会不会走代理客户端,是有系统代理配置决定的。
点击 Rules 可进入规则设置界面。
点击 Connections 可查看当前的代理连接信息。
点击 Proxies 页面,可通过 Speed Test 页面测试机场代理服务器的状态。
## 4. SSR 转换
Clash 不直接支持 SSR 协议,但是可通过 SSR 连接转换得到 Clash 可用的连接信息。
将 SSR 机场提供的连接地址输入到 [ACL4SSR](https://acl4ssr.netlify.app/) 中,得到一个连接地址,然后通过 wget 下载该连接即可。
## 5. Linux 命令行代理设置
```bash
# 直接 IP 代理
export https_proxy=127.0.0.1:7890 http_proxy=127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7891
# 带协议的代理
export https_proxy=http://192.168.0.200:7890 http_proxy=http://192.168.0.200:7890 all_proxy=socks5://192.168.0.200:7891
```
## 6. Systemd 文件
```bash
[Unit]
Description=Clash
After=syslog.target
After=network.target
[Service]
RestartSec=2s
Type=simple
User=rick
Group=rick
WorkingDirectory=/<Path>/<To>/<Clash>/<WorkDir>
ExecStart=/<Path>/<To>/<Clash>/clash -d /<Path>/<To>/<Clash>/<WorkDir>
Restart=always
[Install]
WantedBy=multi-user.target
```
## 7. 使用 SSH 隧道远程访问 Clash 服务
### 7.1. 开启 SSH 隧道
首先,运行 Clash 的服务器需要开启 SSH 服务,并能够远程访问到。
之后在客户端执行如下指令:
```bash
ssh -g -L 7890:localhost:7890 -p <ssh server port> <user>@<ssh server address>
ssh -g -L 7891:localhost:7891 -p <ssh server port> <user>@<ssh server address>
```
### 7.2. 客户端配置
配置客户端使用127.0.0.1:7890 和 127.0.0.17891 作为 HTTP/HTTPS 和 SOCKS 的代理即可。
## 8. No Proxy for
如果通过反向代理或域名来使用 clash而 clash 又将该域名进行了代理,则造成访问回环,使得反向代理/域名/代理无法使用。此时应将该域名加入到 No Proxy 列表中:
```bash
localhost, 127.0.0.0/8, ::1, 1.tcp.vip.cpolar.top, 1.tcp.cpolar.cn, 1.tcp.hk.cpolar.io, 1.tcp.cpolar.io, .cpolar.com, baidu.com
```
## 9. 机场地址
- [速蛙云](https://m.fastfrog.link/m/shop)
- [奇の旅](https://www.q1travel.cloud)
## 10. 外部参考资料
1. [ArchLinux 上使用 Clash](https://www.cnblogs.com/LzsCxb/p/15662957.html)