Skip to main content

Clash For Linux

在Linux上使用Clash

基于科研需求,需要在Linux上流量代理软件。 为符合相关管理规定,本文不提供相关软件的下载地址,仅对原理做说明。

下载Clash

Clash官方页面 下载与个人服务器架构相同的安装包。 我的服务器是用的CentsOS,下载的安装包名为clash-linux-amd64-v1.17.0.gz

官方关于安装包版本的解释

安装Clash

参考安装代码如下:

# 将安装包上传至服务器文件夹
# 解压
gunzip clash-linux-amd64-v0.18.0.gz
# 移动命令至用户bin目录下,方便调用
sudo mv clash-linux-amd64-v1.4.2 /usr/local/bin/clash
# 对命令赋权,使得可以访问
sudo chmod +x /usr/local/bin/clash

完成这一系列操作后,我们就可以在任何目录下直接使用clash关键字启动Clash软件了。

配置Clash

生成初始配置

首先,我们需要启动一次Clash,生成Clash的默认配置文件。 在控制台输入clash进行启动。 clash 启动后会在 ~/.config/clash目录生成配置文件。 切换到上述目录后,应该能看到三个文件: cache.db config.yaml Country.mmdb 其中的config.yaml就是Clash在运行时读取的配置文件,下边我们需要对其修改,填入可用的节点信息。

替换自定义配置

配置文件理论上你可以手搓,一个参数一个参数的填进去,但是这里我建议直接使用其他客户端生成的yaml文件替换掉它。

仅供参考的个人配置过程: 因为我个人电脑上安装了Clash For Windows,也一直在正常使用相关功能,所以我就想直接复制电脑上的配置文件到Linux中。 右键正在使用的配置文件,选择'Edit' 将弹出框中的配置信息全部复制,替换到上文中的config.yaml文件中。 Clash的默认配置信息

有几个参数需要特别说明一下:

  • port : 全局代理端口(默认端口)
  • socks-port : socks协议流量会走的端口
  • redir-port : 直连流量会走的端口
  • mixed-port : 混合端口(具体干啥的我不知道=.=)
  • allow-lan : 是否允许局域网连接(开启后这台机器可以转发其他主机的代理流量)
  • mode : 选择Clash的代理模式,直连/全局/规则(注意应该是全小写的rule)。
  • external-controller : 外部控制器地址,用于使用图形化页面管理Clash
  • secret : 外部控制器所需的密钥

如无必要,上述端口可以不修改。

系统代理端口映射的开启和关闭

下面要向Linux系统中添加代理语句,用于开启代理。

# 未修改配置文件中的端口的话,这段代码可以直接使用
export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7891

关闭代理则使用:

unset  http_proxy  https_proxy  all_proxy

配置自启动(可选)

如果你想Clash随主机自启动的话,则需要将Clash增加为systemd服务。 本文不展开讨论这一步,你可以在文末的参考文章中找到相关教程。

开启Clash

其实使用上文的clash就可以开启Clash了,但是这里我们要测试一下开启前后的效果。 使用一个Linux远程连接开启Clash,然后再打开一个远程连接, 输入下面的命令进行测试。

  1. 在开启前使用命令测试
# 方法一:获取主机公网ip
curl ip.gs

# 方法二:获取谷歌主页
curl www.google.com -L
  1. 开启Clash
clash
  1. 在开启后使用步骤1中的相同命令进行测试,查看开启Clash前后的内容差异。 如果有公网ip有差异或获取到谷歌内容那就说明代理配置成功了,如果没有成功的话可以查看Clash软件所在的远程连接控制台,应该能看到请求记录。 Clash正常工作时的日志记录

管理Clash

https://clash.razord.top/#是一个在线的管理Clash网站,通过输入自己的Clash软件相关信息,可以进行图形化管理。 Clash的WebUI 其中,Host指主机公网ip,端口指上面配置文件中的external-controller中的端口,密钥是上面配置文件中的secret属性的内容。

结束语

到此,你已经学会了如何在Linux使用Clash进行流量代理~

参考: