我目前正在使用 ubuntu server 20.04 设置一些 rpi4,
我已经使用 netplan(有线局域网)设置了它们的静态 IP,并且 不知何故,如果超过一分钟,它们最终都会在 SSH 和 TCP 中处于休眠状态。 当我尝试发送输入时,它似乎冻结了几秒钟才再次响应。
如果我让 DHCP 为他们提供 IP,那么这种情况就根本不会发生。
我以为是 DHCP 冲突导致了它,但我已经将这些 IP 与路由器的 DHCP 服务器隔离,但这种情况仍然发生。
如何设置静态IP:
- 通过创建名为 /etc/cloud/cloud-init.disabled 的文件来禁用 cloud-init
- 使用以下配置将 50-cloud-init.yaml 替换为 01-netcfg.yaml:
- 运行 netplan generate、netplan apply,然后重新启动
- 已应用新 IP。
有人知道为什么会发生这种情况我该怎么办吗?
答案1
云初始化
您/etc/cloud/cloud-init.disabled
应该位于/etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
并具有以下内容...
# To disable cloud-init's network configuration capabilities,
# write a file /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
# with the following content:
#
network: {config: disabled}
交换
您没有 /swapfile 或交换分区。让我们创建一个...
笔记:命令使用不当dd
可能导致数据丢失。建议复制/粘贴。
sudo swapoff -a # turn off swap
sudo rm -i /swapfile # remove old /swapfile
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
sudo chmod 600 /swapfile # set proper file protections
sudo mkswap /swapfile # init /swapfile
sudo swapon /swapfile # turn on swap
free -h # confirm 4G RAM and 4G swap
reboot # reboot and verify operation
将此行添加到 /etc/fstab...
笔记:验证 /etc/fstab 中没有其他交换行。
/swapfile none swap sw 0 0
更新#1:
关于交换,我无法做到,因为这将成为 Kubernetes 节点,需要删除交换。
答案2
弄清楚了。
NTP 问题。使用静态 IP 时,systemd-timesyncd 无法同步。
解决方案:用 ntpd 或 chrony 替换 systemd-timesyncd,我选择了 chrony,以及良好的 ntp 源。