2017-01-03 3 views
0

ПРИМЕЧАНИЕ. операционная система ubuntu 14. *База данных Не подключается через общедоступный IP

Я ломаю голову над своим подключением на моем сервере MYSQL. Я пытаюсь подключиться к моему серверу MYSQL через свой общедоступный ip. Но я не могу подключиться. Хотя я могу подключиться, когда я подключаюсь к localhost и когда подключаюсь извне.

# Instead of skip-networking the default is now to listen only on 
# localhost which is more compatible and is not less secure. 
#bind-address   = 127.0.0.1 

Я прокомментировал адрес-адрес, и это должно привязать addres к 0.0.0.0. Я также попытался настроить bind-adres на 0.0.0.0. Это также не работает.

Мой хосты файл установки следующим образом:

127.0.0.1 MY-IP 

Когда я телнет на порт 80 в общедоступный IP нет никаких проблем.

telnet MY-IP 80 

я получаю:

Trying MY-IP... 
Connected to MY-IP. 
Escape character is '^]'. 

Но когда я пытаюсь это порт 3306 он продолжает:

Trying MY-IP... 

Я также получил все необходимые разрешения для моих пользователей MYSQL. И я могу подключиться к внешним и внутренним. Но мне не удается подключиться внутренне с моим публичным ip.

Также я попытался найти решение с netstat.

netstat -tln 

дают Mes

tcp  0  0 0.0.0.0:3306   0.0.0.0:*    LISTEN 

EDIT: Просто отключил UFW. Он все еще не работает.

ufw status 
Status: inactive 

EDIT2: Возможно ли, что mysql игнорирует файл/etc/hosts?

Может кто-нибудь помочь мне немного дальше с некоторыми замечательными идеями, где проблема может быть.

+1

Может быть, межсетевой экран создает проблему? откройте порт на брандмауэре: 'sudo ufw разрешить 3306/tcp' и' sudo service ufw restart' –

+2

Честно говоря, вы не хотите, чтобы ваш порт MySQL хлопал по ветру, чтобы кто-то мог щелкнуть. Это не так безопасно, как 'ssh', и часто является целью для атак типа« диск », даже типов DDOS. Если вы не можете использовать VPN или SSH-туннель, сделайте очень строгий белый список того, кто может подключиться. – tadman

+0

На данный момент я отказался от ufw. И все еще возникают проблемы, когда я пытаюсь подключиться через мой публичный ip.Также я могу полностью открыть порт для mysql на сервере. Потому что между моим сервером и большим плохим Интернетом существует отдельный межсетевой экран. (Я знаю, что это не самый чистый способ сделать) – Berend

ответ

0

Вы должны изменить адрес привязки на 0.0.0.0, а затем перезапустить mysqld. Также убедитесь, что нет брандмауэр включен:

iptables -n -L 

если существуют правила, блокирующие порт 3306, удалите их, или просто отключить firwall с

iptables -F 

также использовать NetStat, чтобы проверить, если сервер прослушивание внешнего ip:

netstat -tupan |grep :3306 
+0

Ubuntu имеет 'ufw', и любой ответ, который игнорирует это, делает это уродливым, трудным путем. – tadman

+0

Я проверил это. А также покраснели мои iptables. Проблема как-то не в любом из этих мест. Я добавил строку netstat на свой пост. "tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 19999/mysqld" – Berend

+0

Что происходит, когда вы 'nmap YOUR-EXTERNAL-IP -p3306 -Pn'? Если он дает вам «фильтрованный», это может быть межсетевой экран где-то на вашем пути к вашему внешнему IP-адресу. –

Смежные вопросы