在Linux系统中修改IP地址是网络管理的基础操作,其核心上文归纳在于:修改IP地址必须区分“临时生效”与“永久生效”两种场景,临时修改通常使用ip命令,操作即时生效但重启后失效;永久修改则需根据Linux发行版的不同,编辑特定的网络配置文件(如Debian/Ubuntu系的Netplan或CentOS/RHEL系的NetworkManager脚本),并重启网络服务才能生效,掌握这两类方法的区别与适用场景,是保障服务器网络稳定性的关键。

使用ip命令进行临时修改
ip命令是Linux内核自带的现代网络配置工具,功能强大且优先于老旧的ifconfig,此方法适用于测试环境或临时的网络调整,无需重启服务即可立即应用。
添加或修改IP地址
若要为网卡eth0添加IP地址168.1.100,子网掩码为24(即255.255.255.0),可以使用以下命令:
ip addr add 192.168.1.100/24 dev eth0
如果该网卡上已存在IP地址,建议先使用ip addr del命令删除原IP,或者使用replace参数直接替换,以避免冲突。
删除IP地址
当需要释放某个IP时,执行:
ip addr del 192.168.1.100/24 dev eth0
启用与禁用网卡
修改IP后,确保网卡处于启动状态:
ip link set eth0 up
注意:使用ip命令所做的所有更改,在系统重启或网络服务重启后都会丢失,因此它不适用于生产环境的长期配置。
Ubuntu/Debian系统的永久配置(Netplan)
对于Ubuntu 18.04及更高版本,以及采用Netplan的Debian系统,网络配置文件位于/etc/netplan/目录下,通常以.yaml
编辑配置文件
首先使用文本编辑器打开配置文件,例如00-installer-config.yaml:
sudo vim /etc/netplan/00-installer-config.yaml
配置静态IP
在文件中修改network下的ethernets配置,YAML格式对缩进极其敏感,必须严格使用空格缩进,不能使用Tab键。
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no # 关闭DHCP
addresses:
192.168.1.100/24
routes:
to: default
via: 192.168.1.1 # 网关地址
nameservers:
addresses: [8.8.8.8, 114.114.114.114]
应用配置
编辑完成后,保存并退出,执行以下命令使配置生效,此命令会测试配置语法并在正确的情况下应用:
sudo netplan apply
CentOS/RHEL系统的永久配置(NetworkManager)
在CentOS 7、8、9及RHEL系统中,推荐使用nmcli命令行工具或直接编辑ifcfg文件来管理网络,这里重点介绍更符合现代运维习惯的nmcli工具。

使用nmcli修改静态IP
首先查看当前连接名称:
nmcli connection show
假设连接名称为System eth0,执行以下命令将其修改为静态IP:
sudo nmcli connection modify "System eth0" ipv4.addresses 192.168.1.100/24 sudo nmcli connection modify "System eth0" ipv4.gateway 192.168.1.1 sudo nmcli connection modify "System eth0" ipv4.dns "8.8.8.8 114.114.114.114" sudo nmcli connection modify "System eth0" ipv4.method manual
重启网络连接
配置修改后,需要重启连接以生效:
sudo nmcli connection up "System eth0"
传统文件编辑方式(备用)
若习惯编辑文件,可修改/etc/sysconfig/network-scripts/ifcfg-eth0:
BOOTPROTO=static IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 ONBOOT=yes
保存后执行sudo systemctl restart network生效。
网关与DNS的独立配置
除了IP地址,网关和DNS是网络连通性的重要组成部分。
配置网关
网关决定了数据包发出的下一跳,在临时配置中,使用ip route命令:
ip route add default via 192.168.1.1
在永久配置中,如上文所述,需在Netplan或NetworkManager配置中指定。
配置DNS
DNS解析直接影响域名访问,临时修改可直接编辑/etc/resolv.conf,但在现代Linux系统中,该文件通常由系统管理服务自动覆盖。强烈建议在网卡配置文件中指定DNS服务器,以确保持久化。
验证与故障排查
配置完成后,必须进行验证以确保网络功能正常。

查看IP状态
使用ip addr show或简写ip a查看网卡是否已绑定正确的IP地址。
测试连通性
使用ping命令测试网关和外网连通性:
ping -c 4 192.168.1.1 ping -c 4 baidu.com
常见故障处理
如果无法连通,首先检查物理网线连接;其次确认防火墙或SELinux是否阻止了网络流量;对于CentOS系统,确保NetworkManager服务处于运行状态,如果是远程服务器修改IP,务必确保新IP与原IP在同一网段,或者通过其他管理口(如iDRAC/iLO)进行操作,防止因配置错误导致连接中断。
专业见解与最佳实践
在生产环境中,修改IP是一项高风险操作。专业的运维策略是:先进行临时配置测试,确认无误后再写入配置文件,不同云厂商(如阿里云、AWS)的Linux镜像通常经过了定制,可能会通过DHCP强制覆盖手动IP,在这种情况下,必须遵循云厂商提供的元数据服务修改方法,而非直接修改系统配置文件,对于高可用服务器,建议配置多个IP地址或使用虚拟IP(VIP)来实现故障转移,这通常需要配合keepalived等高级工具使用。
相关问答
Q1:在Linux中使用ip命令修改了IP地址,为什么重启后变回了原样?
A1: ip命令作用于内核的网络栈,属于运行时修改,当系统重启或网络服务重启时,系统会重新读取磁盘上的配置文件(如Netplan的yaml文件或NetworkManager的ifcfg文件)来初始化网络,如果配置文件中定义的是旧的IP或DHCP模式,系统就会恢复到原来的设置。ip命令仅适合临时调试,若要永久生效,必须修改对应的配置文件。
Q2:如何在不重启服务器的情况下,让Linux永久生效的IP配置立即应用?
A2: 这取决于使用的网络管理工具,如果是Ubuntu的Netplan,可以使用sudo netplan apply;如果是CentOS的NetworkManager,可以使用sudo nmcli connection up "连接名"或sudo systemctl restart NetworkManager,这些命令可以重新加载配置文件并应用设置,而无需重启整个操作系统。
互动环节:
如果您在修改Linux IP地址的过程中遇到特定的发行版兼容性问题,或者有更高效的网络管理脚本需求,欢迎在评论区分享您的具体场景,我们可以共同探讨最佳解决方案。

















