在Linux系统中修改本机IP地址是日常运维和开发中的常见操作,根据网络环境的不同(如临时修改或永久生效),以及Linux发行版之间的差异(如RedHat系、Debian系等),操作方法略有不同,本文将详细介绍通过命令行和配置文件修改IP地址的步骤,涵盖主流发行版的使用场景。
前提:确认网络接口名称
在修改IP前,需先确定本机的网络接口名称(如eth0、ens33、enp0s3等),可通过以下命令查看:
ip addr show # 或 ifconfig
命令输出中,“inet”字段对应IPv4地址,“link/ether”字段对应MAC地址,第一行的“2: eth0”或“3: ens33”即为网络接口名称。
临时修改IP地址(重启后失效)
临时修改IP适用于测试场景,重启网络服务或系统后配置会恢复,主流方法有两种:
使用ifconfig
命令(传统工具)
若系统安装了net-tools
包(默认部分系统未安装,可通过yum install net-tools
或apt install net-tools
安装),操作如下:
sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0 # 设置IP和子网掩码 sudo ifconfig eth0 up # 确保接口启动(若未启动)
若需添加网关,需通过route
命令:
sudo route add default gw 192.168.1.1 # 添加默认网关
使用ip
命令(推荐,现代Linux默认支持)
ip
命令是iproute2
包的工具,功能更全面,推荐使用:
sudo ip addr add 192.168.1.100/24 dev eth0 # 设置IP(/24表示255.255.255.0) sudo ip link set eth0 up # 启用接口 sudo ip route add default via 192.168.1.1 # 添加默认网关
临时配置无需保存,重启后自动失效。
永久修改IP地址(重启后生效)
永久修改需编辑对应系统的网络配置文件,不同发行版文件位置和格式不同,以下是主流发行版的操作方法:
RedHat/CentOS(7及以上版本)
使用NetworkManager
或ifcfg
文件配置,若通过ifcfg
文件(适用于禁用NetworkManager的场景):
- 编辑配置文件:
sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0
- 添加/修改以下内容:
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
- 重启网络服务:
sudo systemctl restart network
Debian/Ubuntu
传统版本使用/etc/network/interfaces
文件,Ubuntu 18.04+推荐使用Netplan
(YAML格式)。
编辑interfaces文件
sudo vim /etc/network/interfaces ``` 根据接口名称调整): ```ini auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 8.8.8.8 114.114.114.114
重启网络:sudo systemctl restart networking
或sudo /etc/init.d/networking restart
。
Netplan配置(Ubuntu 18.04+)
编辑配置文件(路径可能为/etc/netplan/01-netcfg.yaml
或/etc/netplan/50-cloud-init.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
应用配置:sudo netplan apply
Arch Linux
使用systemd-networkd
或netctl
,通过systemd-networkd
配置:
-
创建配置文件:
sudo vim /etc/systemd/network/eth0.network
如下:[Match] Name=eth0 [Network] Address=192.168.1.100/24 Gateway=192.168.1.1 DNS=8.8.8.8 114.114.114.114
-
启动并启用服务:
sudo systemctl enable --now systemd-networkd
不同发行版配置对比
为方便查阅,以下表格总结主流发行版的永久配置关键信息:
发行版 | 配置文件路径 | 核心配置参数 | 重启命令 |
---|---|---|---|
RedHat/CentOS | /etc/sysconfig/network-scripts/ifcfg-eth0 | BOOTPROTO=static, IPADDR, NETMASK, GATEWAY | systemctl restart network |
Debian/Ubuntu | /etc/network/interfaces | iface eth0 inet static, address, gateway | systemctl restart networking |
Ubuntu 18.04+ | /etc/netplan/*.yaml | dhcp4: no, addresses, gateway4 | netplan apply |
Arch Linux | /etc/systemd/network/*.network | Address, Gateway, DNS | systemctl enable –now systemd-networkd |
相关问答FAQs
Q1:修改IP后无法联网,如何排查?
A:首先检查IP、子网掩码、网关配置是否正确(确保IP与同一网段,网关为路由器地址);然后使用ping 8.8.8.8
测试外网连通性,若不通则检查网关是否可达(ping 网关地址
);最后确认DNS配置(cat /etc/resolv.conf
查看),可临时修改为公共DNS(如8.8.8.8)测试。
Q2:如何查看当前IP配置是否生效?
A:使用以下命令查看:
ip addr show eth0
:查看接口IP、子网掩码状态;ip route show
:查看路由表(确认默认网关是否正确);cat /etc/resolv.conf
:查看DNS服务器配置;ping 域名
(如ping www.baidu.com
):测试DNS解析和网络连通性。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/24381.html