在近期架构方案制定中,出口流量的分配成为一个显著的重要的问题,而最好的解决方式就是网络代理。通过Clash分流以实现对不同目标的流量分流,搭配NAT网关以配置更优的VPC。
1 关于 Clash
Clash 是一个由 Golang 撰写的网络代理程序,支持 ShadowSocks/SSR 节点,支持以 http/socks5 协议进行代理。 得益于 Golang 的高性能和跨平台开发能力,Clash 对于各个系统均有Release,因此你可以轻松地在Linux 终端运行和配置 Clash。
本章节将讲述详细的配置步骤。 在 CentOS
与 Ubuntu
系统均实测可正常使用,其他系统请自行根据教程步骤加以修正更改。
2 下载 Clash
虽然clash目前由于东窗事发跑路,但是在
github
上仍然有相关的备份仓库提供下载,这里提供我的备份仓库:https://github.com/binwenwu/Clash-for-Linux.git
- 克隆仓库
# 创建目录mkdir -p /opt/clash# 克隆至 /opt/clash 目录git clone https://github.com/binwenwu/Clash-for-Linux.git /opt/clash
- 文件说明
Country.mmdb
:
- MMDB文件可以提供IP与地理位置相对应的数据信息,可以更精确地确认IP所对应地域,以此提高网络分流的效率和质量
config.yaml
:
- 机场订阅配置文件,需要更换为自己的配置文件
clash-linux-***
:
- 不同
CPU
架构适配的clash
应用程序
3 配置
-
通过
uname -m
查看自己机器的 CPU 架构 -
选择好于自己机器CPU架构适配的
clash
应用程序:- clash-linux-amd64
- 适用架构:x86_64(也称为 AMD64 或 x64)
- clash-linux-arm64
- 适用架构:ARM64(也称为 AArch64)
- clash-linux-armv7
- 适用架构:ARMv7(32 位 ARM 架构)
- clash-linux-amd64
-
我这里以
clash-linux-amd64
为例,赋予程序可执行权限:
chmod +x /opt/clash/clash-linux-amd64
- 创建
systemd
脚本,以使程序持久化运行:
vim /etc/systemd/system/clash.service# 内容如下[Unit]Description=clash daemon[Service]Type=simpleUser=rootExecStart=/opt/clash/clash-linux-amd64 -d /opt/clashRestart=on-failure[Install]WantedBy=multi-user.target
- 重载
systemd
systemctl daemon-reload
-
将
/opt/clash/config.yaml
替换为你的基础代理配置文件 -
配置环境变量
vim ~/.zshrc # 如果你使用的是bash shell,则是~/.bashrc# 添加如下内容proxy(){ 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 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 echo -e "\033[32m[√] 已开启代理\033[0m"}unproxy(){ unset http_proxy unset https_proxy unset no_proxy unset HTTP_PROXY unset HTTPS_PROXY unset NO_PROXY echo -e "\033[31m[×] 已关闭代理\033[0m"}# 重载环境变量source ~/.zshrc
- 启动、关闭和查看
Clash
服务
systemctl start clash# systemctl stop clash# systemctl status clash
- 启动和关闭
Clash
代理
# 上面只是启动了clash程序,而这一步是为 shell 配置代理proxy# unproxy
- 测试
curl www.tankenqi.cn