cloud-init를 비활성화한 다음 내 설정을 설정하여 우분투 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와 관련된 절차에서는 세 가지 사용자 중심 변수를 사용합니다.
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
답변2
우연히 문제의 가능한 원인을 발견했고, netsniff-ng 설치를 시도했는데 설치로 인해 지연이 제거되었습니다. 유일하게 중요한 변경 사항은 Systemd-timesyncd가 제거되었다는 것입니다. 이것이 내 네트워크와 어떤 관련이 있는지 조사 중입니다. 문제.