CentOS 7에서 TCP keepalive를 구성하는 방법과 위치는 무엇입니까?
나는 그것을 찾으려고 노력했다:
[michael@devserver ~]$ cat /etc/sysctl.conf
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
[michael@devserver ~]$ cat /usr/lib/sysctl.d/* | grep keep
[michael@devserver ~]$ cat /run/sysctl.d/* | grep keep
cat: /run/sysctl.d/*: No such file or directory
[michael@devserver ~]$ cat /etc/sysctl.d/* | grep keep
[michael@devserver ~]$ cat /usr/lib/sysctl.d/* | grep keep
[michael@devserver ~]$ ls /proc/sys/net/ipv4/ | grep tcp_keep
tcp_keepalive_intvl
tcp_keepalive_probes
tcp_keepalive_time
[michael@devserver ~]$ cat /proc/sys/net/ipv4/tcp_keep*
75
9
7200
[michael@devserver ~]$ whereis tcp_keepalive
tcp_keepalive:[michael@devserver ~]$ whereis tcp_keepalived
tcp_keepalived:[michael@devserver ~]$ whereis keepalive
keepalive:[michael@devserver ~]$ whereis keepalived
keepalived:[michael@devserver ~]$ ls /etc | grep keep
[michael@greenbeantech ~]$
답변1
이것TCP 연결 유지 가이드TCP keepalive를 구성하는 두 가지 방법을 나타냅니다.
procfs 인터페이스
시스템 제어 인터페이스
이미 발견했듯이 해당 /proc 파일에 새 숫자를 작성하여 이러한 값을 업데이트할 수 있습니다. 예를 들면 다음과 같습니다.
echo 600 > /proc/sys/net/ipv4/tcp_keepalive_time
또는 sysctl을 통해:
sysctl -w net.ipv4.tcp_keepalive_time=600
... 하지만어느 것도 아니다재부팅 후에도 변경 사항이 유지됩니다.
재부팅 후에도 변경 사항이 유지되도록 하려면 해당 값을 에 입력(또는 전달)해야 합니다 /etc/sysctl.conf
. 내 앞에 CentOS 시스템이 없지만 /etc/sysctl.conf가 /etc/sysctl.d/
.
내 제안은 다음 형식으로 /etc/sysctl.d/에 파일을 만드는 것입니다.
net.ipv4.tcp_keepalive_time=7200
net.ipv4.tcp_keepalive_intvl=75
net.ipv4.tcp_keepalive_probes=9
sysctl 파일은 숫자 순서대로 읽혀지므로 값이 우선적으로 적용되도록 하려면 다음 경고에 유의하세요.
특정 설정만 재정의하려면 /etc/sysctl.d/에 어휘 이름이 지정된 파일을 추가하고 여기에 새 설정을 배치합니다.