![Linux ограничивает соединения на определенном порту](https://rvso.com/image/660557/Linux%20%D0%BE%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%B8%D0%B2%D0%B0%D0%B5%D1%82%20%D1%81%D0%BE%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%BD%D0%B0%20%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC%20%D0%BF%D0%BE%D1%80%D1%82%D1%83.png)
Я слежуограничения на соединения iptablesчтобы ограничить количество подключений, которые сервер может получить через порт 80. Например, я попробовал:
/sbin/iptables -I INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 10 -j REJECT --reject-with tcp-reset
Похоже, это ограничивает количество подключений на IP. Есть ли способ через IPTables или, может быть, sysctl ограничить количество подключений глобально. Это означает, что если, скажем, хост A заблокирует все 10 доступных сеансов, то никакой другой хост не сможет подключиться?
решение1
Вы можете изменить свое правило, добавив опцию --connlimit-mask 0
. Это позволяет вам эффективно ограничивать соединения глобально, и все IP-адреса будут обрабатываться без каких-либо различий.
Напротив, значение по умолчанию 32
для IPv4 означает сопоставление каждого отдельного IP-адреса.
Как предложил @JayMcTee, вы можете использовать решение на уровне веб-сервера для ограничения лимита подключений. Например, вы можете посмотреть на MaxClients
вариант дляапач.