在Linux系统中配置IP地址,传统方式依赖ifconfig和route这类net-tools工具,而现代发行版普遍采用iproute2提供的ip命令。掌握正确的命令不仅可以让服务器立刻联通网络,还能避免因配置临时生效而重启失效的问题。本文围绕实际配置场景,详细说明不同命令的用法与持久化方案。

一、临时配置IP地址的常用命令
如果只是调试网络或临时接入,使用ip命令最为直接。ip命令的语法结构为ip [选项] 对象 [命令],其中对象可以是addr、link、route等。配置地址时主要操作addr和link对象,先要让网卡处于up状态,再添加IP和掩码。
下面这段命令将eth0网卡启用,并赋予192.168.1.10、掩码24位的地址,同时设置默认网关。这些改动在重启后就会丢失,适合排障时使用。
# 启用网卡 ip link set eth0 up # 添加IP地址和掩码 ip addr add 192.168.1.10/24 dev eth0 # 添加默认网关 ip route add default via 192.168.1.1 dev eth0 # 查看结果 ip addr show eth0
相比旧的ifconfig,ip addr add不会自动激活网卡,因此必须先用ip link set up。另外,旧命令ifconfig eth0 192.168.1.10 netmask 255.255.255.0在部分新系统里已默认不安装,强行使用反而增加排错成本。
使用ip route查看路由表时,能确认默认网关是否指向正确设备。若发现ping不通网关,优先检查链路层和地址掩码是否匹配,而不是反复重启服务。
二、让配置永久生效的方法
生产环境绝不能只用命令行临时配通,必须写入配置文件。Debian系通常编辑/etc/network/interfaces,而RHEL系使用/etc/sysconfig/network-scripts/ifcfg-eth0,新版本则转向NetworkManager的nmcli或netplan。
以Debian为例,在interfaces里声明静态地址后,重启networking服务即可自动应用。这种方式把IP、网关、DNS集中管理,比敲命令更不容易出错。
# /etc/network/interfaces 示例
auto eth0
iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8
Ubuntu 18.04之后改用netplan,配置写在/etc/netplan/01-netcfg.yaml,语法为YAML,注意缩进。写完执行netplan apply就能生效,且重启不丢。
network:
version: 2
ethernets:
eth0:
addresses: [192.168.1.10/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8]
如果机器由云厂商提供,通常禁用传统文件而用cloud-init,此时手动改文件会被覆盖。应当用厂商控制台或metadata接口下发网络配置,否则重启后地址又会变回模板值。
三、命令对比与避坑要点
很多资料把ifconfig和ip混为一谈,其实二者底层调用不同。ifconfig读写的是废弃的ioctl接口,ip通过netlink与内核通信,能感知到更细的状态变化,比如次地址、广播地址的精确控制。
一个常见误区是用ip addr add添加同网段多个地址后,以为ifconfig能看到全部,实际旧工具只显示主地址。排查服务监听异常时,应以ip addr的输出为准。
| 工具 | 是否维护 | 配置持久化 | 推荐度 |
|---|---|---|---|
| ifconfig | 已停止 | 不支持 | 低 |
| ip | 活跃 | 需配合文件 | 高 |
| nmcli | 活跃 | 支持 | 高 |
另一个坑是掩码写法。ip命令接受CIDR如/24,若写成255.255.255.0会报错。写配置文件时反而要用点分十进制,二者不能弄反。
当服务器有多网卡时,默认路由只能有一个,错误添加多条默认路由会造成流量乱走。用ip route del可删除多余项,再用tracepath确认路径。
四、使用nmcli快速配置
在桌面或使用了NetworkManager的服务器,nmcli是最省事的方式。它把连接抽象成connection,修改后自动写盘,不需要记文件位置。
# 创建静态连接 nmcli con add type ethernet ifname eth0 con-name static-eth0 ipv4.method manual ipv4.addresses 192.168.1.10/24 ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8 # 启用 nmcli con up static-eth0
nmcli的优势在于脚本化稳定,不会因为发行版文件路径变化而失效。对经常批量部署的场景,用一条命令即可统一网卡命名和地址规划。
如果原先有DHCP连接,可先用nmcli con show列出,再delete掉避免冲突。这样静态配置才会真正成为开机首选。
五、验证与排错流程
配完地址第一件事是ip addr确认存在,第二用ip route看默认网关,第三ping网关和DNS。三层都通才算基础网络正常。
若ping自己地址不通,多为网卡没up或namespace隔离;ping网关不通查掩码和交换机口;ping外网不通查网关和DNS。按层推进比盲目重启快得多。
ip addr show ip route ping -c 4 192.168.1.1 ping -c 4 8.8.8.8
遇到顽固问题,可借助tcpdump在eth0抓包,看ARP是否拿到网关回应。很多所谓配置错实际是网线没插紧或VLAN不对,命令层面无可奈何,只能从物理和交换侧入手。
综上,linux配置ip地址命令以ip addr和ip route为核心,临时调试足够,持久化则结合发行版机制或nmcli。理解这套逻辑,无论换到哪台机器都能从容联网。
linuxip_addressnetwork_config修改时间:2026-08-07 07:27:31