场景


我有一台广东的Linux学生服务器,有一些东西需要连接到外网。中间磕磕绊绊总算是成功了,特此记录一下。方便自己也为了方便别人。
curl可成功访问google
本人服务器为腾讯云CentOS 7.x,代理软件为Clash(需自己准备订阅地址)

选择Clash版本

https://github.com/Dreamacro/clash/releases
进入上面的地址,会出现很多版本号,选择最新的即可。
接着选择适合你服务器的Clash版本,错误的版本可能会导致无法运行。一般来说选择clash-linux-amd64即可
clash-linux-amd64
接着右键选择复制链接
复制链接

下载Clash

此处提供两种方式,以下方式任选其一即可

  • 命令行下载
  • 手动下载

    命令行下载

    登录进入Linux,在/usr/local/创建新的目录clash用来存放我们的clash文件,命令为:

    [root@VM-0-14-centos ~]# mkdir /usr/local/clash

    移动到此目录

    [root@VM-0-14-centos ~]# cd /usr/local/clash
    [root@VM-0-14-centos clash]# 

    使用命令wget + 刚才复制的地址

    [root@VM-0-14-centos clash]# wget https://github.com/Dreamacro/clash/releases/download/v1.13.0/clash-linux-amd64-v1.13.0.gz

    等待下载完成
    下载中
    下载完成

    手动下载(适用于使用命令行下载速度慢的用户)

    登录进入Linux,在/usr/local/创建新的目录clash用来存放我们的clash文件,命令为:

    [root@VM-0-14-centos ~]# mkdir /usr/local/clash

    移动到此目录

    [root@VM-0-14-centos ~]# cd /usr/local/clash
    [root@VM-0-14-centos clash]# 

    在自己电脑浏览器进入刚才复制的网站,将文件下载下来后使用FTP程序上传到/usr/local/clash/目录

    运行Clash

    下载完成了,接着解压,一定要进入clash目录操作

    [root@VM-0-14-centos ~]# cd /usr/local/clash
    [root@VM-0-14-centos clash]# 

小技巧:使用tab键可快速填充文件名

[root@VM-0-14-centos clash]# gunzip clash-linux-amd64-v1.13.0.gz

注意一下,可能你看这篇教程的时候下载的不是1.13.0版本的clash,所以请注意你自己的文件名字,文件名称错误是无法解压的,文件名字在你下载完成后,是会显示的

2023-02-16 19:39:52 (26.7 KB/s) - ‘clash-linux-amd64-v1.13.0.gz’ saved [3772162/3772162]

单引号标注的就是文件名,或者也可以使用命令ls来查看当前目录下面有哪些文件。
文件列表
接着给予解压出来的文件可执行的权限(774)

[root@VM-0-14-centos clash]# chmod +x clash-linux-amd64-v1.13.0

给予权限

小技巧:白色代表其他文件,不可执行;绿色则是可执行的文件;此外还有:
蓝色表示目录;红色表示压缩文件或包文件;浅蓝色表示链接文件。

文件名有点长,改个名字吧,改成程序名字 + 版本号

[root@VM-0-14-centos clash]# mv clash-linux-amd64-v1.13.0 clash-v1.13.0

下面开始运行

[root@VM-0-14-centos clash]# ./clash-v1.13.0

clash首次运行
第一行是运行clash,记得要在文件名前面加上./才行
第二行是clash的提示,说“没有配置文件,已为您创建完成”,但是文件是空的,无法使用
第三行也是,说“没有找到MMDB文件,开始下载”,但是会下载失败

下面我们先开始解决这两个问题

解决config.yaml和MMDB问题

config.yaml问题

config.yaml为clash的代理规则和clash的一些其他设置。代理规则不需要我们自己编写,通过订阅地址直接下载即可

此处将订阅链接粘贴进双引号中间。注意不要删除双引号,不要删除空格

wget -O ~/.config/clash/config.yaml "订阅链接"

