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-网络.cfg到50-云-初始化.yaml除非你要求 systemctl 重新启动 cloud-init-local 服务……
cloud-init clean
systemctl restart cloud-init-local.service
netplan apply