Назад | Перейти на главную страницу

как ограничить входящее соединение с сервером mysql указанным IP-адресом с помощью настройки брандмауэра

фоновая цель: я хочу ограничить входящее соединение с сервером 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