温馨提示×

linux ifconfig为何已弃用

小樊
44
2026-09-29 03:43:27
栏目: 智能运维

在 Linux 中,ifconfig 被认为已弃用(deprecated),主要原因如下:


1. 它属于旧的网络工具集(net-tools)

ifconfig 来自 net-tools 项目,这个项目:

  • 开发于 20 世纪 80–90 年代
  • 长期不再积极维护
  • 无法很好地支持现代 Linux 网络特性

从 2001 年起,net-tools 基本停止了功能更新。


2. iproute2 成为官方推荐替代

Linux 内核和网络子系统演进后,社区推出了 iproute2 工具集,其中的 ip 命令:

  • 由内核直接支持(基于 netlink)
  • 功能更完整、统一
  • 能管理:
    • 网卡
    • IP 地址
    • 路由
    • 策略路由
    • 网络命名空间
    • VLAN / VXLAN / bridge 等

示例对比:

# 旧
ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up

# 新
ip addr add 192.168.1.10/24 dev eth0
ip link set eth0 up

3. ifconfig 无法正确显示现代网络状态

在很多新系统中,ifconfig:

  • 看不到 all IP addresses(尤其 IPv6)
  • 不显示 虚拟接口、命名空间
  • 对 NetworkManager / systemd-networkd 管理下的网络支持不完整

例如:

  • ifconfig 可能看不到某些接口状态
  • ip addr 才是“真相来源”

4. 发行版逐步移除 net-tools

许多主流发行版已经:

  • 默认 不安装 net-tools
  • 文档明确建议使用 ip

例如:

  • RHEL / CentOS 7+(推荐 ip)
  • Ubuntu(仍可用但通常不预装)
  • Arch Linux(已移除)

5. 学习成本 vs 长期收益

虽然:

  • ifconfig 简单直观
  • 老教程、老脚本大量使用

但:

  • 新系统、新工具、新标准都围绕 ip
  • 掌握 ip 是“现代 Linux 必会技能”

总结一句话

ifconfig 被弃用,不是因为它“不能用”,而是因为它太老、太弱、不再适配现代 Linux 网络。

✅ 推荐做法:

  • 新系统:用 ip
  • 老脚本:可临时保留,但应逐步迁移

如果你愿意,我可以给你一份 ifconfig → ip 命令对照表,方便快速过渡。

0 踩