如何在linux中找到连接超时值?

Mr.*_*oon 2 nginx timeout keepalive ddos

我正在使用 php-fpm 和 (d)dos deflate 设置一个 nginx 网络服务器以禁止攻击。

现在我的服务器根本没有流量,因为我正在测试。

使用此命令,我可以查看谁连接到我的服务器,以及他们打开了多少个连接:

netstat -ntu | awk '{print $5}' | 剪切 -d: -f1 | 排序 | uniq -c | 排序 -n

在测试期间,我注意到当我加载一个测试脚本时,它基本上<?php phpinfo(); ?>会启动 3 个连接。我猜 1 表示 HTML,2 表示该页面上的 2 张图像。到目前为止一切都很好...

但我注意到在关闭这 3 个连接之前花了一分钟多的时间。我一直在运行上面的 netstat 命令来查看这 3 个外部连接是否会关闭。

我的 nginx.conf 的保持活动超时为 4。

  keepalive_timeout       4;
Run Code Online (Sandbox Code Playgroud)

连接是通过默认设置的 Chrome 浏览器进行的。

这些连接怎么保持打开这么长时间,这正常吗?另外,有没有办法可以更快地关闭它们?

Mug*_*hil 7

您可以使用目录 /proc/sys/net/ipv4/ 中的文件 tcp_keepalive_time 增加或减少 TCP 套接字的超时时间。

默认超时值为 7200(2 小时)。

例如,要更改为 1200 秒,请发出如下命令:

#echo 1200 > /proc/sys/net/ipv4/tcp_keepalive_time
Run Code Online (Sandbox Code Playgroud)