收起左侧

#飞牛网口桥接配置工具 解决飞牛 fnOS 系统重启后网口桥接配置丢失的问题。

1
回复
32
查看
[ 复制链接 ]

4

主题

16

回帖

0

牛值

fnOS系统内测组

fnOS1.0上线纪念勋章飞牛百度网盘玩家

飞牛网口桥接配置工具

解决飞牛 fnOS 系统重启后网口桥接配置丢失的问题。

功能特性

  • 菜单式交互 - 输入序号即可选择操作,无需记忆命令
  • 智能网口选择 - 通过序号选择网口,支持多选
  • 虚拟网口自动过滤 - 只显示物理网口,避免混淆
  • 主网桥 OVS 检测 - 自动检测 xxx-ovs 格式的网桥
  • 防断网保护 - 取消桥接时自动跳过主网口
  • Emoji/ASCII 自动适配 - 根据终端环境智能切换显示符号
  • 完整的取消桥接功能 - 一键恢复网口原始状态
  • ✅ 交互式配置模式(适合新手)
  • ✅ 快速配置模式(适合批量部署)
  • ✅ 自动创建 systemd 自启动服务
  • ✅ 重启后配置不会丢失
  • ✅ 支持多网口同时桥接
  • ✅ 状态查看和测试功能
  • ✅ 一键卸载清理

快速开始

上传脚本

fn_bridge.sh 上传到飞牛 NAS。

赋予执行权限

sudo -i
chmod +x fn_bridge.sh

⚠️ 重要提示:如果运行时出现 cannot execute: required file not found 错误,
这是 Windows 换行符导致的,执行以下命令修复:

sed -i 's/\r$//' fn_bridge.sh

方法一:菜单模式(强烈推荐)

直接运行脚本即可进入菜单模式:

./fn_bridge.sh

然后根据屏幕显示的菜单,输入对应操作的序号即可:

==========================================
  飞牛网口桥接配置工具 v1.2.1
==========================================
  作者: YUNXI

请选择操作:

  1. 查看网络和 OVS 信息
  2. 配置网口桥接
  3. 取消网口桥接
  4. 查看当前状态
  5. 测试自启动脚本
  6. 卸载自启动服务
  7. 显示帮助信息
  0. 退出脚本

请输入操作序号 [0-7]:

方法二:交互式配置命令

./fn_bridge.sh setup

方法三:快速配置模式

./fn_bridge.sh quick enp1s0-ovs enp2s0 enp3s0

参数说明:

  • 第一个参数:主网桥名称
  • 后面的参数:要桥接的网口列表(多个用空格分隔)

命令列表

命令 说明
./fn_bridge.sh./fn_bridge.sh menu 菜单模式(默认)
./fn_bridge.sh setup 交互式配置模式
./fn_bridge.sh quick <网桥> <网口...> 快速配置模式
./fn_bridge.sh remove 取消网口桥接
./fn_bridge.sh status 查看当前状态
./fn_bridge.sh test 测试执行自启动脚本
./fn_bridge.sh uninstall 卸载自启动服务
./fn_bridge.sh info 显示网络和OVS信息
./fn_bridge.sh help 显示帮助信息

功能说明

1. 查看网络和 OVS 信息

显示当前系统的网络接口列表和 OVS 网桥配置,自动过滤虚拟网口,只显示物理网口。

2. 配置网口桥接

  • 智能检测可用的 OVS 网桥(xxx-ovs 格式)
  • 通过序号选择主网桥
  • 显示可用的物理网口列表,标注「已桥接」和「主网口」
  • 通过序号选择要桥接的网口,支持多选(如:2 3 4
  • 自动创建自启动服务

3. 取消网口桥接

⚠️ 重要:此功能会从网桥中移除端口,但会自动跳过主网口,避免断网!

  • 可选择取消单个网桥或全部网桥的桥接配置
  • 自动跳过主网口,保护网络连接
  • 恢复网口原始状态
  • 清理自启动服务和脚本文件

4. 查看当前状态

  • 显示 systemd 服务运行状态
  • 显示自启动脚本内容
  • 显示当前 OVS 网桥和端口配置

5. 测试自启动脚本

手动执行自启动脚本,验证配置是否正确生效。

6. 卸载自启动服务

⚠️ 注意:仅卸载自启动服务,不会取消当前网口桥接配置!

如需完全取消桥接,请使用「3. 取消网口桥接」功能。

如何查看网桥名称?

执行命令:

ovs-vsctl show

通常网桥名称格式为:网口名称-ovs,例如:

  • enp1s0-ovs
  • eth0-ovs

如何查看所有网口名称?

执行命令:

ip -br link show

常用命令

查看当前桥接状态

ovs-vsctl show

手动添加网口到网桥

ovs-vsctl add-port enp1s0-ovs enp2s0

手动从网桥删除网口

ovs-vsctl del-port enp1s0-ovs enp2s0

查看自启动服务状态

systemctl status fn-bridge.service

查看服务日志

journalctl -u fn-bridge.service

禁用自启动服务

systemctl disable fn-bridge.service

注意事项

  1. OVS 虚拟化设置:确保只在一个网口上开启了 OVS 虚拟化,其他网口的 OVS 需要关闭
  2. 延迟执行:脚本会在系统启动后延迟 30 秒执行,确保网络服务完全启动
  3. 调整延迟:如果桥接后远程访问有问题,可以延长脚本中的 sleep 时间(编辑 /usr/local/bin/fn-bridge-start.sh
  4. 取消桥接:使用「取消网口桥接」功能时,会自动跳过主网口,保护网络连接不会断开

故障排除

脚本无法运行:required file not found

原因:脚本在 Windows 上创建,使用了 Windows 换行符 (CRLF),Linux bash 无法解析。

解决方案

# 方法一:使用 sed 转换(推荐,系统自带)
sed -i 's/\r$//' fn_bridge.sh

# 方法二:使用 dos2unix(如果已安装)
dos2unix fn_bridge.sh

转换后再运行:

chmod +x fn_bridge.sh
./fn_bridge.sh

如何避免

  • 在 Linux 上直接使用 nanovim 编辑脚本
  • Windows VS Code 右下角选择 LF(而非 CRLF)后保存

配置后无法访问 NAS

  • 连接键盘显示器到 NAS,本地登录
  • 检查网口配置:ovs-vsctl show
  • 临时删除桥接:ovs-vsctl del-port 网桥名称 网口名称

重启后配置不生效

  • 检查服务状态:./fn_bridge.sh status
  • 查看服务日志:journalctl -u fn-bridge.service
  • 手动执行测试:./fn_bridge.sh test

终端显示乱码

脚本会自动检测终端 UTF-8 支持情况,不支持时自动降级为 ASCII 符号。

  • UTF-8 支持:使用 ✅ ❌ ℹ️ 💡 🌉 🔒 👋 ⚠️ 等 Emoji
  • 不支持 UTF-8:自动使用 [OK] [ERR] [INFO] [TIP] 等 ASCII 符号

作者

YUNXI


版本:v1.2.1

飞牛分享【飞牛网口桥接】,点击链接下载文件,在App打开可转存到NAS:https://myunxi.top/s/fcc80ee94f5045dc91,密码:yunxi

收藏
送赞 1
分享

4

主题

16

回帖

0

牛值

fnOS系统内测组

fnOS1.0上线纪念勋章飞牛百度网盘玩家

1 小时前 楼主 显示全部楼层
脚本是看到了这个大佬的帖子后做的https://club.fnnas.com/forum.php ... 8941&highlight=
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则