一、背景
我是使用软路由装的飞牛,具有4个2.5g网口,日常只用一个口,然后就像把其他口桥接出去当交换机,翻遍了官方都没有这个功能需求,于是有大神根据深度系统来进行网口自定义,缺点就是重启会失效,当然也有大神通过虚拟机来实现,那样也太过繁琐。于是用开机脚本成为最佳解决方案

二、前期准备
软件 :MobaXterm_Personal
**下载地址:**https://wwtr.lanzoue.com/ilvMq0k3m2ng
密码:18bd
来源:吾爱破解大神分享
2.1、开启ssh

2.2、wan口(进口),开启ovs

三、脚本写入,赋权
一、打开软件



按ok完成创建,输入对应用户名和密码(密码是暗文),然后回车

二、提升权限,写入脚本
# 使用sudo -i 提升权限,然后输入密码确认
sudo -i
# 创建脚本文件
nano /etc/NetworkManager/dispatcher.d/90-portstobridge
# nano编辑器脚本内容
#!/bin/bash
# 飞牛NAS 4网口 OVS自动桥接 终极版
# 严格过滤:只添加物理以太网口(enp/eno/eth),排除无线/Docker/虚拟/乱码设备
# 自动获取OVS网桥名
OVS_BRIDGE=$(ovs-vsctl list-br)
[ -z "$OVS_BRIDGE" ] && exit 0
# 仅当网桥启动时执行
if [ "$1" != "$OVS_BRIDGE" ] || [ "$2" != "up" ]; then
exit 0
fi
# 已存在端口
EXIST_PORTS=$(ovs-vsctl list-ports $OVS_BRIDGE)
# 【严格过滤】只匹配物理网口 enp3s0/enp4s0/enp5s0/enp6s0
PHY_NICS=$(ip link | grep -E 'enp|eno|eth' | grep -v 'UNCONFIGURED' | awk -F': ' '{print $2}' | awk '{print $1}' | sort | uniq)
# 循环添加未加入的物理网口
for NIC in $PHY_NICS; do
if ! echo "$EXIST_PORTS" | grep -qw "$NIC"; then
ovs-vsctl add-port $OVS_BRIDGE $NIC
echo "[$(date)] 添加成功:$NIC -> $OVS_BRIDGE" >> /var/log/ovs-safe.log
fi
done
三. 保存退出
按 Ctrl+O → 回车 → Ctrl+X
四. 赋权 + 重启服务
chmod +x /etc/NetworkManager/dispatcher.d/90-portstobridge
systemctl restart NetworkManager
四、检验
ovs-vsctl show

五、设置接口地址
建议使用的接口设置一下地址为手动,设置ipv4就可以了
