在Linux系统中,通过命令修改IP地址是网络管理的基础操作,无论是临时调整网络配置还是永久修改IP,都需要根据具体需求选择合适的方法,Linux发行版众多(如CentOS、Ubuntu、Debian等),网络配置工具和文件位置可能存在差异,但核心逻辑一致,本文将详细介绍不同场景下修改IP地址的命令方法,涵盖临时修改、永久配置、多IP设置及验证步骤,并针对常见问题提供解决方案。
基础准备:查看当前网络接口信息
在修改IP前,需先确认系统的网络接口名称(如eth0、ens33、enp0s3等)及当前配置,可通过以下命令查看:
- 查看网络接口列表:
ip a
或ifconfig
(需安装net-tools
包,Ubuntu/Debian可通过sudo apt install net-tools
安装)
输出示例:2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:1a:2b:3c brd ff:ff:ff:ff:ff:ff inet 192.168.1.100/24 brd 192.168.1.255 scope global ens33 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe1a:2b3c/64 scope link valid_lft forever preferred_lft forever
其中
ens33
是接口名称,inet
行显示当前IPv4地址、子网掩码(以/24
表示,即255.255.255.0)和广播地址。
临时修改IP地址(重启后失效)
临时修改适用于测试场景,无需重启网络服务,但系统重启后会恢复原配置。
使用ip
命令(推荐,现代Linux通用)
- 添加IP地址:
sudo ip addr add 192.168.1.200/24 dev ens33 # 添加IP 192.168.1.200,子网掩码255.255.255.0
- 启用接口(若接口未UP):
sudo ip link set ens33 up
- 删除临时IP:
sudo ip addr del 192.168.1.200/24 dev ens33
使用ifconfig
命令(传统工具,需安装net-tools
)
- 添加IP地址:
sudo ifconfig ens33 192.168.1.200 netmask 255.255.255.0 up
- 删除临时IP(需先删除所有别名,再设置原IP):
sudo ifconfig ens33 down sudo ifconfig ens33 192.168.1.100 netmask 255.255.255.0 up # 恢复原IP
临时修改网关和DNS
- 添加默认网关:
sudo ip route add default via 192.168.1.1 dev ens33
- 临时修改DNS(直接编辑
/etc/resolv.conf
,重启后失效):echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf echo "nameserver 114.114.114.114" | sudo tee -a /etc/resolv.conf
永久修改IP地址(重启后保留)
永久修改需编辑系统网络配置文件,不同发行版配置方式差异较大,以下分主流系统说明。
CentOS/RHEL 7及以后(使用NetworkManager)
NetworkManager是默认网络管理工具,可通过配置文件或nmcli
命令修改。
(1)编辑ifcfg配置文件
配置文件路径:/etc/sysconfig/network-scripts/ifcfg-ens33
(文件名需与接口名称一致)。
sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改以下参数:
TYPE=Ethernet BOOTPROTO=static # 静态IP,若为DHCP则改为"dhcp" NAME=ens33 DEVICE=ens33 ONBOOT=yes # 开机启用网络 IPADDR=192.168.1.200 # 目标IP NETMASK=255.255.255.0 # 子网掩码 GATEWAY=192.168.1.1 # 默认网关 DNS1=8.8.8.8 # 主DNS DNS2=114.114.114.114 # 辅助DNS
保存后重启网络服务:
sudo systemctl restart network
(2)使用nmcli
命令(推荐)
# 查看当前连接名称 nmcli connection show # 修改连接属性(假设连接名为"ens33") sudo nmcli connection modify "ens33" ipv4.method manual ipv4.addresses 192.168.1.200/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8 114.114.114.114" # 激活连接 sudo nmcli connection up "ens33"
Ubuntu 18.04及以后(使用Netplan)
Netplan通过YAML配置文件管理网络,文件路径通常为/etc/netplan/
下的.yaml
文件(如01-netcfg.yaml
)。
(1)编辑Netplan配置文件
sudo vim /etc/netplan/01-netcfg.yaml
配置示例(静态IP):
network: version: 2 renderer: networkd # 或使用NetworkManager(需安装) ethernets: ens33: dhcp4: no # 禁用DHCP addresses: - 192.168.1.200/24 # IP地址/子网掩码 gateway4: 192.168.1.1 # 默认网关 nameservers: addresses: [8.8.8.8, 114.114.114.114] search: [localdomain] # 可选,域名后缀
保存后应用配置:
sudo netplan apply
(2)Ubuntu 16.04及以前(使用/etc/network/interfaces
)
sudo vim /etc/network/interfaces
auto ens33 iface ens33 inet static address 192.168.1.200 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 8.8.8.8 114.114.114.114
保存后重启网络服务:
sudo systemctl restart networking
Debian系统(类似Ubuntu,根据版本选择Netplan或interfaces)
Debian 10及以后默认使用Netplan,配置方法同Ubuntu;Debian 9及以前使用/etc/network/interfaces
,方法同Ubuntu 16.04。
不同发行版永久配置对比
发行版系列 | 配置工具 | 配置文件路径 | 关键参数示例 |
---|---|---|---|
CentOS/RHEL 7+ | NetworkManager | /etc/sysconfig/network-scripts/ifcfg-<接口> |
BOOTPROTO=static , IPADDR=... |
Ubuntu 18.04+ | Netplan | /etc/netplan/*.yaml |
addresses: [192.168.1.200/24] |
Ubuntu 16.04及以前 | ifupdown | /etc/network/interfaces |
iface <接口> inet static |
多IP地址配置(别名IP)
若需为一个接口配置多个IP(如虚拟主机场景),可通过添加“别名”实现:
临时多IP(使用ip
命令)
sudo ip addr add 192.168.1.201/24 dev ens33 label ens33:0 # 别名ens33:0 sudo ip addr add 192.168.1.202/24 dev ens33 label ens33:1 # 别名ens33:1
永久多IP(CentOS ifcfg文件)
在ifcfg-ens33
中添加:
IPADDR2=192.168.1.201 NETMASK2=255.255.255.0 IPADDR3=192.168.1.202 NETMASK3=255.255.255.0
(数字序号需连续,重启网络服务生效)
永久多IP(Ubuntu Netplan)
在01-netcfg.yaml
的addresses
中添加多个IP:
addresses: - 192.168.1.200/24 - 192.168.1.201/24 - 192.168.1.202/24
验证IP配置修改
修改完成后,需通过以下命令确认配置是否生效:
- 查看IP地址:
ip a show ens33
或ifconfig ens33
- 测试网络连通性:
ping 192.168.1.1
(网关)、ping 8.8.8.8
(外网) - 查看路由表:
ip route
或route -n
- 测试DNS解析:
nslookup www.baidu.com
相关问答FAQs
Q1:修改IP后无法上网,如何排查?
A:按以下步骤排查:
- 检查IP/子网掩码:确保IP与网段匹配,子网掩码正确(如
/24
对应255.255.0
)。 - 检查网关:
ip route
查看默认网关是否正确,若缺失需手动添加(sudo ip route add default via 网关IP dev 接口
)。 - 检查DNS:
cat /etc/resolv.conf
确认DNS服务器是否配置,可临时替换为公共DNS(如8.8.8
)测试。 - 检查网络服务:CentOS执行
sudo systemctl status network
,Ubuntu执行sudo systemctl status networking
,确保服务正常运行。 - 检查防火墙:
sudo firewall-cmd --list-all
查看是否阻止出站流量,临时关闭防火墙测试(sudo systemctl stop firewalld
)。
Q2:如何恢复为DHCP自动获取IP?
A:根据系统类型操作:
- CentOS/RHEL(NetworkManager):
方法1(修改ifcfg文件):将BOOTPROTO=dhcp
,删除IPADDR
、NETMASK
、GATEWAY
、DNS1
等参数,保存后重启网络。
方法2(nmcli命令):sudo nmcli connection modify "连接名" ipv4.method dhcp
,然后sudo nmcli connection up "连接名"
。 - Ubuntu(Netplan):
修改Netplan配置文件,将dhcp4: yes
(或删除addresses
、gateway4
等字段),保存后执行sudo netplan apply
。 - 通用方法:临时恢复DHCP(仅当前会话生效):
sudo dhclient ens33
(需安装dhclient
包)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/20729.html