背景目的: MYSQLサーバーへの受信接続を特定のホストのみに制限するために、受信ルールを設定します。Windowsファイアウォールつまり、特定のホストのみが MYSQL サーバーに接続できるようにしたいのです。
Windows ファイアウォールの設定では、デフォルトで次のように表示されます。
両方のポートが開いています。そのため、X プロトコルからの受信は想定していないため、ポート 33060 へのすべての受信接続をブロックしました。
次に、ローカル PC から MYSQL サーバーに接続しようとしたところ、接続に成功しました。次に、MYSQL サーバーのポート 3306 への着信接続を、指定した IP アドレスのみに制限してみました。
2 番目は、この MYSQL サーバーに接続するために指定したリモート IP アドレスです。
上の画像の黒く塗りつぶされた部分に、ローカルPCのグローバルIPアドレス(IPv4)を入力しました。XX.XXX.XXX.XX形式で入力しました。グローバルIPアドレスはこのオンラインサービス. その後、ローカル PC から MYSQL サーバーに接続しようとしましたが、接続できませんでした。
Windows PowerShellで接続をテストしましたTest-NetConnection
。しかし、ポートへの接続に失敗しました。
私の何が間違っているのでしょうか?
テスト1:
以下のようにもテストしました。
Remote IP address
以下のように設定を変更します
Any IP address
。
以下の設定はそのままにしておきます。
Allow the connection if it is secure
次に、Test-NetConnection
Windows PowerShell で試してください。ただし、ポートにアクセスできません。
テスト2:
以下のように再度テストしてみました。
以下のように設定し続けます
Remote IP address
。
以下の設定を変更しました:
Allow the connection
次に、Test-NetConnection
Windows PowerShell で試してください。ただし、ポートに再度アクセスできません。
答え1
設定を変更する必要がありますこの接続を許可する「安全な場合はこの接続を許可する」ではなく、「安全な場合はこの接続を許可する」です。
後者の設定では、接続が IPSec で保護されている場合にのみ接続が許可されますが、これはほとんど使用されていないし、今後も使用されることはありません。
答え2
「安全な場合は接続を許可する」オプションを削除します。これにより、MySQL クライアントでサポートされていない追加の認証および暗号化レイヤーが追加されます。ここでは使用できません。
さらに、メッセージ のみを受け取った場合failed
、あなたのスクリーンショットの場合、MySQL サーバーはそのインターフェースをリッスンしていません。問題がファイアウォールにある場合は、メッセージが表示されますTimedOut
。
MySQL サーバーが、おそらくデフォルトのループバック インターフェイス (127.0.0.1) のみではなく、外部インターフェイスまたはすべてのインターフェイス (0.0.0.0) でリッスンしていることを確認します。
これを確認するには、サーバー上で次のコマンドを実行します:
Get-NetTCPConnection -State Listen -LocalPort 3306