欧拉操作系统配置双栈网络完整指南(IPv4 + IPv6)

6 阅读5分钟

欧拉操作系统配置双栈网络完整指南(IPv4 + IPv6)

前言

最近在配置研究生招生系统的服务器环境,遇到了欧拉操作系统下配置双栈网络的问题。踩了不少坑,记录一下完整的配置过程,希望能帮到有类似需求的朋友。

环境说明

  • 操作系统:欧拉操作系统(openEuler 24.03 SP3)
  • 内核版本:6.6.0-132.0.0.111.oe2403sp3.x86_64
  • 网络管理工具:NetworkManager(nmcli)

网络规划

假设我们需要配置两台服务器:

服务器IPv4地址IPv6地址网关(IPv4)网关(IPv6)
Web服务器192.168.1.10/292001:db8::1/112192.168.1.142001:db8::ffff
数据库服务器192.168.1.11/292001:db8::2/112192.168.1.142001:db8::ffff
DNS8.8.8.8---

说明:本文使用示例 IP 地址,请根据实际情况替换。

子网掩码说明

  • /29 对应子网掩码 255.255.255.248
  • 可用 IP 数量:6 个(29 = 32 - 3,2³ = 8,减去网络地址和广播地址)

第一步:查看当前网卡信息

# 查看网卡设备状态
ip addr show

# 或使用 nmcli
nmcli device status

输出示例:

DEVICE    TYPE      STATE         CONNECTION
lo        loopback  connected     lo
ens192    ethernet  disconnected  -

记下你的网卡名称(这里是 ens192)。

第二步:查看现有 NetworkManager 连接

nmcli con show

如果存在同名连接或冲突,先删除:

nmcli con delete ens192

第三步:创建新连接

nmcli con add type ethernet con-name ens192 ifname ens192

第四步:配置 IPv4 地址

nmcli con mod ens192 ipv4.method manual \
    ipv4.addresses 192.168.1.10/29 \
    ipv4.gateway 192.168.1.14 \
    ipv4.dns "8.8.8.8"

注意

  • 使用反斜杠 \ 换行时,后面不能有空格,直接按回车
  • DNS 地址用双引号包裹
  • 多个 DNS 可用逗号分隔:"8.8.8.8,8.8.4.4"

第五步:配置 IPv6 地址

nmcli con mod ens192 ipv6.method manual \
    ipv6.addresses 2001:db8::1/112 \
    ipv6.gateway 2001:db8::ffff

关于 IPv6 DNS 的说明

  • 一般情况下不需要单独配置 IPv6 DNS
  • IPv4 DNS 服务器可以同时解析 IPv6 地址(AAAA 记录)
  • 如果确实需要,可以用 ipv6.dns 参数添加

第六步:激活网卡配置

nmcli con up ens192

第七步:验证配置

# 查看 IPv4 配置
ip addr show ens192 | grep inet

# 查看 IPv6 配置
ip addr show ens192 | grep -i inet6

# 查看网关配置
nmcli con show ens192 | grep -E "ipv4.gateway|ipv6.gateway"

# 测试 IPv4 连通性
ping -c 4 192.168.1.14

# 测试 IPv6 连通性
ping6 -c 4 2001:db8::ffff

快速配置命令汇总(一行版)

如果你已经熟悉流程,可以直接用一行命令完成所有配置:

# Web服务器
nmcli con mod ens192 ipv4.method manual ipv4.addresses 192.168.1.10/29 ipv4.gateway 192.168.1.14 ipv4.dns "8.8.8.8" ipv6.method manual ipv6.addresses 2001:db8::1/112 ipv6.gateway 2001:db8::ffff

# 数据库服务器
nmcli con mod ens192 ipv4.method manual ipv4.addresses 192.168.1.11/29 ipv4.gateway 192.168.1.14 ipv4.dns "8.8.8.8" ipv6.method manual ipv6.addresses 2001:db8::2/112 ipv6.gateway 2001:db8::ffff

常见问题与解决方案

1. 报错:Error: Failed to modify connection

错误信息

Error: Failed to modify connection 'ens192': ipv4.addresses: "method=manual"

原因:设置 method=manual 时必须同时提供 ipv4.addresses

解决:将 method 和 addresses 放在同一条命令中

2. 报错:invalid <setting>.<property> 'ipv4addresses'

错误信息

Error: invalid <setting>.<property> 'ipv4addresses'

原因:拼写错误,少了点号

正确写法ipv4.addresses(不是 ipv4addresses

3. 警告:There is another connection with the name 'ens192'

错误信息

Warning: There is another connection with the name 'ens192'

原因:存在重复的连接配置

解决

# 查看所有连接
nmcli con show

# 删除重复的连接(使用 UUID)
nmcli con delete <UUID>

4. IPv6 地址显示不正确

原因:配置没有生效,或者有多个配置文件冲突

解决

# 清除现有配置
nmcli con mod ens192 ipv6.addresses ""
nmcli con mod ens192 ipv6.gateway ""

# 重新配置
nmcli con mod ens192 ipv6.addresses 2001:db8::1/112

# 重新激活
nmcli con down ens192
nmcli con up ens192

5. 查看网关是否配置成功

nmcli con show ens192 | grep gateway

输出示例:

ipv4.gateway:    192.168.1.14
ipv6.gateway:    2001:db8::ffff

如果显示 -- 表示未配置。

6. 网卡名称不是 ens192 怎么办?

不同系统的网卡名称可能不同:

  • 传统命名:eth0eth1
  • 一致性命名:ens192ens160enp0s3
  • 虚拟化:ens33

解决:先执行 ip addr show 查看实际网卡名,然后替换命令中的 ens192

子网掩码换算参考

子网掩码CIDR可用IP数
255.255.255.0/24254
255.255.255.128/25126
255.255.255.192/2662
255.255.255.224/2730
255.255.255.240/2814
255.255.255.248/296
255.255.255.252/302

nmcli 常用命令速查

操作命令
查看所有连接nmcli con show
查看所有设备nmcli device status
添加连接nmcli con add type ethernet con-name <名称> ifname <网卡>
删除连接nmcli con delete <名称或UUID>
修改配置nmcli con mod <名称> <属性> <值>
激活连接nmcli con up <名称>
停用连接nmcli con down <名称>
查看连接详情nmcli con show <名称>
重启网络nmcli networking off && nmcli networking on

总结

配置欧拉操作系统的双栈网络,核心步骤是:

  1. 确认网卡名称 - ip addr show
  2. 清理冲突配置 - nmcli con delete
  3. 添加新连接 - nmcli con add
  4. 配置 IPv4 - ipv4.method manual ipv4.addresses ipv4.gateway ipv4.dns
  5. 配置 IPv6 - ipv6.method manual ipv6.addresses ipv6.gateway
  6. 激活并验证 - nmcli con up + ip addr + ping

关键点

  • /29 = 255.255.255.248
  • ipv4.addresses 不要写成 ipv4addresses
  • 设置 manual 时必须同时提供地址
  • IPv6 通常不需要单独配置 DNS

nmcli 命令虽然参数较多,但熟悉之后非常高效。希望这篇文章能帮到你!


如果觉得有用,欢迎点赞收藏!有问题可以在评论区交流~


安全提示:本文中的 IP 地址均为示例,请根据实际网络环境替换。生产环境建议使用内网地址段(如 10.0.0.0/8、172.16.0.0/12、192.168.0.0/16)。