我看到很多人问 netstat 中存在大量 TIME_WAIT。我遇到了类似的问题,但所有 TIME_WAIT 都来自同一个 IP 地址。我得到了超过 200 条以下行:
tcp6 0 0 myip:80 otherip:##### TIME_WAIT
出现 200 多个这样的问题,而且所有问题的 otherip 都使用相同的 IP,这是不好的征兆吗?我有多个网站在运行,但流量很低。所有网站加起来,每天通过 Google Analytics 记录的访问量不到 200 次。我使用 Apache 作为服务器。我在其他时候也遇到过这个问题,来自不同的 IP 地址。当这种情况发生时,我会检查 netstat 以响应我使用 Rackspace 设置的监控检查。这些通常包括服务器负载和内存的警告或严重错误,有时还包括我的服务器的响应时间过长。
发生这种情况时,MySQL 也曾多次停止工作。我有 1 GB 的 RAM 和 1 GB 的交换空间。
编辑:我做了更多搜索,并查看了我的 Apache 日志文件。我现在非常担心,因为 Wordpress 对 wp-login.php 的 POST 访问量非常大(几乎有 4000 次),所以我猜有人试图破解密码。除了更改密码,我还能做些什么吗?
答案1
首先,只想澄清一下,TIME_WAIT 与操作系统无关,关闭这些套接字是应用程序的责任。
一般来说,当套接字在规定的时间内没有收到数据时,它就会进入这种状态,而且操作系统根本无法在没有应用程序许可的情况下终止这种连接,所以套接字保持打开状态,等待超时或来自外部主机的响应。在你的情况下,即 apache,这通常发生在客户端请求数据并且从未完全关闭套接字时。
因此,为了进一步调试此问题,请运行
netstat -antulp|grep -i time_wait
检查尚未关闭套接字的应用程序的pid。