背景目的:我想透過設定入站規則來限制僅特定主機對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