📌 背景

作为一名NAS用户,我在飞牛OS系统上遇到了一个需求:让eth0专门处理IPv4流量eth1专门处理IPv6流量。这意味着需要永久禁用eth1的IPv4功能,同时保留其IPv6功能。本文将分享我的解决过程,帮助有类似需求的用户快速上手。

⚙️ 问题分析

飞牛OS基于Linux内核,但其网络管理工具并非传统的ifupdown,而是**NetworkManager**(通过ps aux确认)。这意味着我们需要通过nmcli(NetworkManager的命令行工具)来配置网络连接。

关键挑战在于:

  1. eth1的网络连接名称并非直观的eth1,而是Wired connection 2(通过nmcli connection show查询);
  2. 需要精确修改连接的IPv4/IPv6配置,确保IPv4被禁用,IPv6保持启用。

💡 解决步骤

1. 🔍 查询eth1的网络连接名称

首先,通过nmcli connection show列出所有网络连接及其对应设备:

1
2
3
4
5
$ sudo nmcli connection show
NAME UUID TYPE DEVICE
Wired connection 1 13ef9bd6-3197-3bbe-b725-cbc864ec667e ethernet eth0
Wired connection 2 35076ad1-8cda-3e8e-8d93-728ef3c9513d ethernet eth1
...(省略其他连接)

由此确认:eth1对应的连接名称是**Wired connection 2**。

2. 🛠️ 修改连接的IPv4/IPv6配置

使用nmcli connection modify命令,禁用Wired connection 2的IPv4,并启用IPv6:

1
2
3
4
5
# 禁用IPv4(设为'disabled')
$ sudo nmcli connection modify "Wired connection 2" ipv4.method disabled

# 启用IPv6(设为'auto'自动获取)
$ sudo nmcli connection modify "Wired connection 2" ipv6.method auto

3. ✅ 激活配置

修改完成后,重新加载连接以应用更改:

1
$ sudo nmcli connection up "Wired connection 2"

4. 🎯 验证结果

通过以下命令验证配置是否生效:

  • 检查IPv4是否禁用

    1
    2
    $ ip addr show eth1  # 无IPv4地址
    $ route -n # 无eth1的IPv4路由
  • 检查IPv6是否启用

    1
    2
    $ ip -6 addr show eth1  # 有IPv6地址
    $ ip -6 route # 有IPv6默认路由

🎉 结论

通过NetworkManagernmcli,我们成功实现了:

  • 永久禁用eth1的IPv4功能;
  • 保留eth1的IPv6功能;
  • 确保eth0成为IPv4流量的唯一出口。

这一方案适用于所有使用NetworkManager的Linux发行版(如飞牛OS、Ubuntu、Fedora等),只需根据实际情况调整连接名称即可。

👋 互动环节

如果你在使用过程中遇到任何问题,或者有更好的优化建议,欢迎在评论区留言!我会第一时间回复大家的疑问~ 🤝