openEuler 24.03 网络运维精简笔记

适用:openEuler 24.03 LTS | 网络管理:NetworkManager(nmcli)

一、常用查看命令

查看网络连接

nmcli con show              # 所有连接
nmcli con show --active     # 活动连接
nmcli dev status            # 设备状态
nmcli con show "ens33"      # 某连接详情

查看 IP / 路由 / DNS

ip addr  或  ip a           # IP地址
ip route  或  ip r          # 路由表
cat /etc/resolv.conf        # DNS配置
nmcli dev show | grep DNS   # DNS(通过NM)

查看网卡信息

ip link                     # 所有网卡
ethtool -i ens33            # 网卡驱动信息
lshw -class network -short  # 硬件信息

服务状态

systemctl status NetworkManager
systemctl is-active NetworkManager

二、基础网络配置(nmcli)

DHCP 自动获取

nmcli con mod "ens33" ipv4.method auto
nmcli con up "ens33"

配置静态 IP

nmcli con mod "ens33" ipv4.addresses 192.168.1.100/24
nmcli con mod "ens33" ipv4.gateway 192.168.1.1
nmcli con mod "ens33" ipv4.dns "8.8.8.8 114.114.114.114"
nmcli con mod "ens33" ipv4.method manual
nmcli con up "ens33"

# 或一条命令完成
nmcli con mod "ens33" ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8,114.114.114.114" ipv4.method manual
nmcli con up "ens33"

新建连接

# DHCP方式
nmcli con add type ethernet con-name "my-eth" ifname ens33

# 静态方式
nmcli con add type ethernet con-name "static-eth" ifname ens33 ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8 ipv4.method manual

配置 DNS

nmcli con mod "ens33" ipv4.dns "8.8.8.8 1.1.1.1"     # 覆盖
nmcli con mod "ens33" +ipv4.dns 114.114.114.114      # 追加
nmcli con mod "ens33" -ipv4.dns 8.8.8.8              # 删除
nmcli con up "ens33"

配置主机名

hostnamectl set-hostname openEuler-node1

文本界面配置

nmtui

三、网络连接修改

修改连接名

nmcli con mod "旧名" connection.id "新名"

修改 IP / 网关

nmcli con mod "ens33" ipv4.addresses 192.168.1.200/24
nmcli con mod "ens33" ipv4.gateway 192.168.1.1
nmcli con up "ens33"

添加辅助 IP

nmcli con mod "ens33" +ipv4.addresses 192.168.1.101/24
nmcli con up "ens33"
# 删除: nmcli con mod "ens33" -ipv4.addresses 192.168.1.101/24

修改 MTU

nmcli con mod "ens33" 802-3-ethernet.mtu 1500
nmcli con up "ens33"

设置开机自启

nmcli con mod "ens33" connection.autoconnect yes   # 开启
nmcli con mod "ens33" connection.autoconnect no    # 关闭

配置生效

nmcli con down "ens33" && nmcli con up "ens33"     # 推荐
# 或: nmcli con up "ens33"
# 或: nmcli con reload

四、连接删除与停用

停用 / 启用

nmcli con down "ens33"
nmcli con up "ens33"
nmcli device disconnect ens33          # 断开设备
nmcli device set ens33 managed no      # 取消NM管理
nmcli device set ens33 managed yes     # 恢复NM管理

删除连接

nmcli con delete "连接名称"
nmcli con del "连接名称"

临时清除 IP

ip addr flush dev ens33

五、网络调试排查

基础连通性

ping -c 4 192.168.1.1
ping -c 4 8.8.8.8
ping -c 4 www.baidu.com
ip route get 8.8.8.8
ss -tulnp                              # 查看端口

NM 日志

journalctl -u NetworkManager -f        # 实时日志
journalctl -u NetworkManager --no-pager -n 50

DNS 排查

nslookup www.baidu.com
dig www.baidu.com
host www.baidu.com
resolvectl status

标准排查步骤

  1. 网卡是否 UP:ip link show ens33
  2. 是否有 IP:ip addr show ens33
  3. 路由是否正确:ip route
  4. 防火墙状态:systemctl status firewalld / firewall-cmd --list-all
  5. NM 服务状态:systemctl status NetworkManager
  6. 配置文件检查:ls -l /etc/NetworkManager/system-connections/

重启网络

systemctl restart NetworkManager
nmcli con reload

六、网卡绑定 Bonding

常用模式

模式 名称 说明 交换机要求
0 balance-rr 轮询负载均衡 需交换机配置
1 active-backup 主备冗余(最常用) 不需交换机配置
4 802.3ad (LACP) 链路聚合 需交换机配置 LACP

active-backup 配置

# 1. 创建bond0
nmcli con add type bond con-name bond0 ifname bond0 mode active-backup
nmcli con mod bond0 bond.options "mode=active-backup,miimon=100"

# 2. 添加从属网卡(先down原有连接)
nmcli con down "ens33" 2>/dev/null
nmcli con down "ens37" 2>/dev/null
nmcli con add type ethernet slave-type bond con-name bond0-slave1 ifname ens33 master bond0
nmcli con add type ethernet slave-type bond con-name bond0-slave2 ifname ens37 master bond0

