Когда я добавляю правила iptables на сервер (в локальной сети), соединение становится очень медленным. Это подтверждается как для SSH (вход в систему происходит намного медленнее), так и для MySQL (веб-сайты используют этот сервер в качестве своего сервера базы данных MySQL, и это соединение также очень медленное). Странно то, что AFAIK нет никаких правил, которые каким-либо образом ограничивают скорость. Я только доступ ограничиваю. Это набор правил:
$ iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- localnet/24 anywhere tcp dpt:www
ACCEPT tcp -- localnet/24 anywhere tcp dpt:mysql
ACCEPT tcp -- localnet/24 anywhere tcp dpt:22
DROP all -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- localnet/24 anywhere ctstate NEW
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Примечание: помимо SSH и MySQL, я также ограничиваю доступ к Apache, как видно. это не является замедлился и, похоже, работает нормально. И чтобы показать, что происходит медленно: подключение к SSH зависает на 10-15 секунд, прежде чем продолжить, а установка MySQL замедлит веб-страницы примерно на 15-60 секунд.
Примечание 2: это все правила iptables в брандмауэре (правила FORWARD используются для совместного использования Интернета). Если я просто сброшу его, SSH / MySQL мгновенно откликнется.
Это почти похоже на то, что запросы DNS не выполняются и истекает время ожидания. Вам может потребоваться СВЯЗАННОЕ, УСТАНОВЛЕННОЕ правило в вашей цепочке INPUT, чтобы ответы DNS могли возвращаться на ваши серверы SSH и MySQL.
Я нашел решение в другом ответе добавить СВЯЗАННОЕ, УСТАНОВЛЕННОЕ правило
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
причина, по которой я столкнулся с той же проблемой, я изменил политику iptables, чтобы отклонить все подключения
iptables --policy INPUT DROP
^^ это вызывает проблему, и приведенный выше код решает ее.