La porta 3306 sembra essere chiusa sul mio server Ubuntu


33

Ho due server VPS ed entrambi hanno installato MySQL , uno per i test e uno per lo sviluppo. Uno dei miei server non mi consente di connettermi dall'esterno. Con l'utente;

'Mytestuser' @ '%'

Secondo un rilevatore di porte aperte , la porta 3306 per il server incriminato sembra essere chiusa. Ho programmi C ++ e Java di mio ascolto su porte arbitrarie senza problemi. Perché sta succedendo e come posso risolverlo?

Ubuntu installato è Ubuntu 11.10 (GNU / Linux 2.6.32-042stab072.10 x86_64)

Risultati di netstat -tuplesu ciascun server

Server offensivo

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

Server funzionante

tcp        0      0 *:mysql                 *:*                     LISTEN      mysql      1847519288  -

Risposte:


76

Il problema era che il server stava ascoltando solo internamente.

Rimozione della riga bind-address 127.0.0.1da /etc/mysql/my.cnfrisolto il problema.

Le versioni più recenti di Ubuntu (≥16.04) potrebbero contenere questa riga /etc/mysql/mysql.conf.d/mysqld.cnf.


2
Questo ha funzionato per me. Nota che il nome file corretto è /etc/mysql/my.cnf, no /etc/mysql/my.conf.
Larry Battle,

Ho modificato il mio indirizzo di bind in modo che corrisponda all'indirizzo IP esterno del server e ha funzionato per me.
Buttle Butkus,

Rimuovere completamente la linea e il server ascolterà TUTTE le interfacce
s1mmel

Mi hai salvato la giornata, hai provato a risolvere questo problema per un paio di settimane, grazie!
Budiantoip,

9

Il mio consiglio, se sei sicuro che le porte siano chiuse (trovo strano che un VPS abbia quella porta chiusa) è di cambiare il file di configurazione di MySQL per usarne un altro.

Basta aprire il file di configurazione nel terminale sudo nano /etc/mysql/mysql.confe cercare la [mysqld]sezione. In esso, cerca la riga che legge port = 3306. Modificalo su un'altra porta non utilizzata e salva il file.

Quindi semplicemente riavviare il VPS o riavviare il servizio, come sudo service mysql restart.

Solo per notare che, se il file mysql.confnon è in quello che ho menzionato sopra, può essere in questi altri posti:

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

E se il servicecomando non funziona, procedere come segue:

sudo /etc/init.d/mysql restart

Se il problema persiste, nel mio caso controllerei iptables (in realtà eliminerei tutto in iptables solo per ricominciare da capo se questa potrebbe essere un'opzione) o qualsiasi altra opzione abilitata per il firewall.

Dato che sono VPS, vorrei anche controllare il pannello di controllo VPS per vedere se ha qualche opzione che può bloccare le porte.

A parte questo, correrei nmapsul VPS per vedere quali porte hai aperto. È necessario eseguirlo dall'esterno del VPS per vedere quali porte hanno aperto.

netstat -tuplen è anche una buona idea vedere quali porte aperte hai sul server e quali sono in modalità ASCOLTA.


Ehi, l'ho provato su un'altra porta e non si comporta ancora bene, ho anche provato 'iptables -A INPUT -i eth0 -p tcp -m tcp --dport PORT -j ACCEPT' ma senza fortuna :( .. edit im not o o eth0 .. potrebbe avere ancora speranza
Andy,

@Andy Risposta aggiornata per includere altri suggerimenti.
Luis Alvarado,

Grazie per i suggerimenti Luis esaminerò questo.
Andy,

Ho aggiornato i risultati di netstat -tuple alla domanda. Sembra che ci sia un problema qui.
Andy,


6

Io uso questo metodo:

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

Non è necessario modificare altri file di configurazione e nessuna porta aggiuntiva viene aperta per impostazione predefinita.


sudo ufw allow 3306/tcpHo provato a modificare, ma non me lo permetterebbe
Adam

1

Può succedere che la tua configurazione sia nella directory /etc/mysql/mysql.conf.d/mysqld.cnf, verifica se non è così.


1
Stavo cercando di capirlo per circa tre ore prima di vederlo, grazie!
Oliver Ni,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.