KTa*_*mas 35 networking linux tcpip debian netstat
好吧,这让我毛骨悚然 - 我看到了大约 1500-2500 个:
root@wherever:# netstat
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost:60930 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60934 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60941 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60947 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60962 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60969 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60998 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60802 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60823 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60876 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60886 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60898 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60897 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60905 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60918 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60921 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60673 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60680 localhost:sunrpc TIME_WAIT
[etc...]
root@wherever:# netstat | grep 'TIME_WAIT' |wc -l
1942
Run Code Online (Sandbox Code Playgroud)
这个数字正在迅速变化。
我确实有一个非常严格的 iptables 配置,所以我不知道是什么导致了这种情况。有任何想法吗?
谢谢,
塔马斯
编辑:'netstat -anp' 的输出:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:60968 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60972 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60976 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60981 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60980 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60983 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60999 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60809 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60834 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60872 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60896 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60919 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60710 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60745 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60765 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60772 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60558 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60564 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60600 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60624 127.0.0.1:111 TIME_WAIT -
Run Code Online (Sandbox Code Playgroud)
小智 29
编辑: tcp_fin_timeout不控制 TIME_WAIT 持续时间,它是硬编码在 60s
正如其他人所提到的,有一些连接TIME_WAIT
是 TCP 连接的正常部分。您可以通过检查来查看间隔/proc/sys/net/ipv4/tcp_fin_timeout
:
[root@host ~]# cat /proc/sys/net/ipv4/tcp_fin_timeout
60
Run Code Online (Sandbox Code Playgroud)
并通过修改该值来更改它:
[root@dev admin]# echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
Run Code Online (Sandbox Code Playgroud)
或者通过将其永久添加到 /etc/sysctl.conf
net.ipv4.tcp_fin_timeout=30
Run Code Online (Sandbox Code Playgroud)
此外,如果您不使用 RPC 服务或 NFS,您可以将其关闭:
/etc/init.d/nfsd stop
Run Code Online (Sandbox Code Playgroud)
并将其完全关闭
chkconfig nfsd off
Run Code Online (Sandbox Code Playgroud)
这不重要。这意味着您正在打开和关闭大量 Sun RCP TCP 连接(每 2-4 分钟有 1500-2500 个连接)。TIME_WAIT
状态是套接字关闭时进入的状态,以防止消息到达错误的应用程序,就像如果套接字被重用太快一样,以及用于其他一些有用的目的。别担心。
(当然,除非您实际上没有运行任何应该处理那么多 RCP 操作的程序。那么,请担心。)