Published on

树莓派安装clash,实现科学上网

Authors
  • avatar
    Name
    Myles
    Twitter

树莓派安装 clash 最新版教程!!!

前言

经过一轮的 clash 相关开发者删库跑路,很多老的教程已经不适用的。但是野火烧不尽,有了新的方案出现。然后自己在这个过程中也踩了不少坑,所以觉得有必要记录下来让后来者少走些弯路。

下载 clash

clash 改头换面以原神的身份重生(不是),在mihomo这个项目(点击超链接跳转)的releases里找到对应系统架构的预编译文件,因为我的树莓派装的是官方最新的 64 位 raspberry os,所以这里选择mihomo-linux-arm64-alpha-0ab73a9.gz下载。因为自身系统的不同与项目 release 的不断更新,这里仅供参考。

此时我们的树莓派连接访问 github 的网络是不稳定的,所以我非常建议在已经科学的环境下载,然后通过 ssh 上传到树莓派。以下的步骤我是在已经科学的 Windows 环境下配合MobaXterm完成。

安装 clash

  • 将下载得到的压缩包,上传到树莓派文件系统中任意位置(反正后面会移动到指定位置)。

  • 解压并重命名为 clash

gzip -d -f mihomo-linux-arm64-alpha-0ab73a9.gz
mv mihomo-linux-arm64-alpha-0ab73a9 clash
  • 添加可以执行权限
chmod +x clash
  • 查看是否安装成功
clash -v
#出现以下类似信息则安装成功
#Mihomo Meta alpha-0ab73a9 linux arm64 with go1.21.5 Thu Dec 14 02:20:06 UTC 2023

添加 config.yaml 与 country.mmdb 文件

此时的 clash 是不能正常工作的,因为没有 config,yaml 配置文件

  • 在您安装 clash 的目录下运行 clash
clash
  • 输入 clash 会自动生成配置文件,在~/.config/mihomo 目录
cd ~/.config/mihomo && ls
  • 覆盖原有的 config,yaml

​ 生成 config,yaml 自然是没办法科学的,配置文件格式请参考该项目文档。最简单的方式是将成功科学的 Windows clash 客户端配置文件拖入树莓派。ps:有的机场订阅地址可以直接 wget 下载符合 config.yaml 格式的配置文件。

  • 下载 country.mmdb 文件

​ country.mmdb 为全球 IP 库,可以实现各个国家的 IP 信息解析和地理定位。clash 运行会自动下载这个文件,但是呢没有科学的情况下是下载不下来的。所以这边要手动下载并放入目录。在meta-rules-dat的发行包里找到 country.mmdb 文件,下载完成后同样放入~/.config/mihomo 目录。

  • 配置 raspi-config

​ 此时 clash 已经正常运行了,但是树莓派还需要配置网络代理,才能完成科学上网。

sudo raspi-config
  1. 找到 6 Advanced Options 回车进入
  2. 选择 A3 Network Proxy Settings 进入
  3. 选择 P1 All 填入 http://127.0.0.1:7890
  4. Ok 确认 Finish 确认然后选择 reboot 重启设备
  • 进入终端输入 clash 启动

​ 如果您按照我的步骤走下来,clash 此时已经正常工作。可以使用wget www.google.com测试,如果当前文件目录下多出 index.html 文件,那么恭喜您,成功科学上网!

实现 clash 开机自启

上述步骤虽然已经成功运行 clash,但是非常的不方便,每次开机需要到 clash 目录下重新运行,且不能关闭运行窗口。所以需要进行 systemd 服务配置,完成自启动。

  • 移动 clash 到/usr/local/bin/目录,注意命令中 clash 是树莓派中 clash 的路径位置
sudo mv clash /usr/local/bin/
  • 在/etc 目录下创建 clash 目录
sudo mkdir /etc/clash
  • 复制 config.yaml 与 Country.mmdb 文件到/etc/clash 目录
sudo cp -f ~/.config/mihomo/config.yaml ~/.config/mihomo/country.mmdb /etc/clash
  • 创建 systemd 配置文件,实现开机自启
sudo touch /etc/systemd/system/clash.service
  • 编辑配置文件(sudo nano /etc/systemd/system/clash.service)写入以下内容
[Unit]
Description=mihomo Daemon, Another Clash Kernel.
After=network.target NetworkManager.service systemd-networkd.service iwd.service

[Service]
Type=simple
LimitNPROC=500
LimitNOFILE=1000000
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_RAW CAP_NET_BIND_SERVICE CAP_SYS_TIME
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_RAW CAP_NET_BIND_SERVICE CAP_SYS_TIME
Restart=always
ExecStartPre=/usr/bin/sleep 1s
ExecStart=/usr/local/bin/clash -d /etc/clash
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target
  • 启用 clashclash.service 服务
sudo systemctl enable clash
  • 启动 clash
sudo systemctl start clash
  • 重新加载 clash
sudo systemctl reload clash
  • 查看运行状况
sudo systemctl status clash
  • 查看运行日志,如果出错可以在这里捕捉 error 信息
journalctl -u clash -o cat -f
  • clash 在线面板

浏览器输入https://d.metacubex.one使用图形化操作界面

参考文档

mihomo 项目文档

clash for linux 教程

clash 树莓派上网