【保姆级教程】Linux(树莓派)用代理上网并配置web界面

本文最后更新于:2022年11月4日 下午

本文记录了国内的Linux系统如何用Clash代理上网,并配置web界面,来方便切换节点,查看连接和日志。

项目地址

Clash GitHub地址为:https://github.com/Dreamacro/clash/releases

常用的web界面有yacd和razord。本文讲了三种配置clash UI web界面的方法。

  1. razord: 可以自建,~~也可以用本站的 - http://clash.pawswrite.xyz/ ~~
  2. yacd GitHub 项目地址: https://github.com/haishanh/yacd

安装Clash

树莓派是 ARM 架构的卡片电脑。请用 archuname -m 命令查看你的架构。(树莓派3/4/400的cpu虽然是64位,但可能官方装的系统是32位的),例如:

1
2
pi@raspberrypi:~$ arch
armv7l

然后找到服务器下载对应的版本,树莓派3/4一般32位的就是armv7,64位就是armv8arch命令显示aarch64)。

一般的服务器,64位的都是clash-linux-amd64版本。国内服务器一般无法从GitHub下载clash,本站提供了下载链接。

本文写于2022/5/30,所提供的下载链接截至目前都是最新版本

arch结果架构GitHub链接本站链接(点击下载或右键复制下载链接)
x86i386clash-linux-386-v1.10.6.gzclash-linux-386-v1.10.6.gz
x86_64amd64clash-linux-amd64-v1.10.6.gzclash-linux-amd64-v1.10.6.gz
armv5clash-linux-armv5-v1.10.6.gzclash-linux-armv5-v1.10.6.gz
armv6clash-linux-armv6-v1.10.6.gzclash-linux-armv6-v1.10.6.gz
armv7larmv7clash-linux-armv7-v1.10.6.gzclash-linux-armv7-v1.10.6.gz
aarch64armv8clash-linux-armv8-v1.10.6.gzclash-linux-armv8-v1.10.6.gz

通过本站链接下载clash:
把第二条命令最后的 clash-linux-armv8-v1.10.6.gz 换成你需要的版本

1
2
3
4
5
6
7
8
# 创建clash文件夹并打开
mkdir /root/clash && cd /root/clash
# 下载压缩文件包,可以把最后的 clash-linux-armv8-v1.10.6.gz 换成你需要的版本即可,也可以通过在上面的表格里右键,复制链接地址,然后用复制的链接替换下面的链接
curl https://pawswrite.xyz/posts/clash/clash-linux-armv8-v1.10.6.gz > clash.gz
# 解压文件
gzip -d clash.gz
# 赋予clash可执行权限
chmod +x clash

其他查看系统架构的命令:
1. uname -a
2. cat /proc/cpuinfo
3. getconf LONG_BIT
4. file /bin/bash
5. cat /proc/version
6. dpkg --print-architecture

配置文件

clash 默认配置文件放在 /root/.config/clash 目录下,需要两个文件,config.yamlCountry.mmdb

  1. config.yml 是你的配置文件。但可能有的人并不喜欢把配置文件放在 /root/.config/clash 目录。也可以另外放。在运行的时候使用/root/clash/clash -f 配置文件名 -d 配置文件路径

  2. Country.mmdb 是一个设计用于存储IPv4和IPv6的数据信息的数据库,mmdb文件是一个二进制格式的文件,它使用一个二分查找树加速IP信息的查询。clash 分流的时候会用到,直接运行 clash 的话,他会从GitHub上下载,如果你是国内的话,下载链接是 https://cdn.jsdelivr.net/gh/Dreamacro/maxmind-geoip@release/Country.mmdb ,原项目地址是:https://github.com/Dreamacro/maxmind-geoip/releases ,但前几天cdn.jsdelivr.net刚被墙,所以不管是原来的项目地址还是国内并下不下来。

下载Country.mmdb

将 Country.zip 文件下载到/root/.config文件夹中

1
2
# 采用我站链接【推荐】
curl -o /root/.config/clash/Country.mmdb --create-dirs https://pawswrite.xyz/2022/05/30/RaspberryPi-using-proxy/clash/Country.mmdb

如果采用其他链接下载【可能会被墙】:

1
2
3
4
# 采用GitHub原项目地址
curl -o /root/.config/clash/Country.mmdb --create-dirs https://github.com/Dreamacro/maxmind-geoip/releases/download/20220512/Country.mmdb
# 采用cdn加速GitHub
curl -o /root/.config/clash/Country.mmdb --create-dirs https://cdn.jsdelivr.net/gh/Dreamacro/maxmind-geoip@release/Country.mmdb

