ifconfig 命令在新版系统中默认未安装,需手动安装 net-tools;其配置为覆盖式且不处理路由,而 ip addr 为追加式并支持现代网络功能。

ifconfig 命令还能用吗?先看它是不是在系统里
大多数新装的 Ubuntu 24.04+、CentOS Stream 9、AlmaLinux 9 或 Fedora 38+ 默认已不带 ifconfig —— 它不是“坏了”,是压根没装。你敲 ifconfig 报错 command not found,大概率就是这个原因。
- Ubuntu/Debian:运行
sudo apt install net-tools - RHEL/CentOS/Alma/Rocky:运行
sudo dnf install net-tools(或yum install net-tools) - 装完后
ifconfig才能用,但注意:它只管 IPv4 临时配置,不处理路由、策略路由、多 IP 标签等现代需求
ip addr 和 ifconfig 配 IP,效果一样吗?
不一样。最根本的区别是:ifconfig eth0 192.168.1.10 netmask 255.255.255.0 是「覆盖式赋值」——它会清掉该接口上所有已有 IPv4 地址,只留这一个;而 ip addr add 192.168.1.10/24 dev eth0 是「追加式」,原有地址(比如 DHCP 分到的)还在,除非你显式用 ip addr flush dev eth0 清空。
- 临时调试想快速换 IP?用
ifconfig更直觉,但得记得先ifconfig eth0 down再 up,否则可能卡住 - 要给一个接口配多个 IP(比如做 VIP、容器宿主、Web 多站点绑定)?必须用
ip addr add,ifconfig不支持 -
ip命令还自带状态反馈:ip addr show eth0能清晰看到每个地址带scope global还是scope link,ifconfig只混着列
为什么改完 IP 还 ping 不通?网关和路由常被忽略
配好 IP 只是第一步。没有默认路由,包根本出不去;没有对应网段路由,连同网段机器都通不了。
-
ifconfig不动路由表 —— 你得额外跑route add default gw 192.168.1.1或ip route add default via 192.168.1.1 - 如果用了
ip addr add却忘了ip link set eth0 up,接口实际是DOWN状态(ip link show eth0看state DOWN就知道) - 某些发行版(如 Ubuntu with Netplan)启用 systemd-networkd 后,手动用
ip配的地址重启即丢,且可能被后台服务自动覆盖 —— 这时候硬改不如去改/etc/netplan/*.yaml
临时配 IP 的底线操作:三步闭环
别只输一条命令就去 ping。真正能通的最小闭环是:
- 确认接口名:
ip -br link show | grep UP(别猜eth0,可能是ens33、enp0s3或eno1) - 配地址并 up:例如
sudo ip addr add 192.168.1.100/24 dev ens33 && sudo ip link set ens33 up - 加默认路由:例如
sudo ip route add default via 192.168.1.1(网关必须和新 IP 在同一子网)
做完立刻验证:ip addr show ens33 看地址是否生效,ip route show 看路由对不对,最后再 ping -c2 192.168.1.1。少一步,就可能白忙十分钟。










