ftp timeout은 얼마인가요?

thisrule의 이미지

리눅스 시스템으로 파일서버를 운영하고 있습니다.
약 40여대의 리눅스 시스템(Redhat9.0)이 한대의 리눅스 파일 서버에 파일들을 전송하고 있으며,
리눅스 파일 서버는 그 파일들을 적절하게 저장 및 관리합니다.(ftp를 사용해서 전송함)

문제는 리눅스 파일서버가 다운되었을때 40여대의 리눅스 클라이언트들이 파일서버가 다운되었는지
모르기 때문에 일단 ftp 접속을 시도합니다. 이때 ftp 접속이 안되면 timeout이 걸릴때까지
hold된것처럼 보이는데 이 timeout이 얼마나 되는지 모르겠습니다.

ftpd에서 설정하는건가요 아니면 ftp 명령에서 옵션으로 timeout을 설정가능한건가요?
man ftp 했는데 timeout 관련 내용은 없어보이는데...

default로 ftp의 timeout값은 얼마인지, 변경 가능한지 알고 싶습니다.

Hyun의 이미지

ftp에 타임아웃보다는 /proc 디렉토리 안 어디엔가 보면 tcp 연결의 timeout을 조정하는게 어이 있을껍니다.
/proc 안쪽에 어떤 파일을 수정해서 tcp 연결의 timeout을 조절할 수 있었던거 같은데...

thisrule의 이미지

음...

말씀하신대로 /proc 디렉토리를 좀 봤는데요, 무슨 파일을 봐야할지 잘 모르겠습니다.
가장 짚이는 /proc/net 디렉토리 안에 tcp, udp, netstat, sockstat 등의 파일을 봤는데 다 empty 파일입니다.

설정 파일이 확실한 linux 시스템이 요건 좀 애매하게 되어있네요. ㅠ.ㅠ

monovision의 이미지

[root@localhost linux]# sysctl -a | grep timeout
net.ipv4.tcp_fin_timeout = 1
net.ipv4.route.gc_timeout = 300
net.ipv4.netfilter.ip_conntrack_generic_timeout = 300
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent = 1
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 1
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 3600
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 1
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 1
net.ipv4.netfilter.ip_conntrack_tcp_timeout_last_ack = 1
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 1
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close = 1
net.ipv4.netfilter.ip_conntrack_tcp_timeout_max_retrans = 300
net.ipv4.netfilter.ip_conntrack_udp_timeout = 30
net.ipv4.netfilter.ip_conntrack_udp_timeout_stream = 180
net.ipv4.netfilter.ip_conntrack_icmp_timeout = 30
net.token-ring.rif_timeout = 600000
net.netfilter.nf_conntrack_generic_timeout = 300
net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 1
net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 1
net.netfilter.nf_conntrack_tcp_timeout_established = 3600
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 1
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 1
net.netfilter.nf_conntrack_tcp_timeout_last_ack = 1
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 1
net.netfilter.nf_conntrack_tcp_timeout_close = 1
net.netfilter.nf_conntrack_tcp_timeout_max_retrans = 300
net.netfilter.nf_conntrack_udp_timeout = 30
net.netfilter.nf_conntrack_udp_timeout_stream = 180
net.netfilter.nf_conntrack_icmp_timeout = 30

이런 값들을 말씀하시는건가요 ?

yundorri의 이미지

sysctl 명령을 사용하면 됩니다.

/sbin/sysctl -w net.ipv4.tcp_syn_retries="0"

여기서 0이면 약 3초, 1이면 9초, 기본값은 5로 약 180초 정도 됩니다.

http://kldp.org/KoreanDoc/html/Kernel-KLDP/network.html#TCPVARS

찾기가 쉽지 않았네요.