фоновая цель: я хочу ограничить входящее соединение с сервером MYSQL только для определенного хоста, установив входящие правила Брандмауэр Windows. Я имею в виду, я хочу разрешить только определенному хосту подключаться к серверу MYSQL.
В настройках брандмауэра Windows это то, что я видел по умолчанию:
оба порта открыты. Итак, я заблокировал все входящее соединение с портом 33060, потому что я не ожидаю входящего от X-Protocol:
Затем я попытался подключиться к серверу MYSQL со своего локального компьютера, и соединение прошло успешно. Затем я попытался ограничить входящее подключение к порту 3306 сервера MYSQL только указанным IP-адресом:
сначала выберите Разрешить соединение, если оно безопасное.
во-вторых, указанный удаленный IP-адрес, по которому я подключаюсь к этому серверу MYSQL.
в части, затемненной на изображении выше, я ввел свой глобальный IP-адрес (IPv4) своего локального компьютера. Я набрал его в формате XX.XXX.XXX.XX. Я получил свой глобальный IP-адрес в этот онлайн сервис. затем я протестировал подключение к серверу MYSQL с моего локального компьютера, но мне не удалось пройти.
Я проверил соединение Test-NetConnection
в Windows PowerShell. Но соединение с портом не удалось ..
в чем я виноват?
Test1:
Я тоже тестировал, как показано ниже.
Я меняю настройку, как показано ниже: Remote IP address
к Any IP address
.
и оставил настройку ниже как есть:
Allow the connection if it is secure
тогда попробуйте Test-NetConnection
в Windows PowerShell. но до порта не доходит ..
Test2:
Я снова протестировал, как показано ниже.
Я продолжаю устанавливать, как показано ниже: Remote IP address
.
и изменил настройку ниже:
Allow the connection
тогда попробуйте Test-NetConnection
в Windows PowerShell. но он снова не доходит до порта ..
Вам нужно изменить настройку на Разрешить это соединение, а не «Разрешить это соединение, если оно безопасное».
Последний параметр разрешит соединение, только если оно защищено через IPSec, который вы почти наверняка не используете и никогда не будете использовать.
Уберите опцию «разрешить соединение, если оно безопасное». Это добавляет дополнительный уровень аутентификации и шифрования, который не поддерживается клиентом MySQL. Вы не можете использовать это здесь.
Кроме того, если вы получаете только сообщение failed
, как в ваш скриншот, то сервер MySQL не прослушивает этот интерфейс. Если бы проблема была в брандмауэре, вы бы получили сообщение TimedOut
.
Убедитесь, что сервер MySQL прослушивает внешний интерфейс или все интерфейсы (0.0.0.0), а не только интерфейс обратной петли (127.0.0.1), который, скорее всего, используется по умолчанию.
Вы можете проверить это, запустив на сервере:
Get-NetTCPConnection -State Listen -LocalPort 3306