点击下载👉Country.mmdb

下载配置文件

这个就得找你的机场了。自行从机场下载相对应的配置文件config.yaml。这里推荐作者朋友用的机场 GLaDOS,盲猜机场老板是游戏传送门的粉丝,刚好我也很喜欢这个游戏。它提供了Linux版本的clash配置文件

注册GLaDOS(注册地址在 https://github.com/glados-network/GLaDOS 实时更新), 并输入邀请码:
N3CMR-9H4SV-RE0Z6-LE1RZ 激活

请使用下面命令下载配置文件:

1
wget -o /root/.config/clash/config.yaml 你的clash配置文件url

如果你的机场不提供clash的配置文件,可以用本站的订阅转换地址进行订阅转换(不要使用短链接):

https://sub.pawswrite.xyz/

如果订阅下载不下来,可以浏览器打开,然后复制所有的订阅信息,再回到服务器或者树莓派,新建文件粘贴进去,注意粘贴之前要删空:

1
vim /root/.config/clash/config.yaml

启动Clash

现在就可以直接启动clash了:

1
/root/clash/clash

如果出现类似下面的信息,就是启动成功:

1
2
3
4
root@raspberrypi:/root/clash# /root/clash/clash
INFO[0000] RESTful API listening at: [::]:9090
INFO[0000] HTTP proxy listening at: [::]:7890
INFO[0000] SOCKS proxy listening at: [::]:7891

日志提示已经开放了HTTP代理服务端口为7890, SOCK55服务端口为7891。后面设置其他程序(浏览器/GIT等)通过7890/7891来代理访问网络就可以了。

检查是否启动成功,还可以开一个新的ssh session或者terminal,在新终端中输入curl localhost:9090并回车,出现下面信息则是成功:

1
2
pi@raspberrypi:~$ curl localhost:9090
{"hello":"clash"}

这个时候就可以使用 clash ,只是需要另开一个terminal。

如果想要配置 clash.service 来实现开机自启动,进行进程维护,以及配置web UI面板来管理Clash,在下面的章节有提到。

使用clash代理

  1. 例如 Git:

    新开一个Terminal:

    1
    git clone https://github.com/twbs/bootstrap.git --config "http.proxy=127.0.0.1:7890"

    clash 打印如下日志说明clash完成了工作
    INFO[0007] [TCP] 127.0.0.1:54875 --> github.com:443 match DomainKeyword(github) using Proxy

  2. 例如 NPM:

    1
    2
    3
    npm config set proxy http://127.0.0.1:7890 
    npm install pm2 -g
    npm config delete proxy #取消代理设置
  3. 通过设置Shell的环境变量, 例如 APT/CURL:

    1
    2
    3
    4
    5
    6
    7
    8
    export https_proxy="socks5://127.0.0.1:7891"
    export http_proxy="http://127.0.0.1:7890"
    apt update
    apt install wget
    export http_proxy="" #取消代理设置
    export http_proxy="127.0.0.1:7890"
    curl https://ifconfig.me
    export http_proxy="" #取消代理设置
  4. SSH 通过代理连接服务器, 例如:

    ubuntu 下编辑 ~/.ssh/config 文件:

    1
    2
    3
    Host 1.1.1.1
    User root
    ProxyCommand /usr/bin/nc -X5 -x 127.0.0.1:7891 %h %p

    连接服务器

    1
    ssh [email protected]
  5. 桌面型Linux(如Ubuntu 22.04)
    请打开设置-网络-设置网络代理为SOCK5, 地址为 127.0.0.1, 端口为7891.

注意: ping 并不是 TCP 应用,因此无法使用Clash的HTTP/SOCK5代理。

【进阶】ProxyChains

个人认为ProxyChains是Linux上最好用的代理工具。配合Clash使用非常方便,具体可看另一篇文章:
https://pawswrite.xyz/2022/05/31/ProxyChains/

测试网络

看看能不能上谷歌:

1
/root/clash/clash # 启动clash

新开一个terminal,并输入:

1
2
export https_proxy=http://127.0.0.1:7890
ping google.com

若能ping通则能正常翻墙,如果不能的话,检查机场订阅有没有过期,配置文件还能不能用。

进阶:管理Clash【可选】

service守护进程,配置开机自启

不希望Clash专门占用一个terminal,希望关闭对话以后依然在后台运行,如果出错了自动重启,并实现开机重启。那么就可以照本章节来做。

输入以下指令创建clash.service文件

1
touch /etc/systemd/system/clash.service

双击打开clash.service文件,粘贴以下内容:

1
2
3
4
5
6
7
8
9
10
11
[Unit]
Description=clash daemon
After=network.target

[Service]
Type=simple
Restart=always
ExecStart=/root/clash/clash -d /root/.config/clash

[Install]
WantedBy=multi-user.target

然后设置clash开机自启动:

1
2
3
systemctl daemon-reload
systemctl enable clash
service clash start

查看状态:

1
systemctl status clash.service

UI面板

第1种选择的razord面板是最简单最方便的,并且可以和第2种选择里的yacd面板共存,第二种是yacd面板,较简单,第三种是自建razord面板。但是2、3种只能选一个,第2、3种面板都需要修改配置文件。但第1种用的是别人建的razord面板,不需要修改配置

【第1种选择】本站面板(最方便)

浏览器输入:

填入ip地址和端口。

注意如果连不上的话要用http而不是https。

关于Host:

  • 如果你是用桌面版Linux,就在Linux系统中的浏览器打开这个网址,输入127.0.0.1就可。
  • 如果你是用服务器,就输入公网IP
  • 如果你是用openwrt或者树莓派或者其他server版系统,没有公网IP,那就输入ifconfig,查看本机ip,然后在用同一个局域网下(比如说连到同一个WiFi)的其他设备下用浏览器打开,并且输入刚刚得到的ip

关于端口:端口就是启动Clash以后打印的RESTful API listening at: [::]:9090这里的端口号,(默认9090)

关于密码:没有修改过配置文件的话一般留空。如果连不上就去配置文件查看,看开头是否有 secret 这一项。

【第2种选择】自建yacd面板

yacd 项目地址:

https://github.com/haishanh/yacd/releases

首先,下载最新版yacd
推荐:

1
2
3
4
curl -o /root/.config/clash/yacd.tar.xz https://pawswrite.xyz/2022/05/30/RaspberryPi-using-proxy/clash/yacd.tar.xz
tar -xvJf /root/.config/clash/yacd.tar.xz -C /root/.config/clash/
mv /root/.config/clash/public /root/.config/clash/dashboard
rm /root/.config/clash/yacd.tar.xz

备选:
点击下载👉yacd,下载到本地后再拖动上传到/root/.config/clash目录解压

【第3种选择】自建razord面板

dashboard项目地址:
https://github.com/Dreamacro/clash-dashboard/tags

从本站直接下载v0.3.0版本:

1
2
curl -O https://pawswrite.xyz/2022/05/30/RaspberryPi-using-proxy/clash/dashboard.zip
unzip -d /root/.config/clash/ dashboard.zip && rm dashboard.zip

修改配置文件

自建yacd界面和razord界面都需要在配置文件里修改后才能使用,但是用别人的不需要

编辑配置文件:

1
vim /root/.config/clash/config.yaml

在配置文件开头加入下面几行:
如果配置文件已经有这几行就不用加了,比如GLaDOS提供的Linux版本配置文件就已经自带了

1
2
3
4
5
6
7
# 您可以将静态网页资源(如 clash-dashboard)放置在一个目录中,clash 将会服务于 `${API}/ui`
# 参数应填写配置目录的相对路径或绝对路径。
external-ui: dashboard
# A RESTful API for clash
external-controller: 127.0.0.1:9090
# Secret for RESTful API (Optional)口令 (可选)留空就是没有
secret: "yourpassword"

记住自己配置的口令,后面会用上

重启clash

1
systemctl restart clash

在浏览器中输入 http://你的ip:9090/ui/ 进行访问。如果有公网IP就填公网IP,可以在外网进行访问还可以配置Nginx进行反代。

关于Host:

  • 如果你是用桌面版Linux,就在Linux系统中的浏览器打开这个网址,输入127.0.0.1就可。
  • 如果你是用服务器,就输入公网IP
  • 如果你是用openwrt或者树莓派或者其他server版系统,没有公网IP,那就输入ifconfig,查看本机ip,然后在用同一个局域网下(比如说连到同一个WiFi)的其他设备下用浏览器打开,并且输入刚刚得到的ip

关于端口:端口就是启动Clash以后打印的RESTful API listening at: [::]:9090这里的端口号,也就是配置文件里设置的external-controller(默认9090)
关于密码:去配置文件查看,看填入secret后面的内容,比如yourpassword


【保姆级教程】Linux(树莓派)用代理上网并配置web界面
https://pawswrite.xyz/posts/59203.html
作者
Rainbow
发布于
2022年5月30日
许可协议