如何修改linux ip地址
- Linux
- 2025-08-17
- 5
nmtui
图形化操作,或用
ip addr add dev
临时生效,需持久化则编辑
/etc/network/interfaces
或对应网卡配置文件并重启网络服务
以下是针对「如何修改 Linux 系统中的 IP 地址」这一问题的完整解决方案,涵盖临时生效与持久化配置两种核心场景,并附带不同发行版的适配指南、常见错误排查及实用技巧,本文将结合命令行操作、配置文件解析、图形化工具使用等多个维度展开,助您灵活掌握 Linux 网络配置的核心技能。
前置准备与基础概念
1 关键术语定义
术语 | 说明 |
---|---|
IP 地址 | 分配给设备的唯一标识符,用于网络通信 |
子网掩码 | 划分本地网络与外部网络的规则(如 255.255.0 ) |
网关 | 跨网络访问时的默认路由节点 |
DNS 服务器 | 将域名解析为 IP 地址的服务端 |
网卡名称 | 物理或虚拟网络接口的名称(如 eth0 , ens33 , wlan0 ),可通过 ip link 查看 |
2 必要权限
所有涉及系统级网络配置的操作均需以 root 用户或具有 sudo
权限的账户执行,若提示 “Permission denied”,请在命令前添加 sudo
。
临时修改 IP 地址(重启后失效)
适用于测试环境或快速验证需求,无需修改配置文件。
1 方法一:ip
命令(推荐)
# 查看当前网卡列表及状态 ip link show # 假设目标网卡为 ens33,设置为静态 IP 192.168.1.100/24,网关 192.168.1.1 sudo ip addr add 192.168.1.100/24 dev ens33 sudo ip route add default via 192.168.1.1 dev ens33 # 验证新配置 ip addr show ens33 ip route show
注意:此方法仅对当前会话有效,系统重启或网络服务重启后恢复原配置。
2 方法二:ifconfig
命令(传统方式)
# 安装 net-tools 包(部分新发行版已移除该命令) sudo apt install net-tools # Debian/Ubuntu # 或 sudo yum install net-tools # CentOS/RHEL # 配置示例 sudo ifconfig ens33 192.168.1.100 netmask 255.255.255.0 up sudo route add default gw 192.168.1.1 ens33
️ 警告:ifconfig
已被标记为弃用,建议优先使用 ip
命令。
持久化修改 IP 地址(重启后保留)
需根据 Linux 发行版选择对应的配置方式,以下为主流方案:
1 Netplan(Ubuntu 18.04+ / Debian 10+)
Netplan 是 Ubuntu 主推的网络管理工具,配置文件位于 /etc/netplan/.yaml
。
操作步骤:
- 备份原有配置:
sudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/backup.yaml
- 编辑配置文件(示例):
# /etc/netplan/01-netcfg.yaml network: version: 2 renderer: networkd ethernets: ens33: dhcp4: no # 禁用 DHCP addresses: [192.168.1.100/24] routes: to: default via: 192.168.1.1 nameservers: addresses: [8.8.8.8, 114.114.114.114] # 可选 DNS 配置
- 应用配置:
sudo netplan apply
- 验证:
ip addr show ens33
2 NetworkManager(桌面版通用)
多数 Linux 桌面发行版预装 NetworkManager,提供图形化界面和 CLI 两种方式。
CLI 方式:
# 列出所有连接 nmcli connection show # 修改现有连接(假设连接名为 "Wired connection 1") nmcli connection modify "Wired connection 1" ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8 114.114.114.114" # 激活修改后的连接 nmcli connection up "Wired connection 1"
图形化界面:
- 打开「设置」→「网络」→ 选择对应网卡 → 点击齿轮图标进入详细设置。
- 切换至「手动」模式,填写 IP 地址、子网掩码、网关等信息。
- 保存并重新连接。
3 traditional ifupdown(旧版 Ubuntu/Debian)
若系统仍在使用 /etc/network/interfaces
文件(非 Netplan):
# 编辑配置文件 sudo nano /etc/network/interfaces # 添加以下内容(替换原有内容) auto ens33 iface ens33 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
4 Red Hat 系(CentOS/RHEL/Fedora)
CentOS 7+ 使用 NetworkManager
或 network
服务,配置文件路径为 /etc/sysconfig/network-scripts/ifcfg-
。
示例配置(ifcfg-ens33):
TYPE=Ethernet BOOTPROTO=none # 静态 IP ONBOOT=yes IPADDR=192.168.1.100 PREFIX=24 # 等同于子网掩码 255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=114.114.114.114
应用配置:
# 重启网络服务 sudo systemctl restart network # 或重启 NetworkManager 服务 sudo systemctl restart NetworkManager
多网卡场景下的注意事项
场景 | 解决方案 |
---|---|
多个物理网卡共存 | 确保修改的是目标网卡(通过 ip link 确认网卡名称),避免误改其他接口 |
桥接/VLAN 环境 | 需同步修改桥接接口的配置,或通过 VLAN Tagging 区分流量 |
容器内修改宿主机IP | 不可行!容器内的网络配置独立于宿主机,需直接修改宿主机配置文件 |
常见错误排查
1 配置未生效
可能原因:
- 拼写错误(如
ens33
写成ens3
) - 配置文件格式错误(YAML 缩进问题)
- 未重启网络服务
- 存在冲突的旧配置残留
解决方法:
- 检查日志:
journalctl -u NetworkManager
或journalctl -u networkd
- 清除旧配置:
sudo nmcli connection delete <旧连接名>
(针对 NetworkManager) - 强制刷新配置:
sudo netplan generate && sudo netplan apply
(Netplan)
2 无法访问外网
可能原因:
- 网关配置错误(未指向正确的路由器 IP)
- DNS 配置缺失或错误
- 防火墙阻止了出站流量
解决方法:
- 测试网关可达性:
ping 192.168.1.1
- 检查防火墙状态:
sudo ufw status
(Ubuntu)或sudo firewall-cmd --list-all
(CentOS) - 临时关闭防火墙测试:
sudo ufw disable
(测试完成后记得启用)
相关问答 FAQs
Q1: 为什么我修改了 IP 地址,重启后又变回去了?
A: 这是典型的「未持久化配置」问题,请检查以下几点:
- 是否使用了正确的配置文件(如 Netplan 而非临时命令);
- 是否执行了
netplan apply
或重启了网络服务; - 是否存在其他网络管理工具(如 cloud-init)覆盖了配置;
- 某些云主机厂商会锁定网络配置,需通过控制台解除限制。
Q2: 如何查看当前使用的 DNS 服务器?
A: 可通过以下命令查询:
cat /etc/resolv.conf
(显示当前生效的 DNS 配置)systemd-resolve --status
(Systemd 提供的解析器状态)- 对于 NetworkManager 用户:
nmcli dev show | grep DNS
通过以上步骤,您可以根据实际需求选择合适的方式修改 Linux 系统的 IP 地址,无论是临时调试还是生产环境部署,建议始终优先使用持久化配置方案,并通过 ip addr
和 ping
命令