A porta 3306 parece estar fechada no meu servidor Ubuntu

27

Eu tenho dois servidores VPS , e ambos têm MySQL instalado, um para teste e outro para desenvolvimento. Um dos meus servidores não me permite conectar de fora. Com o usuário;

  

'mytestuser' @ '%'

De acordo com um localizador de porta aberta , a porta 3306 do servidor incorreto parece estar fechada. Eu tenho programas em C ++ e Java de minha própria audição em portas arbitrárias sem quaisquer problemas. Por que isso está acontecendo e como posso corrigi-lo?

O Ubuntu instalado é o Ubuntu 11.10 (GNU / Linux 2.6.32-042stab072.10 x86_64)

Resultados de netstat -tuple em cada servidor

Servidor ofensivo

tcp        0      0 localhost.lo:submission *:*                     LISTEN      root       39967664    -

Servidor de trabalho

tcp        0      0 *:mysql                 *:*                     LISTEN      mysql      1847519288  -
    
por Andy 25.03.2013 / 02:58

5 respostas

57

O problema era que o servidor estava escutando apenas internamente.

A remoção da linha bind-address 127.0.0.1 de /etc/mysql/my.cnf resolveu o problema.

Novas versões do Ubuntu (≥16.04) podem ter essa linha em /etc/mysql/mysql.conf.d/mysqld.cnf .

    
por Andy 25.03.2013 / 23:20
8

Minha sugestão, se você tiver certeza de que as portas estão fechadas (eu acho estranho que um VPS tenha essa porta fechada) é mudar o arquivo de configuração do MySQL para usar outro.

Basta abrir o arquivo de configuração no terminal sudo nano /etc/mysql/mysql.conf e procurar a seção [mysqld] . Nele, procure a linha que lê port = 3306 . Mude para outra porta não usada e salve o arquivo.

Em seguida, simplesmente reinicie o VPS ou reinicie o serviço, como sudo service mysql restart .

Só para observar que, se o arquivo mysql.conf não estiver no arquivo que mencionei acima, ele pode estar nesses outros locais:

/etc/my.conf
/etc/my.cnf
/etc/mysql/my.conf

E se o comando service não funcionar, faça o seguinte:

sudo /etc/init.d/mysql restart

Se o problema persistir, no meu caso eu verificaria iptables (eu realmente apagaria tudo no iptables apenas para começar novo, se puder ser uma opção) ou qualquer outra opção ativada por firewall.

Como são VPS, eu também verifico o Painel de Controle do VPS para ver se há alguma opção que possa bloquear portas.

Além disso, eu executaria nmap no VPS para ver quais portas você abriu. Você precisa executá-lo de fora do VPS para ver quais portas eles abriram.

netstat -tuplen também é uma boa ideia para ver quais portas abertas você tem no servidor e quais estão no modo LISTEN.

    
por Luis Alvarado 25.03.2013 / 03:16
4

Eu uso este método:

sudo ufw status
sudo ufw allow XXXX/tcp
# use a port other than the default/predictable 3306
# work outside, and close the door when you are done
sudo ufw deny XXXX/tcp

Não é necessário alterar outros arquivos de configuração e nenhuma porta extra é aberta por padrão.

    
por ftcosta 20.06.2015 / 14:06
1

Eu consertei isso alterando bind-address 127.0.0.1 para bind-address 0.0.0.0 em /etc/mysql/mysql.conf.d (para que o MySQL escuta em todas as portas).

Além disso, eu configurei uma conta de usuário mysql para ser usada remotamente (veja link ).

    
por Jon Onstott 06.04.2016 / 18:10
1

Pode acontecer que a sua configuração esteja no diretório /etc/mysql/mysql.conf.d/mysqld.cnf , verifique se esse não é o caso.

    
por winter 20.10.2016 / 10:21

Tags