![如何限制用户可以使用的连接数?](https://linux22.com/image/698602/%E5%A6%82%E4%BD%95%E9%99%90%E5%88%B6%E7%94%A8%E6%88%B7%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%E7%9A%84%E8%BF%9E%E6%8E%A5%E6%95%B0%EF%BC%9F.png)
greedyprocess
我有一个始终以用户身份运行的进程,它使用了太多的 NAT 连接。它们并没有占用太多带宽,而是堵塞了路由器的 NAT 表。是否可以将用户限制为 1000 个打开的连接?我更希望对可以打开的greedyuser
套接字数量进行某种内核限制。greedyuser
服务器运行 debian jessie(撰写本文时为稳定分支)。不,我无法绕过 NAT,因为我无法控制路由器。
用户的打开文件限制为 166,384,如果可能的话,我宁愿不降低这个限制。我只想限制打开的套接字,而不是所有打开的文件。
答案1
iptables
使用connlimit
和owner
扩展可能会有帮助。类似的东西(未经测试):
iptables -A OUTPUT -m owner --uid-owner greedyuser -m connlimit --connlimit-above 1000 -j REJECT