在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系统,网络配置文件位于 编辑配置文件
首先使用文本编辑器打开配置文件,例如 配置静态IP
在文件中修改 应用配置
编辑完成后,保存并退出,执行以下命令使配置生效,此命令会测试配置语法并在正确的情况下应用: 在CentOS 7、8、9及RHEL系统中,推荐使用 使用nmcli修改静态IP
首先查看当前连接名称: 假设连接名称为 重启网络连接
配置修改后,需要重启连接以生效: 传统文件编辑方式(备用)
若习惯编辑文件,可修改 保存后执行 除了IP地址,网关和DNS是网络连通性的重要组成部分。 配置网关
网关决定了数据包发出的下一跳,在临时配置中,使用 在永久配置中,如上文所述,需在Netplan或NetworkManager配置中指定。 配置DNS
DNS解析直接影响域名访问,临时修改可直接编辑 配置完成后,必须进行验证以确保网络功能正常。 查看IP状态
使用 测试连通性
使用 常见故障处理
如果无法连通,首先检查物理网线连接;其次确认防火墙或SELinux是否阻止了网络流量;对于CentOS系统,确保 在生产环境中,修改IP是一项高风险操作。专业的运维策略是:先进行临时配置测试,确认无误后再写入配置文件,不同云厂商(如阿里云、AWS)的Linux镜像通常经过了定制,可能会通过DHCP强制覆盖手动IP,在这种情况下,必须遵循云厂商提供的元数据服务修改方法,而非直接修改系统配置文件,对于高可用服务器,建议配置多个IP地址或使用虚拟IP(VIP)来实现故障转移,这通常需要配合 Q1:在Linux中使用 Q2:如何在不重启服务器的情况下,让Linux永久生效的IP配置立即应用?
A2: 这取决于使用的网络管理工具,如果是Ubuntu的Netplan,可以使用 互动环节:
如果您在修改Linux IP地址的过程中遇到特定的发行版兼容性问题,或者有更高效的网络管理脚本需求,欢迎在评论区分享您的具体场景,我们可以共同探讨最佳解决方案。/etc/netplan/目录下,通常以.yaml
00-installer-config.yaml:sudo vim /etc/netplan/00-installer-config.yaml
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)
nmcli命令行工具或直接编辑ifcfg文件来管理网络,这里重点介绍更符合现代运维习惯的nmcli工具。
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 route命令:ip route add default via 192.168.1.1
/etc/resolv.conf,但在现代Linux系统中,该文件通常由系统管理服务自动覆盖。强烈建议在网卡配置文件中指定DNS服务器,以确保持久化。验证与故障排查

ip addr show或简写ip a查看网卡是否已绑定正确的IP地址。ping命令测试网关和外网连通性:ping -c 4 192.168.1.1
ping -c 4 baidu.com
NetworkManager服务处于运行状态,如果是远程服务器修改IP,务必确保新IP与原IP在同一网段,或者通过其他管理口(如iDRAC/iLO)进行操作,防止因配置错误导致连接中断。专业见解与最佳实践
keepalived等高级工具使用。
相关问答
ip命令修改了IP地址,为什么重启后变回了原样?
A1: ip命令作用于内核的网络栈,属于运行时修改,当系统重启或网络服务重启时,系统会重新读取磁盘上的配置文件(如Netplan的yaml文件或NetworkManager的ifcfg文件)来初始化网络,如果配置文件中定义的是旧的IP或DHCP模式,系统就会恢复到原来的设置。ip命令仅适合临时调试,若要永久生效,必须修改对应的配置文件。sudo netplan apply;如果是CentOS的NetworkManager,可以使用sudo nmcli connection up "连接名"或sudo systemctl restart NetworkManager,这些命令可以重新加载配置文件并应用设置,而无需重启整个操作系统。






