Yuhang Zheng
clash的另一个好看主题

我之前在clash搭建科学梯子 | ﹏Resona丶一纸折鸢ζ这篇文章里介绍过如何在树莓派上搭建一个clash代理服务器,还有如何添加一个clash-dashboard的网页UI。

后来再继续逛github的时候,看到了另一个好看的主题,github项目地址如下:haishanh/yacd at gh-pages (github.com)

操作方法和之前一样:

首先进入到clash的安装目录

pi@raspberrypi:~/clash $ cd /home/pi/clash

然后clone一下UI源码

git clone https://github.com/haishanh/yacd.git

然后切换到已经制作好产出的分支

cd yacd
git checkout gh-pages

然后配置一下clash的配置文件/home/pi/.config/clash/config.yaml

修改参数

external-controller: :9090
sercet: 'xxxxx'
external-ui: /home/pi/clash/yacd-gh-pages/

配置完成之后,运行clash即可

./clash-linux-armv7-v1.4.2
Linux bridge VLAN的配置

linux网桥支持vlan filtering过滤功能后,我们不再需要通过子接口的形式进行vlan划分,简化了vlan配置。

1. bridge vlan说明

man bridge可以了解到,linux通过如下命令进行vlan filtering的配置:

bridge vlan { add | del } dev DEV vid VID [ pvid ] [ untagged ] [ self ] [ master ]

选项说明:

pvid:端口的默认vlan,所有从该端口输入的没有携带vlan的报文,会被打上该vlan标签,该选项只对输入报文有效。

untagged:端口的untag vlan,输出报文携带该vlan时,会被剥离。

一般情况下pvid和untagged是同时使用的,对应于cisco的switchport trunk native vlan

self

master

这两个选项在帮助手册上是这么解释的:

self   the vlan is configured on the specified physical device. Required if the device is the bridge device.
master the vlan is configured on the software bridge (default).
VLAN网桥配置过程中的DefaultPVID和tagged

续接上一篇文章,我们在第二种方法中提到了DefaultPVID参数,那么我们该如何理解DefaultPVID参数呢,它的作用是什么?

DefaultPVID的释意

systemd.netdev (www.freedesktop.org)中可以看到DefaultPVID的解释:

DefaultPVID=
This specifies the default port VLAN ID of a newly attached bridge port. Set this to an integer in the range 1–4094 or "none" to disable the PVID.
这指定了新连接的桥接端口的默认端口 VLAN ID。将其设置为 1–4094 范围内的整数或“无”以禁用 PVID。

以上内容便说明了通过systemd方式配置网桥时,br0.netdev文件中DefaultPVID参数的作用就是给所有加入该网桥的网络端口配置一个PVID,包括网桥自己。

那么这个PVID和普通的VLAN ID有什么区别呢?暂时先保留这个疑问往下看。

pvid和untagged的作用

首先看一下bridge命令的选项说明:

bridge vlan { add | del } dev DEV vid VID [ pvid ] [ untagged ] [ self ] [ master ]

选项说明:

pvid:端口的默认vlan,所有从该端口输入的没有携带vlan的报文,会被打上该vlan标签,该选项只对输入报文有效。
untagged:端口的untag vlan,输出报文携带该vlan时,会被剥离。

一般情况下pvid和untagged是同时使用的。

由上述说明可以看到,在bridge命令中,pvid和untagged参数是高度关联的。那么,这个tag又是什么东西呢?Tagged和Untagged又是什么?