У меня есть сервер, на котором apache прослушивает несколько портов. Некоторые порты используются для настройки сервера, а другие используются для загрузки больших файлов.
Моя проблема в том, что при большом количестве клиентов, загружающих файлы, с веб-интерфейсом невозможно связаться. Я хотел бы ограничить количество клиентов, подключающихся к порту «большой файл», чтобы у apache всегда были доступные подключения для настройки сервера. ОТКЛОНЕНИЕ - это нормально, клиент, пытающийся загрузить файл, отступит и попытается повторить попытку позже. У каждого клиента одновременно открыто только одно соединение с сервером, поэтому ограничение по IP не работает.
Я знаю, что могу поставить что-нибудь перед apache, чтобы справиться с этим, но мне бы очень хотелось сделать это в iptables, без добавления дополнительного программного обеспечения.
Вы могли бы попробовать --connlimit
с --connlimit-mask
возможность установить маску 0.
iptables -A INPUT -p tcp --dport XXY -m connlimit --connlimit-above 5 --connlimit-mask 0 -j REJECT
куда XXY
- это порт, к которому вы хотите установить ограничение скорости соединений.