当前位置:首页 > Linux > 正文

如何修改linux ip地址

修改Linux IP可执行 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

操作步骤

  1. 备份原有配置:sudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/backup.yaml
  2. 编辑配置文件(示例):
    # /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 配置
  3. 应用配置:sudo netplan apply
  4. 验证: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"

图形化界面

  1. 打开「设置」→「网络」→ 选择对应网卡 → 点击齿轮图标进入详细设置。
  2. 切换至「手动」模式,填写 IP 地址、子网掩码、网关等信息。
  3. 保存并重新连接。

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+ 使用 NetworkManagernetwork 服务,配置文件路径为 /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 NetworkManagerjournalctl -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: 这是典型的「未持久化配置」问题,请检查以下几点:

  1. 是否使用了正确的配置文件(如 Netplan 而非临时命令);
  2. 是否执行了 netplan apply 或重启了网络服务;
  3. 是否存在其他网络管理工具(如 cloud-init)覆盖了配置;
  4. 某些云主机厂商会锁定网络配置,需通过控制台解除限制。

Q2: 如何查看当前使用的 DNS 服务器?

A: 可通过以下命令查询:

如何修改linux ip地址  第1张

  • cat /etc/resolv.conf(显示当前生效的 DNS 配置)
  • systemd-resolve --status(Systemd 提供的解析器状态)
  • 对于 NetworkManager 用户:nmcli dev show | grep DNS

通过以上步骤,您可以根据实际需求选择合适的方式修改 Linux 系统的 IP 地址,无论是临时调试还是生产环境部署,建议始终优先使用持久化配置方案,并通过 ip addrping 命令

0