Linux修改IP

首先确定网络是用什么工具管理:

1
2
$ systemctl is-active NetworkManager
active

说明 网络由 NetworkManager 管理,这种情况修改 IP 通常使用 nmcli

修改静态 IP

看当前连接名

1
nmcli connection show

输出类似:

1
2
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  2d3e1f6a-4e87-4a76-8f23-2f459c8c112b  ethernet  enp60s0

这里的 NAME(如 Wired connection 1)就是连接名,后面命令要用到。

修改为静态 IP

假设你想把 IP 设置为:

  • IP:192.168.1.100/24
  • 网关:192.168.1.1
  • DNS:8.8.8.8, 1.1.1.1

执行:

1
2
3
4
sudo nmcli con mod "Wired connection 1" ipv4.addresses 192.168.1.100/24
sudo nmcli con mod "Wired connection 1" ipv4.gateway 192.168.1.1
sudo nmcli con mod "Wired connection 1" ipv4.dns "8.8.8.8,1.1.1.1"
sudo nmcli con mod "Wired connection 1" ipv4.method manual

注意 "Wired connection 1" 需要替换为你自己的连接名。 如果名字里有空格,必须加引号。

应用修改(立即生效)

1
2
sudo nmcli con down "Wired connection 1"
sudo nmcli con up "Wired connection 1"

验证

1
2
ip addr show enp60s0
ip route

你应该能看到:

1
2
inet 192.168.1.100/24 ...
default via 192.168.1.1 ...

改回 DHCP 自动获取

如果想恢复为 DHCP:

1
2
sudo nmcli con mod "Wired connection 1" ipv4.method auto
sudo nmcli con up "Wired connection 1"

DHCP 重新获取 IP

检查是否是固定分配 IP

1
2
3
4
sudo nmcli device disconnect enp60s0
sudo dhclient -r enp60s0           # 释放旧租约(告诉 DHCP 我不要这个 IP 了)
sudo pkill dhclient                # 确保没有旧 dhclient 残留
sudo nmcli device connect enp60s0  # 重新请求新 IP

如果上面的操作无法获得新的 IP,那就说明 DHCP 服务器端 是按 MAC 地址固定分配。

获取原本的 MAC 地址

可以临时更改 MAC 来解决,首先获取一下原本的 MAC:

1
2
3
4
ip link show enp60s0

# 或者
nmcli device show enp60s0 | grep -i hwaddr

修改临时 MAC

修改为临时 MAC:

1
2
3
sudo nmcli connection modify "Wired connection 1" 802-3-ethernet.cloned-mac-address random
sudo nmcli connection down "Wired connection 1"
sudo nmcli connection up "Wired connection 1"

这会让 DHCP 服务器以为是一个新设备,从而分配新 IP。 完成后可以恢复原 MAC:

1
sudo nmcli connection modify "Wired connection 1" 802-3-ethernet.cloned-mac-address "YOUR_MAC"

实测可以获取到新的 IP。

Licensed under CC BY-NC-SA 4.0
最后更新于 2025年12月22日星期一
使用 Hugo 构建
主题 StackJimmy 设计