如何通过防火墙设置将到 mysql 服务器的入站连接限制到指定的 IP 地址

如何通过防火墙设置将到 mysql 服务器的入站连接限制到指定的 IP 地址

背景目的:我想通过设置入站规则来限制仅针对特定主机的 MYSQL 服务器的入站连接Windows防火墙。我的意思是,我只想允许特定主机连接到 MYSQL 服务器。

在 Windows 防火墙设置中,默认情况下我看到的是以下内容:

在此处输入图片描述

两个端口都已打开。因此,我阻止了到端口 33060 的所有入站连接,因为我不希望有来自 X-Protocol 的入站连接:

在此处输入图片描述

然后,我尝试从本地 PC 连接到 MYSQL 服务器,连接成功。接下来,我尝试将 MYSQL 服务器端口 3306 的入站连接限制为指定的 IP 地址:

首先,如果连接安全,请选择允许连接。 在此处输入图片描述

第二,指定我要连接到此 MYSQL 服务器的远程 IP 地址。 在此处输入图片描述

在上图中涂黑的部分,我输入了我本地电脑的全局 IP 地址(IPv4)。我以 XX.XXX.XXX.XX 格式输入。我的全局 IP 地址是在此在线服务。然后我测试从本地电脑连接到 MYSQL 服务器,但是没有连接成功。

我通过Test-NetConnectionWindows Powershell 测试了连接。但是,端口连接失败。

在此处输入图片描述

我哪里错了?

测试1:

我也进行了如下测试。

我将设置更改如下: Remote IP address改为Any IP address

在此处输入图片描述

并保留以下设置:

Allow the connection if it is secure

在此处输入图片描述

然后,在 Windows Powershell 中尝试Test-NetConnection。但它无法连接到端口。

测试2:

我也再次进行了如下测试。

我继续像下面这样设置: Remote IP address

在此处输入图片描述

并更改了以下设置:

Allow the connection

在此处输入图片描述

然后,在 Windows Powershell 中尝试Test-NetConnection。但它无法再次通过端口。

答案1

您需要将设置更改为允许此连接,而不是“如果安全则允许此连接”。

后一种设置仅当通过 IPSec 保护时才允许连接,而您几乎肯定不会使用并且永远不会使用 IPSec。

答案2

删除“如果连接安全则允许连接”选项。这将添加 MySQL 客户端不支持的额外身份验证和加密层。您无法在此处使用它。

此外,如果您只收到以下消息failed,例如你的截图,则 MySQL 服务器未监听该接口。如果问题出在防火墙上,您将收到一条消息TimedOut

确保 MySQL 服务器正在监听外部接口或所有接口(0.0.0.0),而不是仅仅监听环回接口(127.0.0.1),这很可能是默认设置。

您可以通过在服务器上运行以下命令来检查:

Get-NetTCPConnection -State Listen -LocalPort 3306

相关内容