在Linux系统中修改IP地址是日常运维和管理的常见操作,根据使用场景和发行版的不同,操作方法略有差异,本文将详细介绍通过命令行临时修改、配置文件永久修改以及使用NetworkManager工具修改IP的方法,涵盖CentOS/RHEL和Ubuntu/Debian主流发行版。
临时修改IP地址(重启失效)
临时修改IP适用于测试场景,重启网络服务或系统后配置会恢复,常用命令为ifconfig
(传统工具)和ip
(推荐,iproute2工具包)。
使用ifconfig
命令(需安装net-tools)
# 查看网络接口(如eth0、ens33) ifconfig # 配置IP地址和子网掩码 ifconfig eth0 192.168.1.100 netmask 255.255.255.0 # 添加网关(可选) route add default gw 192.168.1.1 # 配置DNS(需修改/etc/resolv.conf) echo "nameserver 8.8.8.8" >> /etc/resolv.conf echo "nameserver 114.114.114.114" >> /etc/resolv.conf
使用ip
命令(现代Linux推荐)
# 查看网络接口 ip addr show # 配置IP地址(CIDR格式,如/24表示255.255.255.0) ip addr add 192.168.1.100/24 dev eth0 # 启动接口(若未激活) ip link set eth0 up # 添加网关 ip route add default via 192.168.1.1 # 配置DNS(同上)
永久修改IP地址(配置文件方式)
永久修改需编辑对应网络接口的配置文件,重启网络服务后生效,不同发行版的配置文件路径和格式不同,需区分处理。
CentOS/RHEL 7及以前(使用ifcfg文件)
配置文件路径:/etc/sysconfig/network-scripts/ifcfg-eth0
(eth0为接口名,可能因系统不同而变化,如ens33)。 如下:
TYPE=Ethernet BOOTPROTO=static # 静态IP,dhcp为动态 NAME=eth0 DEVICE=eth0 ONBOOT=yes # 开机自启 IPADDR=192.168.1.100 # IP地址 NETMASK=255.255.255.0 # 子网掩码 GATEWAY=192.168.1.1 # 网关 DNS1=8.8.8.8 # 主DNS DNS2=114.114.114.114 # 备用DNS
保存后执行systemctl restart network
重启网络服务。
CentOS/RHEL 8及以后(使用NetworkManager的nmcli命令)
CentOS 8+默认使用NetworkManager管理网络,可通过nmcli
命令修改:
# 查看连接名称 nmcli connection show # 修改连接(假设连接名为eth0) nmcli con mod "eth0" ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8 114.114.114.114" ipv4.method manual # 静态IP,auto为动态 # 激活连接 nmcli con up "eth0"
Ubuntu/Debian(使用netplan配置文件)
Ubuntu 18.04+默认使用netplan,配置文件位于/etc/netplan/
下(如01-network-manager-all.yaml
),编辑文件内容:
network: version: 2 ethernets: eth0: # 接口名 dhcp4: no # 禁用动态IP addresses: [192.168.1.100/24] # IP地址/子网掩码 gateway4: 192.168.1.1 # 网关 nameservers: addresses: [8.8.8.8, 114.114.114.114] # DNS
保存后执行netplan apply
应用配置,若配置文件名以.yaml
需指定文件名:netplan apply /etc/netplan/01-network-manager-all.yaml
。
不同发行版配置对比
操作步骤 | CentOS/RHEL 7- (ifcfg) | CentOS/RHEL 8+ (nmcli) | Ubuntu/Debian (netplan) |
---|---|---|---|
配置文件路径 | /etc/sysconfig/network-scripts/ifcfg-eth0 | 无(命令行操作) | /etc/netplan/*.yaml |
静态IP配置 | BOOTPROTO=static; IPADDR=… | ipv4.method manual; ipv4.addresses=… | dhcp4: no; addresses=[…] |
重启网络命令 | systemctl restart network | nmcli con up “连接名” | netplan apply |
DNS配置 | 配置文件中添加DNS1/DNS2 | ipv4.dns=”DNS1 DNS2″ | nameservers.addresses=[…] |
注意事项
- 备份原配置:修改前备份原配置文件(如
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.bak
),避免配置错误导致网络中断。 - 接口名确认:不同系统或虚拟化环境下网卡名可能不同(如eth0、ens33、enp0s3),可通过
ip addr
或ls /sys/class/net/
查看。 - IP冲突检查:确保设置的IP与网络内其他设备不冲突,可通过
ping 192.168.1.100
测试。 - 服务重启验证:修改后执行
ip addr show
或ifconfig
确认IP是否生效,ping 8.8.8.8
测试网络连通性。
相关问答FAQs
Q1:修改IP后无法上网,如何排查?
A:首先检查IP、子网掩码、网关配置是否正确(ip addr show
查看IP,ip route
查看网关);然后测试DNS解析(ping www.baidu.com
,若不通则检查/etc/resolv.conf
中的DNS配置);最后确认网络接口是否激活(ip link show
查看状态,ip link set eth0 up
激活)。
Q2:如何查看当前Linux系统的网络接口名称?
A:可通过以下命令查看:
ip addr
:列出所有网络接口及其状态(UP/DOWN),显示为eth0
、ens33
等;ls /sys/class/net/
:列出系统中的网络接口目录名,与接口名一一对应;ifconfig -a
(需安装net-tools):显示所有接口(包括未激活的)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/26813.html