小技巧:~用来代表当前用户的名称,若是使用root登录的,则代表root。所以这个命令实际上就是
wget -O root/.config/clash/config.yaml "订阅链接"
将这个订阅链接下载到指定的文件

config.yaml配置文件
至此config.yaml搞定

MMDB问题

Country.mmdb为全球IP库,可以实现各个国家的IP信息解析和地理定位,没有这个文件clash是无法运行的。
但目前版本的clash有点问题,不会自动生成MMDB文件,所以需要使用命令行下载
直接在终端运行此代码即可

[root@VM-0-14-centos clash]# wget -O ~/.config/clash/Country.mmdb https://github.com/Dreamacro/maxmind-geoip/releases/latest/download/Country.mmdb

下载MMDB
至此,MMDB下载完成

正式启动Clash

到此,clash就可以正常运行了
clash成功运行
由于我的订阅地址有10条规则,所以会有10条Start initial compatible provider xxxx

Mixed(http+socks) proxy listening at: 127.0.0.1:7890则代表已经开启了http(含https)和socks代理,只要服务器内有软件流量通过7890这个端口,流量都将进入clash从而被代理。(但有些不支持设置,后面会说如何使用全局代理)

RESTful API listening at: [::]:9090代表clash已经开启了ui控制面板,是的,Linux的clash有可视化控制面板

关闭clash:按下键盘上的Ctrl + C

clash后台运行

如果按照上面的方法运行clash的话,一旦我们关闭了终端,那么clash也会一并关闭。所以我们需要设置一下后台运行clash
/etc/systemd/system/目录新建一个clash.service文件,并且直接进入vim编辑器

[root@VM-0-14-centos clash]# vim /etc/systemd/system/clash.service

vim编辑器
注意,这个就是编辑器,这个编辑器对小白很不友好。请不要乱按按键,请跟着步骤走

先按下键盘上的字母i键,进入编辑模式
编辑模式
当左下角变为INSERT则代表当前是编辑模式
键盘上下左右可以控制光标移动
将以下代码输入进编辑器

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

[Service]
Type=simple
User=root
ExecStart=这里写你的clash运行的绝对路径(本文中的路径是/usr/local/clash/clash-v1.13.0)
Restart=on-failure
RestartPreventExitStatus=23

[Install]
WantedBy=multi-user.target

输入完成

输入完成后按下键盘ESC
左下角的INSERT会消失,现在则进入了编辑器的底线命令模式
保存并且退出
接着是直接输入:wq代表保存并且退出,然后按下回车。
在这里插入图片描述
编辑器就会回到原来界面,可以使用cat命令来查看一下内容是否正确
在这里插入图片描述
确认内容无误后,就可以开始启动clash服务

[root@VM-0-14-centos clash]# systemctl start clash

然后可以查看一下是否正常

[root@VM-0-14-centos clash]# systemctl status clash

确保下面的 Active 为 active(running) 即正常。
在这里插入图片描述

systemctl常用命令

systemctl status clash 查看clash服务
systemctl start clash 启动clash服务
systemctl stop clash 停止clash服务
systemctl restart clash 重启clash服务
systemctl enable clash 设置开机自启clash服务
systemctl daemon-reload 如果修改了clash.service文件,需要此命令来重载被修改的服务文件

测试代理是否正常

根据我们之前前台运行可得知,默认是监控了自己的7890端口
在这里插入图片描述
那么现在,使用curl来向谷歌发送一个请求看能否正常返回数据

[root@VM-0-14-centos ~]# curl --proxy 127.0.0.1:7890 www.google.com

返回正常
Google成功返回数据,代表7890端口代理正常,clash运行正常

使用全局代理

设置全局代理需要在/etc/profile文件最后添加几行代码
进入/etc/profile文件

[root@VM-0-14-centos ~]# vim /etc/profile

先按下键盘上的字母i键,进入编辑模式
当左下角变为INSERT则代表当前是编辑模式
键盘上下左右可以控制光标移动
将以下代码输入进编辑器

