Jag hittade precis lösningen på mitt problem,
Speciellt tack till @Slava för att du visade mig vägen, trots allt var det iptables.
Så jag fick hela tiden meddelandet "MySQL-anslutningen nekad" när jag försökte ansluta på distans så jag sökte efter ett sätt att se TCP-anslutningsloggar och jag hittade tcpdump
kommando.
Genom att köra sudo tcpdump port 3306 -vvv -n
Jag såg följande utdata varje gång jag försökte ansluta på distans:
Jag sökte på tcpdump man-sidan och såg att R betyder för TCP RST (RESET) flagga.
Sökte lite och hittade denna fråga och dess accepterade svar ledde mig igen till IPTABLES som @Slava föreslog sedan den första kommentaren.
Det var då jag tittade noga och såg att min INPUT ACCEPT tcp:3306 definierades efter REJECT TCP reject-with tcp-reset-regeln, så loggen visades.
Efter detta tog jag bara bort regeln för att acceptera tcp:3306 och satte den inför reglerna för avvisa tcp och voila!
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 ser nu ut så här och äntligen kan jag ansluta till MySQL på distans:
För att lista iptables med radnummer skriv:
sudo iptables -nL --line-numbers
Sista tankar:
- Detta kan förbättras genom att vitlista käll-IP-adressen varifrån du gör fjärranslutningen för säkerhetsfrågor.