如何透過防火牆設定限制對mysql伺服器的入站連線到指定的IP位址

如何透過防火牆設定限制對mysql伺服器的入站連線到指定的IP位址

背景目的:我想透過設定入站規則來限制僅特定主機對MYSQL伺服器的入站連接視窗防火牆。我的意思是,我只想允許特定主機連接到 MYSQL 伺服器。

在Windows防火牆設定中,這是我預設看到的:

在此輸入影像描述

兩個連接埠均已開啟。因此,我阻止了到連接埠 33060 的所有入站連接,因為我不希望來自 X-Protocol 的入站連接:

在此輸入影像描述

然後,我嘗試從本機連接MYSQL伺服器,連線成功。接下來,我嘗試將 MYSQL 伺服器的 3306 連接埠的入站連線限制為僅指定的 IP 位址:

首先,如果連線安全,請選擇「允許連線」。 在此輸入影像描述

其次,指定我連接到此 MYSQL 伺服器的遠端 IP 位址。 在此輸入影像描述

在上圖中的黑色部分,我輸入了本機的全域 IP 位址(IPv4)。我以 XX.XXX.XXX.XX 格式輸入。我的全球 IP 位址是這項線上服務。然後我測試從本地電腦連接MYSQL伺服器,但沒有成功。

Test-NetConnection我在 Windows powershell 中測試了連線。但是,與連接埠的連線失敗..

在此輸入影像描述

我有什麼問題嗎?

測試1:

我也進行瞭如下測試。

我將設定更改如下: 更改 Remote IP address為 by 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 保護的情況下才允許連接,而您幾乎肯定不會使用 IPSec。

答案2

刪除“如果安全性則允許連線”選項。這增加了 MySQL 用戶端不支援的額外身份驗證和加密層。你不能在這裡使用它。

此外,如果您只收到訊息failed,如你的截圖,那麼 MySQL 伺服器就沒有監聽該介面。如果問題出在防火牆上,您會收到一封訊息TimedOut

確保 MySQL 伺服器正在偵聽外部介面或所有介面 (0.0.0.0),而不是僅偵聽環回介面 (127.0.0.1),這很可能是預設值。

您可以透過在伺服器上執行以下命令來檢查:

Get-NetTCPConnection -State Listen -LocalPort 3306

相關內容