Linux网络配置怎么查看_ifconfig与ip命令对比【教程】

23次阅读

ip 是当前 Linux 查网络配置的推荐命令,ifconfig 已逐步退出主流支持;ip 功能更全、原生支持 IPv6、可管理多 IP 和路由等,而 ifconfig 仅限接口层且不维护。

Linux 网络配置怎么查看_ifconfig 与 ip 命令对比【教程】

Linux 里查网络配置,ip 是当前推荐的命令,ifconfig 虽然还能用,但已逐步退出主流支持。两者都能看 IP、子网 掩码、接口状态,但底层逻辑、功能范围和长期可用性差别明显。

查看本机所有网卡和 IP 地址

这是最常用的操作:

  • ifconfig:直接运行 ifconfig 显示所有 ** 已启用 ** 的接口;加 -a(即 ifconfig -a)可显示包括关闭状态在内的全部接口
  • ip:用 ip addrip a,默认列出所有接口及其 IPv4/IPv6 地址、作用域(scope)、是否临时(temporary)等信息,更完整也更结构化

注意:ifconfig 不显示 IPv6 地址(除非特别编译支持),而 ip addr 原生支持双 ,且每条地址带标签(如 globallink-local),便于区分用途。

启用、禁用网卡 和临时改 IP

两类命令都能做临时配置,但语法和能力不同:

  • ifconfigifconfig eth0 up 启用,ifconfig eth0 down 关闭;设 IP 写成 ifconfig eth0 192.168.1.50 netmask 255.255.255.0
  • ipip link set eth0 up / down;设 IP 用 ip addr add 192.168.1.50/24 dev eth0,支持 CIDR 格式,一条命令就带掩码,还支持添加多个 IP、删除指定地址(ip addr del ……

关键 区别:ifconfig 修改的是整个接口的主 IP,而 ip 可以在同一接口上叠加多个 IP,且能精确控制生命周期(如 preferred_lft)。

路由、网关和 ARP 表

ifconfig 完全不涉及这些——它只管“接口层”,不碰“网络层”:

  • 查默认网关:ip route show defaultifconfig 没有对应功能,得配合 route -n
  • 查 ARP 缓存:ip neighifconfig 无法查看)
  • 查策略路由或多表路由:ip ruleip route show table 100 —— ifconfig 完全不支持

也就是说,只要涉及路由、隧道、命名空间、流量控制等现代网络场景,ip 是唯一选择。

兼容性与长期使用建议

这不是风格偏好问题,而是维护现实:

  • ifconfig 来自老旧的 net-tools 包,多年无实质更新,Ubuntu 22.04+/CentOS 8+/Fedora 默认不预装,需手动 apt install net-toolsyum install net-tools
  • ip 属于 iproute2,是 Linux 内核官方配套 工具,所有现代发行版默认集成,持续更新,脚本友好,输出稳定易解析
  • 系统启动时的网络配置(如 /etc/network/interfaces/etc/sysconfig/network-scripts/ifcfg-eth0)虽仍沿用 ifconfig 风格参数,但后台实际调用的已是 ip 命令

新环境、自动化脚本、CI/CD 流水线中,一律优先用 ip;仅在排查老系统或阅读遗留文档时遇到 ifconfig,理解其等价写法即可。

text=ZqhQzanResources