# 3. 配置IP
nmcli con mod bond0 ipv4.addresses 192.168.1.100/24
nmcli con mod bond0 ipv4.gateway 192.168.1.1
nmcli con mod bond0 ipv4.dns "8.8.8.8;114.114.114.114"
nmcli con mod bond0 ipv4.method manual

# 4. 启动
nmcli con up bond0
nmcli con up bond0-slave1
nmcli con up bond0-slave2

LACP(802.3ad)配置

nmcli con add type bond con-name bond0 ifname bond0 mode 802.3ad
nmcli con mod bond0 bond.options "mode=802.3ad,miimon=100,lacp_rate=fast,xmit_hash_policy=layer3+4"
nmcli con add type ethernet slave-type bond con-name bond0-s1 ifname ens33 master bond0
nmcli con add type ethernet slave-type bond con-name bond0-s2 ifname ens37 master bond0
nmcli con mod bond0 ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.method manual
nmcli con up bond0

查看状态

cat /proc/net/bonding/bond0
nmcli con show
nmcli dev status
ip a show bond0

删除 Bond

nmcli con down bond0
nmcli con delete bond0 bond0-slave1 bond0-slave2

注意事项

  • 从属网卡不要单独配 IP
  • 原有连接建议删除或禁用 autoconnect
  • 虚拟机优先用 active-backup

七、网桥 Bridge

配置网桥

# 1. 创建网桥
nmcli con add type bridge con-name br0 ifname br0

# 2. 物理网卡加入网桥(不配IP)
nmcli con add type ethernet slave-type bridge con-name br0-slave1 ifname ens33 master br0

# 3. 网桥配IP
nmcli con mod br0 ipv4.addresses 192.168.1.100/24
nmcli con mod br0 ipv4.gateway 192.168.1.1
nmcli con mod br0 ipv4.dns "8.8.8.8"
nmcli con mod br0 ipv4.method manual

# 4. 可选STP
nmcli con mod br0 bridge.stp yes
nmcli con mod br0 bridge.forward-delay 2

# 5. 启动
nmcli con up br0
nmcli con up br0-slave1

查看

nmcli con show
ip a show br0
bridge link
bridge fdb show

删除

nmcli con down br0
nmcli con delete br0 br0-slave1

注意事项

  • IP 配在桥上,不要配在物理口
  • 云主机 / 虚拟化环境需确认支持桥接

八、VLAN 配置

单 VLAN 配置

# 物理口ens33, VLAN ID 100, 接口名ens33.100
nmcli con add type vlan con-name vlan100 ifname ens33.100 dev ens33 id 100
nmcli con mod vlan100 ipv4.addresses 192.168.100.10/24
nmcli con mod vlan100 ipv4.gateway 192.168.100.1
nmcli con mod vlan100 ipv4.dns "8.8.8.8"
nmcli con mod vlan100 ipv4.method manual
nmcli con up vlan100

多 VLAN

nmcli con add type vlan con-name vlan200 ifname ens33.200 dev ens33 id 200
nmcli con mod vlan200 ipv4.addresses 192.168.200.10/24 ipv4.method manual
nmcli con up vlan200

VLAN + Bridge

nmcli con add type vlan con-name vlan100 ifname ens33.100 dev ens33 id 100
nmcli con add type bridge con-name br-vlan100 ifname br-vlan100
nmcli con add type ethernet slave-type bridge con-name br-vlan100-slave ifname ens33.100 master br-vlan100
nmcli con mod br-vlan100 ipv4.addresses 192.168.100.10/24 ipv4.method manual
nmcli con up br-vlan100

查看

ip -d link show ens33.100
cat /proc/net/vlan/config
nmcli con show vlan100

删除

nmcli con down vlan100
nmcli con delete vlan100

注意事项

  • 交换机端口需为 trunk 并放行对应 VLAN
  • 物理口通常不再直接配业务 IP

九、防火墙 firewalld

状态查看

systemctl status firewalld
firewall-cmd --state
firewall-cmd --list-all
firewall-cmd --list-ports
firewall-cmd --list-services

开放端口

firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --reload

开放服务

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

删除端口

firewall-cmd --permanent --remove-port=80/tcp
firewall-cmd --reload

临时关闭(仅调试)

systemctl stop firewalld

十、常见故障速查

故障 1:静态 IP 后无法上网

  • 排查:ip a / ip r / cat /etc/resolv.conf / ping 网关 / ping 外网
  • 原因:网关错误 / DNS 未配 / method 仍为 auto / 防火墙拦截
  • 处理:修正 gateway / 设置 dns / ipv4.method manual / 临时关防火墙

故障 2:nmcli up 失败

  • 排查:journalctl -u NetworkManager -n 80 / nmcli dev status / nmcli con show
  • 处理:检查冲突连接 / 禁用 autoconnect / 重新 up

