Mysql
 sql >> Database >  >> RDS >> Mysql

Connettiti in remoto a MySQL su Google Compute Engine VM

Ho appena trovato la soluzione al mio problema,

Un ringraziamento speciale a @Slava per avermi indicato la strada, dopotutto era iptables.

Quindi, continuavo a ricevere un messaggio "Connessione MySQL rifiutata" quando provavo a connettermi in remoto, quindi ho cercato un modo per vedere i registri delle connessioni TCP e ho trovato tcpdump comando.

Eseguendo sudo tcpdump port 3306 -vvv -n Ho visto il seguente output ogni volta che ho provato a connettermi in remoto:

Ho cercato nella pagina man di tcpdump e ho visto che R significa flag TCP RST (RESET).

Ho cercato un po' e ho trovato questo domanda e la sua risposta accettata mi ha portato di nuovo in IPTABLES che @Slava ha suggerito sin dal primo commento.

In quel momento ho guardato da vicino e ho visto che il mio INPUT ACCEPT tcp:3306 è stato definito dopo la regola REJECT TCP rifiuto-con tcp-reset, quindi il registro veniva mostrato.

Dopo questo ho appena rimosso la regola per accettare tcp:3306 e l'ho anteposta alle regole di rifiuto tcp e voilà!

iptables -D INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
iptables -I INPUT {line number from the first reject tcp rule} -p tcp -m tcp --dport 3306 -j ACCEPT

IPTABLES ora si presenta così e finalmente posso connettermi a MySQL da remoto:

Per elencare gli iptables con i numeri di riga, digita:

sudo iptables -nL --line-numbers

Considerazioni finali:

  • Questo può essere migliorato inserendo nella whitelist l'indirizzo IP di origine da cui stai effettuando la connessione remota per questioni di sicurezza.