使用 netplan 设置本地静态 IP 导致网络进入睡眠状态

使用 netplan 设置本地静态 IP 导致网络进入睡眠状态

我目前正在使用 ubuntu server 20.04 设置一些 rpi4,

我已经使用 netplan(有线局域网)设置了它们的静态 IP,并且 不知何故,如果超过一分钟,它们最终都会在 SSH 和 TCP 中处于休眠状态。 当我尝试发送输入时,它似乎冻结了几秒钟才再次响应。

如果我让 DHCP 为他们提供 IP,那么这种情况就根本不会发生。

我以为是 DHCP 冲突导致了它,但我已经将这些 IP 与路由器的 DHCP 服务器隔离,但这种情况仍然发生。

如何设置静态IP:

  1. 通过创建名为 /etc/cloud/cloud-init.disabled 的文件来禁用 cloud-init
  2. 使用以下配置将 50-cloud-init.yaml 替换为 01-netcfg.yaml:

在此处输入图片描述

  1. 运行 netplan generate、netplan apply,然后重新启动
  2. 已应用新 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 源。

相关内容