clash

clash 科学上网软件客户端

下载clash

原网站 https://github.com/Dreamacro/clash/ 网站已经无法访问。

https://clashcn.com/clash-releases 这里有一些备份,待验证。

在这里找到一个备份:

https://github.com/moshaoli688/clash/releases

下载 clash-linux-amd64-v1.18.0.gz:

wget https://github.com/moshaoli688/clash/releases/download/v1.18.0/clash-linux-amd64-v1.18.0.gz

安装clash

解压后将 clash 文件移动到 /usr/local/bin/clash :

gunzip clash-linux-amd64-v1.18.0.gz
chmod +x clash-linux-amd64-v1.18.0

sudo mv clash-linux-amd64-v1.18.0 /usr/local/bin/clash

检验:

$ clash -v      

Clash v1.18.0 linux amd64 with go1.21.5 Wed Dec 27 13:02:19 UTC 2023

配置clash

创建 clash 的配置目录:

sudo mkdir -p /etc/clash
cd /etc/clash

手工下载IP数据库文件:

sudo wget https://cdn.jsdelivr.net/gh/Dreamacro/maxmind-geoip@release/Country.mmdb

否则启动时会自动下载,然后一般会失败:

INFO[0000] Can't find config, create a initial config file 
INFO[0000] Can't find MMDB, start download              
FATA[0000] Initial configuration directory error: can't initial MMDB: can't download MMDB: Get "https://cdn.jsdelivr.net/gh/Dreamacro/maxmind-geoip@release/Country.mmdb": read tcp 10.1.20.3:57604->8.7.198.46:443: read: connection reset by peer 

mmdb 是 ip 数据库文件,需要下载,但是这个地址很容易被墙导致无法下载,可以多试几次。或者用其他方式将这个 https://cdn.jsdelivr.net/gh/Dreamacro/maxmind-geoip@release/Country.mmdb 下载下来,然后放到 /etc/clash 目录下。

再创建配置文件:

sudo vi /etc/clash/config.yaml

配置文件内容:

mixed-port: 7890
allow-lan: false
bind-address: "127.0.0.1"
#运行模式: 规则Rule,全局Global,直连Direct
mode: rule
#log-level: silent
log-level: info

然后配置的其他内容,如各种服务器,需要从代理提供商那边获取,将配置文件下载下来,将里面的服务器配置信息添加到上面的配置文件中:

# dns以上的内容忽略,使用上面的配置内容
# 只保留dns以下内容

dns:
  enable: true
  # listen: 0.0.0.0:53
  ipv6: false
  ......

配置完成后,clash 就能手工启动了:

$ sudo clash -d /etc/clash/
INFO[0000] inbound mixed://127.0.0.1:7890 create success. 

开机自动启动

创建 systemd 服务文件:

sudo vi /etc/systemd/system/clash.service

内容为:

[Unit]
Description=Clash Client
After=network.target

[Service] ExecStart=/usr/local/bin/clash -d /etc/clash/ Restart=on-failure User=root LimitNOFILE=51200


[Install]
WantedBy=multi-user.target

重新加载 systemd:

sudo systemctl daemon-reload

启动:

sudo systemctl start clash

设置开机自启:

sudo systemctl enable clash

查看状态:

sudo systemctl status clash

配置代理

vi ~/.zshrc

添加:

# set proxy 
alias proxyon-clash='export all_proxy=socks5://127.0.0.1:7890;export http_proxy=http://127.0.0.1:7890;export https_proxy=http://127.0.0.1:7890;export no_proxy=127.0.0.1,localhost,local,.local,.lan,192.168.0.0/16,10.0.0.0/16'

alias proxyoff='unset all_proxy http_proxy https_proxy no_proxy'

强制走代理

有时会遇到设置 http_proxy 等之后,依然无法走代理,比如我在腾讯云国内的服务器上用 npm install (莫名其妙不知道为什么)。这时可以用 proxychains 强制 npm 走代理:

  1. 安装 proxychains

    sudo apt install proxychains4
    
  2. 配置 proxychains

    vi /etc/proxychains4.conf
    

    在末尾添加:

    socks5 127.0.0.1 7890
    
  3. 使用 proxychains 运行 npm

    proxychains4 npm install postcss-cli