問題の解決策を見つけました
道を教えてくれた@Slavaに特に感謝します。結局のところ、それはiptablesでした。
そのため、リモートで接続しようとすると「MySQL接続が拒否されました」というメッセージが表示され続けたため、TCP接続ログを表示する方法を検索し、tcpdump
を見つけました。 コマンド。
sudo tcpdump port 3306 -vvv -n
を実行する リモートで接続しようとするたびに、次の出力が表示されました。
tcpdumpのマニュアルページを検索したところ、RはTCP RST(RESET)フラグを意味していることがわかりました。
少し検索して、この質問 そして、その受け入れられた答えは、@Slavaが最初のコメント以来提案したIPTABLESに再び私を導きました。
そのとき、よく調べて、私のINPUT ACCEPT tcp:3306がREJECT TCPreject-with tcp-resetルールの後に定義されているので、ログが表示されていることがわかりました。
この後、tcp:3306を受け入れるルールを削除し、tcpルールを拒否して出来上がりの前に追加しました!
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は次のようになり、最終的にMySQLにリモートで接続できます:
行番号付きのiptablesを一覧表示するには、次のように入力します。
sudo iptables -nL --line-numbers
最終的な考え:
- これは、セキュリティ問題のためにリモート接続を行っている場所から送信元IPアドレスをホワイトリストに登録することで改善できます。