Linux服务器手动修改IP
一、操作前准备
以 root 用户登录,或在所有命令前加 sudo。
先确认当前网卡名称和 IP:
ip addr
常见网卡名如:eth0、ens33、enp0s3 等。
修改前建议备份配置文件,方便回滚。
二、临时修改 IP(重启后失效,所有发行版通用)
提示
只临时测试新 IP,可使用此方法。
查看当前 IP:
ip addr show dev ens33
将 ens33 替换为实际网卡名。
删除旧 IP(示例:旧 IP 为 192.168.1.10/24):
ip addr del 192.168.1.10/24 dev ens33
添加新 IP(示例:新 IP 为 192.168.1.20/24):
ip addr add 192.168.1.20/24 dev ens33
如需设置默认网关(示例:网关 192.168.1.1): 先删除旧网关(如有):
ip route
ip route del default via 192.168.1.1
添加新网关:
ip route add default via 192.168.1.1
检查结果:
ip addr show dev ens33
ip route
ping -c 4 114.114.114.114
三、永久修改 IP(常见发行版)
3.1 CentOS 6/7(使用 ifcfg 配置文件)
配置文件路径:/etc/sysconfig/network-scripts/ifcfg-网卡名
确认网卡名:
ip addr
备份原配置:
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33.bak
将 ens33 换成实际网卡名。
编辑配置文件:
vi ifcfg-ens33
参考配置(静态 IP 示例):
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.20
PREFIX=24
GATEWAY=192.168.1.1
DNS1=114.114.114.114
DNS2=8.8.8.8
说明:
IPADDR:新 IP
PREFIX:子网掩码位数(24 对应 255.255.255.0)
GATEWAY:默认网关
DNS1/DNS2:DNS 服务器
重启网络服务:
CentOS 7:
systemctl restart network
CentOS 6:
service network restart
检查:
ip addr show dev ens33
ip route
ping -c 4 114.114.114.114
ping -c 4 www.baidu.com
3.2 CentOS 8 / Rocky / AlmaLinux(使用 NetworkManager + nmcli)
查看连接名称(不是网卡名):
nmcli connection show
记住对应的 NAME,如:System ens33 或 ens33。
查看当前配置:
nmcli connection show "ens33"
修改为静态 IP(示例:IP 192.168.1.20/24,网关 192.168.1.1):
nmcli connection modify "ens33" ipv4.addresses 192.168.1.20/24
nmcli connection modify "ens33" ipv4.gateway 192.168.1.1
nmcli connection modify "ens33" ipv4.dns "114.114.114.114 8.8.8.8"
nmcli connection modify "ens33" ipv4.method manual
重新启用连接:
nmcli connection down "ens33"
nmcli connection up "ens33"
检查:
ip addr show dev ens33
ip route
ping -c 4 www.baidu.com
3.3 Ubuntu 18.04 及以上(使用 netplan)
配置文件路径:/etc/netplan/*.yaml
列出 netplan 文件:
ls /etc/netplan/
常见如:01-netcfg.yaml、50-cloud-init.yaml 等。
备份配置:
cd /etc/netplan/
cp 01-netcfg.yaml 01-netcfg.yaml.bak
编辑配置文件:
vi 01-netcfg.yaml
示例配置(静态 IP):
network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: no
addresses:
- 192.168.1.20/24
gateway4: 192.168.1.1
nameservers:
addresses: [114.114.114.114, 8.8.8.8]
注意:
缩进必须使用空格,不能用 Tab。
ens33 替换为实际网卡名。
IP、网关、DNS 按实际情况修改。
应用配置:
netplan apply
检查:
ip addr show dev ens33
ip route
ping -c 4 114.114.114.114
ping -c 4 www.baidu.com
3.4 Ubuntu 16.04 / Debian(使用 /etc/network/interfaces)
备份配置文件:
cp /etc/network/interfaces /etc/network/interfaces.bak
编辑配置:
vi /etc/network/interfaces
示例配置(静态 IP):
auto ens33
iface ens33 inet static
address 192.168.1.20
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 114.114.114.114 8.8.8.8
根据实际网卡名和 IP 修改。
重启网络服务:
systemctl restart networking
或
service networking restart
检查:
ip addr show dev ens33
ip route
ping -c 4 www.baidu.com
四、修改 IP 时的通用检查步骤
查看 IP 是否生效:
ip addr show dev ens33
查看路由和网关是否正确:
ip route
应存在类似:
default via 192.168.1.1 dev ens33
测试外网连通性:
ping -c 4 114.114.114.114
ping -c 4 www.baidu.com
如果是服务器,通过控制台(云厂商提供的 VNC/控制台)再次确认,以防 SSH 连接中断后无法登录。
五、常见问题与排查思路
修改 IP 后 SSH 断开且无法连接
检查:
新 IP 是否和服务器所在网段一致。
是否配置了正确的网关和掩码。
云服务器安全组、防火墙是否放通 22 端口。
能 ping 通网关,但不能访问外网
检查:
ip route 是否有默认路由 default via 网关。
DNS 是否配置正确,可尝试:
ping -c 4 8.8.8.8
能 ping IP 但不能 ping 域名,则问题在 DNS。
DNS 配置位置(部分系统)
常见文件:/etc/resolv.conf
示例内容:
nameserver 114.114.114.114
nameserver 8.8.8.8
子网掩码错误导致无法通信
典型示例:实际网段是 192.168.1.0/24,却配置为 255.255.0.0 或其它。
一般家用或中小企业局域网掩码为 255.255.255.0(即 /24)。
恢复到修改前状态
直接用之前的备份文件覆盖:
cp ifcfg-ens33.bak ifcfg-ens33
或
cp 01-netcfg.yaml.bak 01-netcfg.yaml
然后重启网络服务或 netplan apply
六、简要操作流程总结(记住这几个步骤)
确认网卡名:
ip addr
修改对应配置文件或使用 nmcli / netplan。
重启网络服务或应用配置:
CentOS:systemctl restart network 或 nmcli connection down/up
Ubuntu:netplan apply 或 systemctl restart networking
检查:
ip addr
ip route
ping -c 4 114.114.114.114
ping -c 4 www.baidu.com