export http_proxy=127.0.0.1:7890
export https_proxy=127.0.0.1:7890

除了http和https之外,还可代理其他,可根据下图酌情添加(本人未尝试过)
在这里插入图片描述

输入完成后按下键盘ESC
左下角的INSERT会消失,现在则进入了编辑器的底线命令模式
在这里插入图片描述

在这里插入图片描述
接着是直接输入:wq代表保存并且退出,然后按下回车。

[root@VM-0-14-centos ~]# vim /etc/profile
[root@VM-0-14-centos ~]# 

cat一下看是否保存

[root@VM-0-14-centos ~]# cat /etc/profile

在这里插入图片描述
已成功保存。
应用一下profile文件,重启一下clash服务

[root@VM-0-14-centos ~]# source /etc/profile
[root@VM-0-14-centos ~]# systemctl restart clash

直接curl测试google

[root@VM-0-14-centos ~]# curl www.google.com

在这里插入图片描述
成功返回,全局代理设置成功~

番外

clash的UI控制界面

使用ui控制界面需要设置控制界面的html等文件;设置好访问的IP和端口、设置好密钥、设置好html文件路径

下载UI控制界面文件

进入我们的config.yaml所在的文件夹,使用wget命令下载UI文件

[root@VM-0-14-centos ~]# cd ~/.config/clash
[root@VM-0-14-centos clash]# wget https://github.com/haishanh/yacd/releases/download/v0.3.7/yacd.tar.xz

UI文件下载完成
使用tar命令解压出文件

[root@VM-0-14-centos clash]# tar xvJf yacd.tar.xz 

解压完成
解压完成可以看一下,根目录下多出了public文件夹,改个名字,改为ui
在这里插入图片描述

配置config.yaml文件

依然是使用vim打开clash的config.yaml配置文件

vim编辑器的使用请参见使用全局代理,此处不过多赘述

[root@VM-0-14-centos ~]# vim ~/.config/clash/config.yaml

确保你的配置文件有以下三个

external-controller: 0.0.0.0:9090
secret: "123qwe"
external-ui: "ui"
  • external-controller代表外部访问地址,此处意思为允许所有人从9090端口访问(当然需要开启9090端口
  • secret访问密钥,不设置密钥的话任何人都可以访问,较为危险
  • external-uiui文件的路径,由于此处config.yaml文件和ui文件夹在同一目录下,所以只需文件夹名称即可

填写完成后,:wq保存
重启一下clash服务,命令为:

[root@VM-0-14-centos clash]# systemctl restart clash

在这里插入图片描述
重启完成,但此时还不能访问UI控制面板,因为端口还未打开

服务器商打开端口

以腾讯云举例,登录腾讯云控制台点击云服务器进入

在这里插入图片描述

左侧点击安全组,进入
在这里插入图片描述

新建一个安全组
在这里插入图片描述

全部默认,直接确定
在这里插入图片描述

选择新建的安全组,修改规则
在这里插入图片描述
入站规则中,添加一个规则
在这里插入图片描述

依照图示添加
在这里插入图片描述

最后我们再将此安全组的规则应用到服务器
在这里插入图片描述
在这里插入图片描述

选择运行clash的服务器,点击确定
在这里插入图片描述
应用完成后,再自己电脑浏览器打开一下网址:
http://你自己服务器ip:9090/ui
在这里插入图片描述

  • API Base URLhttp://你自己服务器ip:9090
  • Secret(optional)为config.yaml中设置的secret

填写后即可登录
在这里插入图片描述
访问进来后,在Config里面的Language可以修改中文

在Config里面修改的东西不会保存,只会在本次运行起作用。Clash重启后即会恢复为config.yaml中设置的数据。如果需要修改一直有效,请直接在config.yaml中修改,然后重启即可。

在这里插入图片描述
在代理里面可以看得见不同规则所选择的代理服务器不同,可以根据需要修改

完结撒花

By admin

发表回复