在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.yamlnetwork下的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 applyCentOS/RHEL系统的永久配置(NetworkManager)
nmcli命令行工具或直接编辑ifcfg文件来管理网络,这里重点介绍更符合现代运维习惯的nmcli工具。
nmcli connection showSystem 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 manualsudo 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=yessudo 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.comNetworkManager服务处于运行状态,如果是远程服务器修改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,这些命令可以重新加载配置文件并应用设置,而无需重启整个操作系统。







