我对限制并发网络连接数有疑问。我只需要设置它们,这样我的机器就可以永不生产超过200个并发网络连接,但是我无法这样做。
这是我的 /etc/sysctl.conf:
net.ipv4.netfilter.ip_conntrack_max=100
fs.inotify.max_user_watches=100000
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_tw_reuse = 0
net.ipv4.tcp_orphan_retries = 1
net.ipv4.tcp_fin_timeout = 25
net.ipv4.tcp_max_orphans = 150
我理解这个设置意味着连接数不应超过 150 个连接,但是,例如,当我同时在 Firefox 中打开多个页面时,我可以看到这个设置不被遵守 -netstat | grep tcp | wc -l
显示更多的连接。
以下是有关我的系统的一些信息:
[firzen:~] lsb_release -sd
Debian GNU/Linux 7.7 (n/a)
[firzen:~] uname -r
3.2.0-2-686-pae
[firzen:~] arch
i686
我该如何修复?这对我来说确实是一个关键设置。
提前致谢!
答案1
根据内核文档:
tcp_max_orphans - INTEGER
系统持有的未连接到任何用户文件句柄的 TCP 套接字的最大数量。如果超过此数量,孤立连接将立即重置并打印警告。此限制仅用于防止简单的 DoS 攻击,您必须不要依赖这个或人为地降低限制,而是增加它(可能在增加安装的内存后),如果网络条件需要超过默认值,并调整网络服务以更积极地拖延和消除此类状态。让我再次提醒:每个孤儿最多会占用约 64K 的不可交换内存。
所以不,这并不限制打开连接。相反,您必须以某种方式使用 IPTables,因为这显然与防火墙有关。