自用树莓派笔记2: 使用clash为局域网内所有设备添加网络代理

最近使用的代理是v〇ray,Mac上用ClashX非常方便,但是iOS平台上支持v〇ray的似乎都要付费。因为手机上也不常需要代理,就打算在家里的局域网上利用树莓派挂clash,实现至少在家里各个设备可以自动走代理上网。

本文的风格和之前一样,主要参考官方文档,作最小的改动以实现基本的功能。属于自用笔记,并不算详细。

下载和安装

下载压缩包自己解压就可以(官方下载地址,截止本文发布最新版本为1.0.0),我的Pi 3B+选择对应的armv7架构的包。解压gz包,移动到安装位置和授权的命令如下:

gunzip clash-linux-armv7-v1.0.0.gzmv clash-linux-armv7-v1.0.0 /usr/local/bin/clashchmod +x /usr/local/bin/clash配置文件

Clash的配置文件默认是空白的,需要手动配置之后才能正常启动代理。由于代理种类的不同,具体的配置方法也不同,需要参考官方Wiki。此处我以自己的v〇ray配置为例提供简单的说明,我自己配制时参考了ClashX上(内核为Clash 0.20)之前用的代理提供的默认配置,但Clash最新的版本1.0.0配置文件和老版本有较大的差别,需要自己检查每一项是否正确。

配置文件的存放位置:

cd /home/pi/.config/clash #如果安装时使用的是普通用户picd /root/.config/clash #如果安装时使用的root用户

可以看到有config.yaml和Country.mmdb两个文件,需要修改的是前者。首先端口的信息:

# Port of HTTP(S) proxy server on the local endport: 7890 # 一般都不需要修改# Port of SOCKS5 proxy server on the local endsocks-port: 7891# Transparent proxy server port for Linux and macOSredir-port: 0

接着,因为我想实现的是局域网内的设备走代理,需要允许来自局域网的访问:

allow-lan: true # 允许局域网的访问,是我们想做的mode: rule # 代理的工作模式log-level: info # info指定Clash运行的时候会输出所有信息,这项不太重要。

mode一项中,最简单的处理方法是填写global,即所有的流量都走代理处理,但访问国内的网站可能出现速度较慢的现象;相反,如果是direct则为完全不使用代理。我设置的rule需要自己手动添加规则,由于之前的ClashX服务提供商有一个配置文件,我就直接复制上去了,如果自己操作的话需要另找一下。

接下来就是最关键的,填写你自己使用的代理的信息了。

proxies:# vmess proxy- name: “my-vmess-proxy” # 填代理的名字,任意 type: vmess # 代理类型,其他的有ss, socks5等,参见官方wiki上来填写配置 server: # 以下几项都根据你的代理实际情况填写 port: uuid: alterId: cipher: auto # 一般不用修改

如果不止一个的话,添加新的短横线条目就可以。接下来设置代理组,最简单的就是自动,如以下的例子。

proxy-groups: – name: “auto” # 名称任意 type: url-test # 基于某个网页测速来自动选择最快的代理 proxies: – ss1 # 备选的代理(填上面proxies里面的name) – ss2 – vmess1 tolerance: 150 # 可以设置一个阈值(并不知道单位是啥,ms?) url: ‘http://www.gstatic.com/generate_204’ # 测速用网页 interval: 300 # 测速间隔(并不知道单位是啥,s?)

最后配置具体的规则,需要自己设置或者去网上找现成的规则。例如:

rules: – DOMAIN-SUFFIX,google.com,auto # 域名后缀google.com,走代理 – DOMAIN-KEYWORD,google,auto # 关键词google,走代理 – DOMAIN,google.com,auto # 域名google.com,走代理 – DOMAIN-SUFFIX,ad.com,REJECT # 可能的广告网页,用REJECT拒绝连接 – DOMAIN-SUFFIX,bilibili.com,DIRECT # 国内网页,用DIRECT直连

基本上就是DIRECT,REJECT和我们自定义的代理组3种。配置好了之后保存配置文件,就可以启动clash看看效果了。(我是用root账户安装的,需要sudo来执行,用一般用户pi安装的则不需要。)

clash正常启动界面用户端设置

树莓派端保持不动,将需要使用代理的设备连接和树莓派相同的局域网,然后进入网络设置,将HTTP代理选择“手动”。如下展示的是iPhone的无线局域网界面

保存好以后,手机无线局域网的流量就会经过树莓派端clash,然后根据我们配置好的规则来处理了。随便刷刷网页,clash端应该会出现大量流量处理的信息,表示工作正常。

为clash配置后台/自启动

按照官方wiki来操作即可。首先将配置文件拷贝到相应的文件夹(可能需要sudo):

cd /home/pi/.config/clashcp config.yaml /etc/clash/cp Country.mmdb /etc/clash/

接着新建service文件,也没多少可以直接手打,如使用nano编辑:

sudo nano /etc/systemd/system/clash.service

复制官方给出的service配置并保存:

[Unit]Description=Clash Daemon[Service]ExecStart=/usr/local/bin/clash -d /etc/clash/[Install]WantedBy=multi-user.target

之后就可以使用systemctl的一系列命令来操作了,具体可见上期笔记。比如可以用以下命令启动一下看看效果

systemctl start clash # 后台启动clashsystemctl list-units –type=service # 查看正在运行的服务

正常情况下可以看到clash在后台工作。

后台服务列表。可以看到刚刚启动的clash和上期笔记中设置了自启动的frpc都在工作中。clash输出的处理流量的信息局域网内的手机成功连接某网站后记

和之前一样,本笔记实现的仅仅是最简单的功能,走http代理的方法让局域网内设备的流量可以经过clash进行处理。clash还提供更复杂的功能,如图形界面的控制面板等等,可以参考官方wiki等进一步设置。

参考资料clash官方wiki,configuration讲解配置文件,clash as a daemon讲设置后台。


比丘资源网 » 自用树莓派笔记2: 使用clash为局域网内所有设备添加网络代理

提供最优质的资源集合

立即查看 了解详情