一、NetworkManager:不是累赘,是现代化接口
很多老运维习惯 systemctl stop NetworkManager 并启用 network 服务,然后在 /etc/sysconfig/network-scripts/ifcfg-* 里手工改配置。但在 openEuler(以及 RHEL 8+ 系列)中,NetworkManager 是官方推荐的网络管理工具,network 服务已被标记为废弃,未来版本可能移除。
NetworkManager 的三大优势:
- 统一管理:物理网卡、Bond、Bridge、VLAN、WiFi、VPN 全用一个工具。
- 动态适应:网卡插拔、网络环境变化(如笔记本切换网络)自动响应。
- 配置原子化:通过
nmcli 或 GUI 修改配置后自动生效,避免手工编辑的错误。
常用命令(nmcli 是命令行前端):
注意:openEuler 默认安装后,网卡连接名通常为 System eth0 或按设备名生成。修改配置前建议先 nmcli con show 确认准确名称。
二、Bonding 实战:双网卡聚合提可靠性与带宽
生产环境经常需要将两块物理网卡绑定为一个逻辑接口,实现主备或负载均衡。通过 NetworkManager 可以轻松完成:
场景:两块网卡 ens33、ens34,做主备模式(mode 1),逻辑接口名为 bond0,IP 为 10.0.0.10/24。
验证:cat /proc/net/bonding/bond0 可查看详细状态。测试主备:拔掉 ens33 的网线,流量应无缝切换到 ens34。
常用 Bonding 模式:
mode=0 (balance-rr):轮询,需交换机支持。 mode=1 (active-backup):主备,无需交换机配置,最常用。 mode=4 (802.3ad):动态链路聚合,需交换机 LACP 支持。
三、防火墙:firewalld 与 nftables 的内核进化
3.1 为什么不要再 systemctl stop firewalld?
传统思维里,很多运维觉得防火墙麻烦,直接关掉。但在 openEuler 上,firewalld 后端已经默认切换为 nftables(代替老的 iptables 内核模块)。nftables 带来了:
- 更快的规则匹配:使用哈希表等数据结构。
- 原子规则替换:避免了 iptables 中多条规则分步提交导致的中间状态漏洞。
- 统一工具链:
nft 命令同时处理 IPv4/IPv6/ARP/Bridge。
如果你彻底关闭 firewalld,相当于放弃了系统自带的访问控制。正确的做法是:保留 firewalld,并放行必要的端口。
3.2 firewalld 基础用法(与 CentOS 7 基本相同)
区域(zone)逻辑:不同网卡可以绑定不同区域,例如内网卡放 trusted,外网卡放 public,实现精细控制。
3.3 深入 nftables 直接操作(绕过 firewalld)
对于复杂规则(如限速、NAT、日志记录),firewalld 的抽象可能不够灵活,此时可以直接用 nft 命令。以下是一个限制 SSH 连接频率的示例:
保存规则:nft list ruleset > /etc/nftables/static-rules.nft,并通过 systemd 服务或 firewalld 的 direct 功能持久化(此处不展开)。
建议:95% 的生产场景,使用 firewalld 就足够了。只在性能要求极高或需要特殊匹配时直接使用 nftables。
四、常见网络排障实战
4.1 现象:SSH 连接慢(等待几十秒才出现密码提示)
原因通常是 DNS 反向解析超时。解决方案:
4.2 现象:重启后网卡名变更(如 eth0 变成 ens192)
NetworkManager 默认使用 predictable naming(基于固件/硬件槽位)。可以通过创建 .link 文件固定 MAC 与名称:
4.3 现象:ping 不通外网,但内网正常
排查步骤:
ip route show 确认默认网关存在。 cat /etc/resolv.conf 检查 DNS(注意 NetworkManager 可能动态覆盖它)。 traceroute 8.8.8.8 看哪一跳丢失。 - 检查防火墙是否阻断了 DNS 端口(UDP 53)或 ICMP:
五、运维锦囊:生产环境防火墙策略模板
不要临时用 firewall-cmd 不加 --permanent,否则重启后规则消失。以下是一个安全基线:
六、实验指南
- Bonding 实验:虚拟机增加两块网卡(都桥接或 NAT),配置 mode 1 bond,然后依次禁用其中一块网卡(
nmcli device disconnect ens33),观察 ping 是否中断。 - 防火墙规则演练:先放行 22 端口,然后添加 rich rule 限制只有特定 IP 能 SSH,验证其他 IP 被拒绝。
- nftables 直接操作:添加一条规则,记录所有来自 80 端口的新连接日志,然后用
curl 访问本机 Web 服务,观察内核日志 dmesg | tail。
七、小结与下期预告
本期打破了“关防火墙保平安”的陋习,教会你使用 NetworkManager 和 firewalld 高效管理网络。在现代 Linux 发行版中,这些工具已经非常稳定,关掉它们反而会增加安全风险和维护复杂度。
下期预告:第 4 期《存储管理与文件系统 —— XFS 的进阶与 RAID 实战》。我们将深入 XFS 参数调优、LVM 瘦供给、磁盘故障模拟及数据恢复,让你在面对磁盘写满、坏道等故障时游刃有余。
上期思考答案:执行 dnf upgrade 升级内核后,旧内核不会被删除,只是作为后备启动项保留。要设置默认启动的内核,使用 grubby --set-default /boot/vmlinuz-<新内核版本> 或修改 /etc/default/grub 中的 GRUB_DEFAULT。
本期思考:为什么 firewalld 的 rich rule 比直接的端口放行更安全?在什么场景下你应该使用 firewall-cmd --direct 而不是 rich rule?
一、NetworkManager:不是累赘,是现代化接口
很多老运维习惯
systemctl stop NetworkManager并启用network服务,然后在/etc/sysconfig/network-scripts/ifcfg-*里手工改配置。但在 openEuler(以及 RHEL 8+ 系列)中,NetworkManager 是官方推荐的网络管理工具,network服务已被标记为废弃,未来版本可能移除。NetworkManager 的三大优势:
nmcli或 GUI 修改配置后自动生效,避免手工编辑的错误。常用命令(
nmcli是命令行前端):nmcli connection shownmcli device statusnmcli con mod eth0 ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8nmcli con up eth0nmcli con reload注意:openEuler 默认安装后,网卡连接名通常为
System eth0或按设备名生成。修改配置前建议先nmcli con show确认准确名称。二、Bonding 实战:双网卡聚合提可靠性与带宽
生产环境经常需要将两块物理网卡绑定为一个逻辑接口,实现主备或负载均衡。通过 NetworkManager 可以轻松完成:
场景:两块网卡
ens33、ens34,做主备模式(mode 1),逻辑接口名为bond0,IP 为10.0.0.10/24。验证:
cat /proc/net/bonding/bond0可查看详细状态。测试主备:拔掉 ens33 的网线,流量应无缝切换到 ens34。常用 Bonding 模式:
mode=0(balance-rr):轮询,需交换机支持。mode=1(active-backup):主备,无需交换机配置,最常用。mode=4(802.3ad):动态链路聚合,需交换机 LACP 支持。三、防火墙:firewalld 与 nftables 的内核进化
3.1 为什么不要再
systemctl stop firewalld?传统思维里,很多运维觉得防火墙麻烦,直接关掉。但在 openEuler 上,firewalld 后端已经默认切换为 nftables(代替老的 iptables 内核模块)。nftables 带来了:
nft命令同时处理 IPv4/IPv6/ARP/Bridge。如果你彻底关闭 firewalld,相当于放弃了系统自带的访问控制。正确的做法是:保留 firewalld,并放行必要的端口。
3.2 firewalld 基础用法(与 CentOS 7 基本相同)
区域(zone)逻辑:不同网卡可以绑定不同区域,例如内网卡放
trusted,外网卡放public,实现精细控制。3.3 深入 nftables 直接操作(绕过 firewalld)
对于复杂规则(如限速、NAT、日志记录),firewalld 的抽象可能不够灵活,此时可以直接用
nft命令。以下是一个限制 SSH 连接频率的示例:# 先创建一个表 nft add table inet filter # 添加链(hook input) nft add chain inet filter input { type filter hook input priority 0\; policy accept\; } # 限制 SSH:源 IP 每分钟最多 4 个新连接 nft add rule inet filter input tcp dport 22 ct state new limit rate 4/minute accept # 记录被拒绝的 SSH 连接 nft add rule inet filter input tcp dport 22 drop log prefix "SSH DROP: "保存规则:
nft list ruleset > /etc/nftables/static-rules.nft,并通过 systemd 服务或 firewalld 的 direct 功能持久化(此处不展开)。建议:95% 的生产场景,使用 firewalld 就足够了。只在性能要求极高或需要特殊匹配时直接使用 nftables。
四、常见网络排障实战
4.1 现象:SSH 连接慢(等待几十秒才出现密码提示)
原因通常是 DNS 反向解析超时。解决方案:
4.2 现象:重启后网卡名变更(如 eth0 变成 ens192)
NetworkManager 默认使用 predictable naming(基于固件/硬件槽位)。可以通过创建
.link文件固定 MAC 与名称:4.3 现象:ping 不通外网,但内网正常
排查步骤:
ip route show确认默认网关存在。cat /etc/resolv.conf检查 DNS(注意 NetworkManager 可能动态覆盖它)。traceroute 8.8.8.8看哪一跳丢失。五、运维锦囊:生产环境防火墙策略模板
不要临时用
firewall-cmd不加--permanent,否则重启后规则消失。以下是一个安全基线:六、实验指南
nmcli device disconnect ens33),观察ping是否中断。curl访问本机 Web 服务,观察内核日志dmesg | tail。七、小结与下期预告
本期打破了“关防火墙保平安”的陋习,教会你使用 NetworkManager 和 firewalld 高效管理网络。在现代 Linux 发行版中,这些工具已经非常稳定,关掉它们反而会增加安全风险和维护复杂度。
下期预告:第 4 期《存储管理与文件系统 —— XFS 的进阶与 RAID 实战》。我们将深入 XFS 参数调优、LVM 瘦供给、磁盘故障模拟及数据恢复,让你在面对磁盘写满、坏道等故障时游刃有余。