重启后恢复旧的静态 IP 地址(Ubuntu 20.04)

重启后恢复旧的静态 IP 地址(Ubuntu 20.04)

我的家庭网络上运行着 Ubuntu Server 20.04,用作媒体服务器和存储。我最近更换了 ISP(我住在乡下,ISP 选择有限),他们不允许我更改 DHCP 的 IP 地址或关闭它。我更改了服务器上的 IP,但每次重新启动时,旧的静态 IP 地址都会作为适配器的第二个 IP 返回。此外,出于某种原因,即使 netplan 已禁用 dhcp6,也会分配 IPv6 地址。

我可以删除这些地址,直到我重新启动。我创建了一个脚本来清除陈旧的 IP,但我想知道为什么它似乎想要保留旧的东西。我已经验证了所有 DHCP 服务都已关闭,后台没有运行任何程序。这是我的 netplan 设置。

network:
  ethernets:
    enp2s0:
      dhcp4: false
      dhcp6: false
      addresses: [192.168.12.20/24]
      gateway4: 192.168.12.1
      nameservers:
        addresses: [192.168.12.1,8.8.8.8]
    enp3s0:
      dhcp4: false
      dhcp6: false
      addresses: [192.168.12.21/24]
  version: 2

以下是输出ip -br a

lo               UNKNOWN        127.0.0.1/8 ::1/128 
enp2s0           UP             192.168.12.20/24 192.168.1.20/24 XXXX:XXXX:XXXX:XXXX/128 XXXX:XXXX:XXXX:XXXX/64 XXXX:XXXX:XXXX:XXXX/64 
enp3s0           UP             192.168.12.21/24 192.168.1.21/24 XXXX:XXXX:XXXX:XXXX/128 XXXX:XXXX:XXXX:XXXX/64 XXXX:XXXX:XXXX:XXXX/64           

删除 IP 只是暂时的解决办法。一旦我重新启动,IP 就会重新显示。此外,我注意到,如果我重新应用 netplan,IPv6 地址将重新应用,但 IPv4 地址则不会。这是我运行的用于删除地址的脚本。

#!/bin/bash
sudo ip a d 192.168.1.20 dev enp2s0
sudo ip a d 192.168.1.21 dev enp3s0
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1

有谁能告诉我如何解决这个问题吗?

答案1

如果 netplan 目录中有多个 .yaml 文件,则 netplan 将在您生成和应用配置时使用所有文件。

我自己也遇到过这个问题。更改旧 yaml 版本文件的扩展名解决了这个问题,我只能从所需的 yaml 配置中获取 ip 地址

相关内容