在Linux系统中,通过命令行修改IP地址是系统管理和运维中的基础操作,无论是临时调整网络配置还是永久设置静态IP,都需要掌握正确的方法,本文将详细介绍不同Linux发行版下临时与永久修改IP的步骤、参数说明及注意事项,帮助读者顺利完成网络配置。
临时修改IP地址(重启后失效)
临时修改IP适用于临时测试或网络调试场景,修改后配置不会写入配置文件,系统重启或网络服务重启后会恢复原样,操作前需确认当前网络状态及网卡名称,常用命令为ip a
(显示网卡及IP信息)或ifconfig
(旧版系统)。
查看当前网络信息
执行ip a
命令,会列出所有网卡及其IP配置,
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:1a:2b:3c:4d:5e brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::21a:2bff:fe3c:4d5e/64 scope link
valid_lft forever preferred_lft forever
其中eth0
为网卡名称,168.1.100/24
为当前IP地址(/24
表示子网掩码255.255.255.0)。
修改IP地址
使用ip addr add
命令添加新的IP地址,格式为:ip addr add <IP地址>/<子网掩码> dev <网卡名>
将eth0
的IP修改为168.1.200
,子网掩码保持/24
:ip addr add 192.168.1.200/24 dev eth0
若需删除临时IP,使用:ip addr del <IP地址>/<子网掩码> dev <网卡名>
修改网关
网关是局域网访问外网的出口,使用ip route add
命令设置:ip route add default via <网关IP> dev <网卡名>
网关为168.1.1
:ip route add default via 192.168.1.1 dev eth0
删除网关命令:ip route del default via <网关IP> dev <网卡名>
修改DNS
DNS用于域名解析,临时修改可直接编辑/etc/resolv.conf
文件:echo "nameserver 8.8.8.8" >> /etc/resolv.conf
# 添加Google DNSecho "nameserver 114.114.114.114" >> /etc/resolv.conf
# 添加国内DNS
若需覆盖原有DNS,使用>
重定向:echo "nameserver 8.8.8.8" > /etc/resolv.conf
验证配置
修改完成后,通过以下命令验证:
ip a
:确认IP地址已更新ip route
:确认网关已添加ping 8.8.8.8
:测试外网连通性
永久修改IP地址(重启后生效)
永久修改需编辑系统的网络配置文件,不同Linux发行版的配置文件路径和格式不同,主要分为CentOS/RHEL(使用ifcfg文件)和Ubuntu/Debian(使用netplan或NetworkManager)。
(一)CentOS/RHEL系统(ifcfg配置文件)
CentOS 7及以后版本使用NetworkManager管理网络,配置文件位于/etc/sysconfig/network-scripts/
下,文件名格式为ifcfg-<网卡名>
(如ifcfg-eth0
)。
编辑配置文件
使用vi
或nano
打开配置文件,vi /etc/sysconfig/network-scripts/ifcfg-eth0
关键参数说明:
| 参数 | 含义及示例 |
|—————|———————————————|
| BOOTPROTO | 启动协议,static
(静态IP)或dhcp
(动态) |
| IPADDR | IP地址,如168.1.200
|
| NETMASK | 子网掩码,如255.255.0
|
| GATEWAY | 网关地址,如168.1.1
|
| DNS1/DNS2 | DNS服务器,如8.8.8
和114.114.114
|
| ONBOOT | 是否开机启动网络,yes
(启用)或no
(禁用) |
示例配置:
TYPE=Ethernet BOOTPROTO=static IPADDR=192.168.1.200 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=114.114.114.114 ONBOOT=yes
重启网络服务
保存配置文件后,执行以下命令重启网络:systemctl restart network
若提示“Failed to restart network”,可检查配置文件语法是否正确(如参数名拼写错误、缺少引号等)。
验证配置
执行ip a
查看IP是否永久生效,或使用ping
测试网络连通性。
(二)Ubuntu/Debian系统(netplan配置)
Ubuntu 18.04及以后版本默认使用netplan,配置文件位于/etc/netplan/
下,文件名格式为*.yaml
(如01-network-manager-all.yaml
)。
编辑配置文件
打开netplan配置文件,vi /etc/netplan/01-network-manager-all.yaml
配置格式为YAML,需注意缩进(使用空格,非Tab),示例配置:
network: version: 2 ethernets: eth0: # 网卡名 dhcp4: no # 禁用DHCP,使用静态IP addresses: - 192.168.1.200/24 # IP地址及子网掩码(/24表示255.255.255.0) gateway4: 192.168.1.1 # 网关 nameservers: addresses: [8.8.8.8, 114.114.114.114] # DNS服务器
应用配置
保存文件后,执行以下命令使配置生效:netplan apply
若提示错误,可使用netplan --debug apply
查看详细日志排查问题。
验证配置
通过ip a
确认IP已修改,或使用nslookup www.baidu.com
测试DNS解析是否正常。
不同发行版配置对比
为方便理解,以下表格总结CentOS/RHEL与Ubuntu/Debian永久修改IP的核心差异:
项目 | CentOS/RHEL | Ubuntu/Debian |
---|---|---|
配置文件路径 | /etc/sysconfig/network-scripts/ifcfg-<网卡名> |
/etc/netplan/*.yaml |
配置格式 | 键值对(如IPADDR=192.168.1.200 ) |
YAML格式(缩进敏感) |
重启命令 | systemctl restart network |
netplan apply |
关键参数 | BOOTPROTO、IPADDR、NETMASK、GATEWAY | dhcp4、addresses、gateway4、nameservers |
注意事项
- 网卡名确认:不同系统或虚拟环境下网卡名可能不同(如
eth0
、ens33
、enp0s3
),务必通过ip a
确认,避免配置错误。 - 备份配置文件:修改前建议备份原配置文件(如
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.bak
),防止配置错误导致无法联网。 - 参数匹配:IP地址、子网掩码、网关需在同一网段,例如IP
168.1.200
、子网掩码255.255.0
、网关168.1.1
,否则无法通信。 - DNS优先级:若配置了多个DNS,系统会按顺序尝试解析,建议配置一个公共DNS(如8.8.8.8)和一个国内DNS(如114.114.114.114)。
相关问答FAQs
临时修改和永久修改有什么区别?
解答:临时修改通过ip addr
、ip route
等命令直接修改网络配置,不涉及配置文件,重启系统或网络服务后会恢复原状,适用于临时测试或网络故障排查;永久修改通过编辑系统配置文件(如CentOS的ifcfg文件、Ubuntu的netplan文件)实现,配置会写入磁盘,重启后仍然生效,适合长期使用的固定IP场景。
修改IP后无法上网怎么办?
解答:可按以下步骤排查:
- 检查IP配置:确认IP、子网掩码、网关是否正确(
ip a
查看IP,ip route
查看网关),确保在同一网段(如IP168.1.200
、网关168.1.1
、子网掩码255.255.0
)。 - 检查DNS:执行
nslookup www.baidu.com
测试域名解析,若无法解析,检查/etc/resolv.conf
中的DNS配置是否正确,或临时添加公共DNS(如echo "nameserver 8.8.8.8" > /etc/resolv.conf
)。 - 检查网卡状态:确认网卡是否启用(
ip a
查看网卡状态,UP
表示启用),若未启用,使用ip link set <网卡名> up
激活。 - 检查配置文件语法:永久修改后若无法上网,检查配置文件语法(如CentOS ifcfg文件中的参数名是否拼写错误,Ubuntu netplan文件缩进是否正确)。
- 重启网络服务:临时修改后可尝试重启网络(CentOS用
systemctl restart network
,Ubuntu用netplan apply
)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/16938.html