KVM 仮想マシンで http リクエストは動作しますが、mysql は動作しませんか?

KVM 仮想マシンで http リクエストは動作しますが、mysql は動作しませんか?

KVM 仮想マシンを備えた Ubuntu サーバーがあります。

ファイアウォールで SSH を許可して、ホストにアクセスできるようにしました。また、状態に関連した確立済みの着信トラフィックも許可しました。

これはホストの完全な iptables 設定です。

Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     tcp  --  [MYIP]               anywhere             tcp dpt:ssh
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DNAT       all  --  [MYIP]               [VSERVER IP]  to:192.168.122.122

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  192.168.122.0/24    !192.168.122.0/24

仮想サーバーは Windows で実行され、ローカル IP を持ちます。192.168.122.122でわかるようにPREROUTING、すべてのポートで自分だけがアクセスできるように設定されています。

リモート デスクトップは正常に動作し、外部 IP ([VSERVER IP]) を使用してサーバーに接続できました。サーバーに接続したら、Internet Explorer を開いて stackoverflow.com と入力してみました。動作し、ページが表示されます。

.NET MySql.Data.dllしかし、他のサーバーにクエリを実行する単純なMySQLプログラム(を使用)を実行すると、次のエラーで失敗します。

MySql.Data.MySqlClient.MySqlException (0x800004005): 
Unable to connect to any of the specified MySQL hosts.

それはなぜでしょうか? どの Web サーバーへの HTTP リクエストも問題なかったのに、なぜ MySQL クエリでは問題になるのでしょうか?

ちなみに、外部の Mysql サーバーはリクエストをドロップしていません (ファイアウォールが一時的に無効になっています)。iptables に何か問題があるはずですが、それが何なのかはわかりません。

この問題を解決するにはどうすればいいでしょうか?

答え1

残念ながら、私の (外部) MySQL ホストのファイアウォールに、私が知らなかったエラーが発生しました。結局、vServer の IP の MySQL ポートがブロックされていたため、リクエストが返されず、HTTP リクエストは機能していました。

問題は解決されました。

常にすべてのファイアウォールを再確認してください。教訓を得ました。

関連情報