在树莓派上配置Clash-linux
前言
一直在折腾家里的路由器和相关网络设备,想提供一个较为完美的网络环境。之前在Phicomm K2P上通过Openwrt安装luci-ssr-plus来进行国外ip的代理,但受限于简单的规则和MT7261令人捉鸡的性能,体验不佳。因此萌生了使用树莓派搭建透明网关的想法。在查阅了为数不多的教程并踩了很多坑以后基本搭建完成,并且到目前还未出现问题,所以说说如何使用。
准备工作
- 树莓派
- 正常的网络连接
- 一定的动手和解决问题的能力
Clash
Clash is a rule-based tunnel in Go.
Clash 类似 IOS/Mac OS上的Surge,可以在提供SS/V2RAY代理的同时资瓷自定义的代理规则。
编译
虽然说Clash的项目主页说你可以通过go get -u -v github.com/Dreamacro/clash
的方式构建,但是因为要去Google服务器上下载包而变得困难;项目主页的预先构建并不支持ARM架构的树莓派,因此需要自行编译。
这里@shinohara-rin 构建了 Clash-arm (v0.10.2) ,点击这里下载。
配置
首先将clash文件移动/下载到树莓派的目录下,然后移动到 /usr/local/bin
,并给予权限。
# 把解压的二进制放到 /usr/local/bin 目录下
$sudo mv ./clash /usr/local/bin
#给予权限
$chmod 555 /usr/local/bin
关于配置方法,Github的项目主页有详细的说明,在这里简单说一下我的配置。
#运行Clash
$clash
正常的话会提示
INFO[0000] Can't find config, create a empty file
INFO[0000] Can't find MMDB, start download
FATA[0005] Parse config error: Configuration file /home/pi/.config/clash/config.yml is empty
这个时候需要编辑 /home/pi/.config/clash/config.yml
(由于我们把配置放到了默认的位置, 因此可以不用加 -d
参数, 可以使用 clash
直接启动, )
如下是我的配置(参考)
# port of HTTP
port: 7890
## port of SOCKS5
socks-port: 7891
# `allow-lan` must be true in your config.yml
allow-lan: true
# set log level to stdout (default is info)
# info / warning / error / debug / silent
log-level: info
# A RESTful API for clash
#使用0.0.0.0可以使用局域网设备访问
external-controller: 0.0.0.0:8080
mode: Rule
Proxy:
#以下省略,由梯子的服务商提供
如果没有问题,下面是回复
$ clash
INFO[0002] RESTful API listening at: 0.0.0.0:8080
INFO[0002] SOCKS proxy listening at: 127.0.0.1:7891
INFO[0002] HTTP proxy listening at: 127.0.0.1:7890
到这里Clash算是正常运行了,Github的项目主页推荐使用PM2守护进程。
一些错误及解决方法
如果运行Clash后没有回应:尝试编辑
config.yml
无法执行二进制文件:使用兼容ARM的Clash版本或重新编译
没有权限执行:用
chmod
命令赋权
面板控制
为了使用图形化的界面管理代理规则。我使用了yacd面板
使用方法:
- 打开网页
- 填入配置(
ip
为树莓派所在的内网地址,例如192.168.2.14
,端口为config.yml
所设置的8080
) - 完成