
Я пытаюсь настроить mysql удаленно. Я следовал нескольким руководствам, таким какэтот, и в итоге я использовал nmap, чтобы посмотреть, какие порты открыты.
Когда я работаю на ноутбуке, nmap -P0 <server>
выдает:
Nmap scan report for <> (ip.address.here)
Host is up (0.054s latency).
Not shown: 997 filtered ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
Поэтому порт 3306 не отображается открытым.
Однако на моем сервере (Ubuntu 14.04) при запуске nmap -P0 localhost
я получаю следующее:
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00064s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
443/tcp open https
3306/tcp open mysql
Что подразумевает, что порт открыт, как и должно быть. Что может быть причиной несоответствия? (Правда, это мой первый опыт использования nmap). Это ли причина, по которой я не могу подключиться к своему серверу MySQL?
Кроме того, с моего ноутбука (Windows с использованием подсистемы Linux) telnet <host> 3306
выдается ошибка о том, что удаленный ресурс недоступен.
решение1
Отчет nmap
по вашему ноутбуку включает строку:
Не показано: 997 отфильтрованных портов
Здесь,отфильтрованоуказывает на то, что брандмауэр блокирует доступ ко всем портам, кроме 22, 80 и 443. Это контрастирует с выводом nmap
при запуске на самом сервере:
Не показано: 995 закрытых портов
В этом случае,закрытопросто означает, что ни один процесс не прослушивает 995 протестированных портов.
Брандмауэр может быть запущен на самом сервере (если он работает на системе GNU/Linux, это можно проверить, запустив iptables -L
) или он может быть запущен на каком-то промежуточном шлюзе.
Если вам требуется внешний доступ к MySQL, вам необходимо настроить брандмауэр так, чтобы он также разрешал внешний доступ к порту 3306. Я бы также рекомендовал вам настроить его так, чтобы он разрешал доступ только с вашего собственного IP-адреса или IP-адреса вашего интернет-провайдера.автономная система (АС).