故障 3:重启后网络丢失

  • 原因:autoconnect 未开启
  • 处理:nmcli con mod "ens33" connection.autoconnect yes + systemctl enable NetworkManager

故障 4:有 IP 但间歇丢包

  • 排查:ping -c 100 网关 / ethtool ens33 / dmesg | tail -50
  • 原因:双工速率不匹配 / 线缆故障 / Bond 环路 / CPU 软中断高

故障 5:Bond 不生效

  • 排查:cat /proc/net/bonding/bond0
  • 处理:确认 slave 已 up / active-backup 看 Active Slave / 802.3ad 确认交换机 LACP / 建议 miimon=100

故障 6:网桥后物理机断网

  • 原因:IP 仍留在物理口 / 物理口未正确 enslav
  • 处理:通过控制台操作 / IP 只配在 br0 / 物理口仅作 bridge slave

故障 7:VLAN 不通

  • 排查:ip -d link show ens33.100 / tcpdump -i ens33 -nn -e vlan
  • 检查:VLAN ID 与交换机一致 / 对端 trunk / 本机防火墙 / 网关网段

故障 8:DNS 解析失败但 IP 能通

  • 排查:ping 8.8.8.8(通)/ ping www.baidu.com(失败)
  • 处理:
nmcli con mod ens33 ipv4.dns "8.8.8.8 114.114.114.114"
nmcli con mod ens33 ipv4.ignore-auto-dns yes  # 防DHCP覆盖
nmcli con up ens33

故障 9:NM 与 ip 命令冲突

  • 说明:手动 ip addr add 重启后丢失属正常
  • 处理:持久化请用 nmcli

故障 10:虚拟机网络异常

  • 检查:虚拟网卡模式(桥接 / NAT / 仅主机)
  • 桥接下宿主机网卡 / 交换机是否允许
  • 克隆后 MAC 冲突 → 重新生成 MAC:nmcli con mod "ens33" 802-3-ethernet.mac-address ""

十一、命令速查表

操作 命令
查看连接 nmcli con show
查看设备 nmcli dev status
启用连接 nmcli con up "名称"
断开连接 nmcli con down "名称"
删除连接 nmcli con del "名称"
修改 IP nmcli con mod "名称" ipv4.addresses x.x.x.x/24
修改网关 nmcli con mod "名称" ipv4.gateway x.x.x.x
修改 DNS nmcli con mod "名称" ipv4.dns "x.x.x.x"
静态 / DHCP ipv4.method manual / auto
重载配置 nmcli con reload
重启 NM systemctl restart NetworkManager
实时日志 journalctl -u NetworkManager -f
TUI 配置 nmtui
查看 IP ip a
查看路由 ip r
查看 Bond cat /proc/net/bonding/bond0
查看 VLAN cat /proc/net/vlan/config
放行端口 firewall-cmd --permanent --add-port=端口/tcp && firewall-cmd --reload

十二、实战建议

  1. 优先 nmcli,避免直接改文件导致权限 / 格式问题
  2. 修改后执行 nmcli con upnmcli con reload
  3. 生产改网络前确保有带外控制台(iDRAC / iLO / KVM)
  4. 静态 IP 一次性确认:IP、前缀、网关、DNS、method
  5. Bond / Bridge / VLAN 变更极易断网,分步做并保留回退连接
  6. 同一网卡避免被多个 connection 同时 autoconnect
  7. 虚拟机注意网卡模式与 MAC 变化
  8. 安装工具:dnf install net-tools tcpdump -y
  9. 抓包:tcpdump -i ens33 -nn host 192.168.1.1
  10. 配置备份:
cp -a /etc/NetworkManager/system-connections/ /root/nm-backup-$(date +%F)/
nmcli con show > /root/nm-con-list-$(date +%F).txt

十三、一键网络信息脚本

保存为 netinfo.shchmod +x netinfo.sh 后执行:

#!/bin/bash
echo "========== 主机名 =========="
hostnamectl --static 2>/dev/null || hostname
echo

echo "========== 设备状态 =========="
nmcli dev status 2>/dev/null || true
echo

echo "========== 连接信息 =========="
nmcli con show 2>/dev/null || true
echo

echo "========== IP 地址 =========="
ip -br a
echo

echo "========== 路由 =========="
ip r
echo

echo "========== DNS =========="
cat /etc/resolv.conf 2>/dev/null
echo

echo "========== Bond =========="
ls /proc/net/bonding/ 2>/dev/null && cat /proc/net/bonding/* 2>/dev/null || echo "无"
echo

echo "========== VLAN =========="
cat /proc/net/vlan/config 2>/dev/null || echo "无"
echo

echo "========== 防火墙 =========="
firewall-cmd --state 2>/dev/null || echo "firewalld 未运行"
echo

echo "========== NetworkManager =========="
systemctl is-active NetworkManager 2>/dev/null || true

整理自日常运维实践,适用于 openEuler 24.03 LTS 网络管理场景。

posted @ 2026-07-31 14:29  Py.qi  阅读(4)  评论(0)    收藏  举报