ネットプラン固定IP設定時、一定時間放置すると接続が休止状態になるようです。

ネットプラン固定IP設定時、一定時間放置すると接続が休止状態になるようです。

cloud-initを無効にしてから、私の設定を設定してUbuntu 20.04サーバーで固定ローカルIPを設定しようとしています。50-cloud-init.yaml

これは、有線で接続されたRaspberry Pi 4にあります。

network:
    ethernets:
        eth0:
            addresses: [192.168.1.11/24]
            dhcp4: false
            gateway4: 192.168.1.1
            nameservers:
                addresses: [8.8.8.8, 8.8.4.4]
    version: 2

netplan buildを実行した後、netplan tryを実行します。動作し、固定ローカルIPが正常に設定されました。

しかし、これは「睡眠」を引き起こす。 SSHを介して接続し、しばらくそのままにすると、入力が再応答するのに数秒かかります。これはSSHを介して行われるだけでなく、TCPサーバーも実行中であり、同じことが起こります。しばらく放置すると寝ているようです。

この状況は静的IPを設定した後にのみ発生します。

誰でも何が起こっているのかを提案できますか?

ベストアンサー1

Linuxにはこれをサポートしています。実行時にカーネルパラメータを設定できるようにkeepalive設定を変更できます。sysctl

Keepaliveに関連する手順では、3つのユーザー中心の変数を使用します。

tcp_keepalive_time:最後に送信されたパケット(単純なACKはデータとは見なされません)と最初の接続保持プローブとの間の間隔は、接続を維持する必要があるとマークされた後に使用されなくなりました。

tcp_keepalive_intvl:同時に交換された接続に関係なく、後続のKeepaliveプローブ間の間隔。

tcp_keepalive_probes:接続が切断されたと見なしてアプリケーション層に通知する前に送信された未承認プローブの数。

以下を使用してこれらの値を変更してみることができます。

echo 600 > /proc/sys/net/ipv4/tcp_keepalive_time
echo 60 > /proc/sys/net/ipv4/tcp_keepalive_intvl
echo 20 > /proc/sys/net/ipv4/tcp_keepalive_probes

問題が解決したら、次のように変更を永久に適用できます/etc/sysctl.conf

net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_intvl = 60
net.ipv4.tcp_keepalive_probes = 20

おすすめ記事