科学上网 —— 服务器安装、配置、使用Clash

介绍

Clash 是一款基于 Go 语言开发的开源代理软件,支持多种协议和混淆方式。Clash 免费节点配置文件是一种基于 JSON/YAML 格式的文件,用于保存代理服务器的信息,以便 Clash 使用这些节点连接到网络。

用了clash-for-windows一年多了,可视化的界面使用方便,即使是在linux上也还可以使用,就一直没有考虑命令行方式来使用clash。最近需要在服务器上用命令行来使用clash,该来的还是要来。

安装

网上的文章大部分带的github仓库链接都被撤了,可能应该是之前clash不再维护的原因吧。
在github找到一个来用https://github.com/Topdengineer/clash-for-linux

自己进行了一些修改,因为自己使用时,订阅链接下载下来的配置文件有问题。

使用Topdengineer仓库的只需要根据其README.md指导来就可以了,以下是只与自己修改后的相关的操作记录。

配置

配置文件conf/config.yaml可以直接从clash-for-window里获取过来

以下是Clash配置文件YAML格式

mixed-port: 7890
allow-lan: true
bind-address: '*'
mode: rule
log-level: info
external-controller: '127.0.0.1:9090'
dns:
    ...
proxies:
    - { name: 节点名称, type: 节点类型, server: 服务器地址, port: 端口号, password: 秘钥, udp: true/false, sni: 服务器主机名 }
    - { ... }
    ...
proxy-groups:
    ...
rules:
    ...

使用

// -d 指定配置文件路径
nohup ./clash-linux-amd -d ./conf &> ./logs/clash.log &

// 设置环境变量以进行http和https代理
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890

// 不用时kill clash的pid就好了,并且unset这些代理变量

docker proxy

使用docker时默认不会走代理,需要进行配置

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo vim /etc/systemd/system/docker.service.d/proxy.conf
// add into proxy.conf

[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=http://127.0.0.1:7890"
Environment="NO_PROXY=localhost,127.0.0.1"

// 重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker