18.04 服务器上管理 IP 地址最权威的文件/流程是什么?

18.04 服务器上管理 IP 地址最权威的文件/流程是什么?

18.04 服务器安装过程会创建/etc/cloud/cloud.cfg.d/50-curtin-networking.cfg,而这又似乎会生成/etc/netplan/50-cloud-init.yaml。但我似乎无法确切找到它50-cloud-init.yaml是如何生成的50-curtin-networking.cfg

在 18.04 服务器上管理 IP 地址的推荐方法是什么?编辑50-curtin-networking.cfg,然后运行一些命令(?)进行更新50-cloud-init.yaml?还是其他一些过程?

答案1

对 /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg 文件进行网络更改,就像将它们放入 yaml 文件中一样。

然后执行以下操作:

sudo cloud-init clean
sudo cloud-init init
sudo netplan apply

这将处理您的 50-curtin-networking.cfg 文件,生成 50-cloud-init.yaml 文件并应用 yaml 文件 netplan 配置。

通过这种方式,您可以按照注释所暗示的那样在 50-curtin-networking.cfg 文件中写入您的网络配置。

在 50-cloud-init.yaml 文件中设置网络与在 /etc/netplan 目录中找到的 01-netcfg.yaml 中设置网络之间的许多混淆都归结于用于 Ubuntu 18.04 LTS 的安装程序。

实时安装程序使用 cloud-init,而备用安装程序则不使用。

因此,对于网络,安装程序的选择会改变您设置网络的方式。

ubuntu-18.04.1-server-amd64.iso -> 01-netcfg.yaml ubuntu-18.04.1-live-server-amd64.iso -> 50-curtin-networking.cfg

答案2

我假设这是一台普通的服务器,位于路由器或交换机后面,然后连接到互联网。我将重命名该50-cloud-init.yaml文件:

sudo mv /etc/netplan/50-cloud-init.yaml  /etc/netplan/01-netcfg.yaml 

然后找出相关接口名称:

ifconfig 

例如,假设您的相关界面是enp0s25,编辑该文件:

sudo nano /etc/netplan/01-netcfg.yaml 

将文件修改为:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s25:
      addresses: [192.168.100.40/22]
      gateway4: 192.168.100.1
      nameservers:
        addresses: [8.8.8.8,8.8.4.4]

当然,请在此处替换您的确切详细信息。间距、缩进等都至关重要。仔细校对。保存(Ctrl+O 后按 Enter)并关闭(Ctrl+X)文本编辑器。

下一个:

sudo netplan apply
sudo ip link set enp0s25 down
sudo ip link set enp0s25 up

您是否获得了请求的 IP 地址?

ip addr show

您能 ping 通吗?

ping -c3 8.8.8.8
ping -c3 www.ubuntu.com

如果您收到 ping 返回,则表示您已全部设置完毕。

答案3

我最终编辑了 /etc/systemd/resolved.conf 文件并删除了 DNS= 行上的注释,并添加了我首选的 DNS 条目,并用空格分隔条目 IE:DNS = 8.8.8.8 8.8.4.4

答案4

对我来说在 Ubuntu 19.04 中cloud-init init不会写50-curtin-网络.cfg50-云-初始化.yaml除非你要求 systemctl 重新启动 cloud-init-local 服务……

cloud-init clean
systemctl restart cloud-init-local.service
netplan apply

相关内容