如何在 ubuntu 18.04 LTS 中运行 eth link 之前分配静态 ip 地址?

如何在 ubuntu 18.04 LTS 中运行 eth link 之前分配静态 ip 地址?

我知道如果我需要分配一个静态 IP 地址,我将需要netplan在 Ubuntu 18.04 中使用它,而且我已经这样做了并使其工作正常。

这是我的配置文件:

network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:
      dhcp4: yes
    enp131s0f0:
      dhcp4: no
      addresses: [10.66.0.1/24]

我使用后netplan apply,命令显示设置为的ifconfigip地址enp131s0f010.66.0.1 将电缆插入“enp131s0f0”端口后。这会导致一个问题,因为如果我不将电缆插入此端口,即使在 netplan 中设置了 ipaddress,端口本身也不会获取静态 ip 地址,这将导致某些服务无法启动(例如,isc-dhcp-server)。

例如,如果您有 3 个端口,并且已按如下方式配置它们:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp131s0f0:
      dhcp4: no
      addresses: [10.66.0.1/24]
    enp131s0f1:
      dhcp4: no
      addresses: [10.66.1.1/24]
    enp131s0f2:
      dhcp4: no
      addresses: [10.66.2.1/24]
    enp131s0f3:
      dhcp4: no
      addresses: [10.66.3.1/24]

如果在这 3 个端口上都安装了 isc-dhcp-server。仅当您连接所有 3 个端口时,isc-dhcp-server 才会启动,如果您无法将电缆连接到这 3 个端口中的任何一个端口,isc-dhcp-server 将无法启动,因为该端口没有静态地址(没有将电缆插入端口),即使您在 netplan 中设置了静态 ip 地址。

所以我想问一下如何永久地为网络端口分配静态地址。为了让它在插入电缆之前有一个 ipaddress...我需要这个,因为我的服务器上有一些端口我目前没有使用(电缆没有插上),但我需要 isc-dhcp-server 来启动...

答案1

这是用于您配置的最小 .yaml 文件...假设 10.66.0.2 是您网络上可用的静态地址,而 10.66.0.1 是正确的网关...

network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:
      dhcp4: true
    enp4s0f0:
      addresses: [10.66.0.2/24]
      gateway4: 10.66.0.1
      nameservers:
        addresses: [8.8.8.8,8.8.4.4]
      optional: true # may or may not be desired, to stop 2 minute boot delay

sudo netplan --debug generate# 生成配置文件

sudo netplan apply# 应用配置

reboot# 重启并验证操作

相关内容