Я пытаюсь подключиться к порту 3306 в системе Ubuntu и не могу этого сделать. Когда я делаю iptables -L -n | grep 3306
Я вижу это:
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:3306
Похоже, я смогу подключиться.
Есть ли какие-то правила, которые я должен найти, чтобы их отменить? Беглым взглядом я ничего не увидел. Плюс, когда я это сделаю grep 80
и grep 443
Я вижу почти то же самое, что и выше, но с 80 и 443 вместо 3306. И я могу подключиться к портам 80 и 443, даже если я не могу подключиться к порту 3306.
Веб-сервер размещен в облаке стойки. Я знаю, что у AWS есть дополнительные правила брандмауэра, не зависящие от устанавливаемой ОС - есть ли место в стойке? Я не смог найти ничего в меню, и мои поиски в Google тоже не оказались очень плодотворными.
В общем, вы должны учитывать 1) адрес привязки MySQL и 2) брандмауэр.
Поскольку вы не можете установить соединение с telnet SERVER_IP 3306
, либо брандмауэр блокирует соединение, либо MySQL не прослушивает этот порт.
Вы должны просмотреть свои правила брандмауэра как набор, без использования grep, чтобы увидеть, есть ли какие-либо подходящие правила. выше тот, который вы вставили в свой вопрос.
Что касается вашего брандмауэра, это обычно BadIdea ™: 3306 для публичного доступа в Интернет. Я предпочитаю использовать SSH туннель для подключения к моим удаленным базам данных.
Либо поищите "bind_address" в конфигурации MySQL, либо попробуйте netstat -plnt
и найдите MySQL в списке. Чтобы принимать удаленные подключения, bind_address должен иметь значение, отличное от «127.0.0.1» (туннели SSH позволяют обойти это!).