ip命令替代ifconfig需分清addr/link/route子命令;地址增删须带CIDR;路由不持久需写配置文件;systemd-networkd要求文件名和网卡名严格匹配;nmcli修改后须down/up生效。

ip 命令替代 ifconfig 的实操要点
现在 ifconfig 已被标记为废弃,ip 是唯一推荐的网络配置工具。它不是“更好用的 ifconfig”,而是设计逻辑完全不同——地址、路由、链路状态分属不同子命令,混用会直接失效。
-
ip addr show查 IP,但ip addr add 192.168.1.10/24 dev eth0不会自动 up 接口,必须额外执行ip link set eth0 up - 删除地址不能只写
ip addr del,必须带完整 CIDR:ip addr del 192.168.1.10/24 dev eth0,漏掉/24会报RTNETLINK answers: Invalid argument -
ip route默认不持久化,重启即丢;想永久生效得写进/etc/network/interfaces(Debian)或/etc/sysconfig/network-scripts/route-eth0(RHEL)
systemd-networkd 配置静态 IP 的常见失败点
用 systemd-networkd 时,.network 文件看似简单,但路径、优先级、依赖顺序稍错就静默不生效。
- 文件必须放在
/etc/systemd/network/下,且后缀严格为.network;eth0.network.bak或eth0.conf都会被忽略 - DHCP 和静态 IP 不能共存于同一文件:启用
[DHCP]后再写[Address],systemd-networkd 会跳过静态配置,不报错也不提示 - 网卡名要和
ip link show输出完全一致,eno1写成enp0s3或eth0,服务启动时日志里只有Could not generate persistent MAC address这种误导信息
route 命令和 ip route 的兼容性陷阱
route 是老工具,输出格式固定,但内核路由表实际由 ip route 管理;两者显示结果可能不一致,尤其在多路径或策略路由场景下。
WOC是基于zend framework1.6框架所开发的一款开源简易网站运营管理系统。它允许进行网站管理、主机管理、域名管理、数据库管理、邮箱管理以及用户管理、角色管理、权限管理等一系列功能,适合中小企业进行网站运营管理。目前版本为V1.2,新版本正在开发中,同时欢迎大家参与到开发中来! WOC升级说明: 1.1在1.0的基础上进行了代码规范并增加了配置数据缓存,以提高访问速度 注意:升级时要重
-
route -n不显示 metric、scope、protocol 字段,而ip route show table all才能看到完整路由决策链 - 用
route add -host 10.0.0.5 gw 192.168.2.1添加的路由,ip route里会显示为10.0.0.5 via 192.168.2.1 dev eth0 proto static scope link,其中scope link表示该路由仅限直连,若网关不可达,这条路由不会触发 ARP,也不会 fallback - 脚本中混用
route和ip route清理路由,容易漏删某条规则——route del不支持 table 指定,而ip route flush table 100可精准清除策略路由表
nmcli 修改连接后不生效的典型原因
nmcli 操作的是 NetworkManager 的运行时配置,但底层是否真正下发,取决于 connection 的 autoconnect、interface-name 和设备当前状态。
- 改完
nmcli connection modify "Wired connection 1" ipv4.addresses "192.168.3.20/24"后,必须nmcli connection down "Wired connection 1" && nmcli connection up "Wired connection 1",只 reload 不触发重协商 - 如果网卡已被
systemd-networkd或ifupdown占用,NetworkManager 会自动禁用该连接,nmcli device status显示unmanaged,此时任何nmcli connection modify都无效 -
ipv4.method manual必须显式设置,否则即使填了 addresses,NM 仍按auto处理,会尝试 DHCP 并覆盖你的静态配置
网络配置的麻烦不在命令记不住,而在每个工具背后都有一套隐含的状态机——ip link 管物理层,ip addr 管协议地址,ip route 管转发路径,systemd-networkd 管声明式定义,NetworkManager 管桌面交互生命周期。它们可以共存,但边界一旦模糊,问题就藏在日志最不显眼的那一行里。









