배경 목적: 인바운드 규칙을 설정하여 특정 호스트에 대해서만 MYSQL 서버에 대한 인바운드 연결을 제한하고 싶습니다.윈도우 방화벽. 즉, 특정 호스트만 MYSQL 서버에 연결하도록 허용하고 싶습니다.
Windows 방화벽 설정에서 기본적으로 다음과 같이 표시됩니다.
두 포트가 모두 열려 있습니다. 그래서 X-Protocol로부터의 인바운드를 기대하지 않기 때문에 포트 33060에 대한 모든 인바운드 연결을 차단했습니다.
그런 다음 로컬 PC에서 MYSQL 서버에 연결을 시도했는데 연결이 성공했습니다. 다음으로 MYSQL 서버의 포트 3306에 대한 인바운드 연결을 지정된 IP 주소로만 제한하려고 했습니다.
둘째, 이 MYSQL 서버에 연결하는 데 사용되는 원격 IP 주소를 지정했습니다.
위 이미지의 블랙아웃 부분에 로컬 PC의 글로벌 IP 주소(IPv4)를 입력했습니다. XX.XXX.XXX.XX 형식으로 입력했습니다. 글로벌 IP 주소를 얻었습니다.이 온라인 서비스. 그런 다음 로컬 PC에서 MYSQL 서버에 연결하려고 테스트했지만 연결되지 않았습니다.
Test-NetConnection
Windows Powershell에서 연결을 테스트했습니다 . 그런데 포트 연결이 실패했습니다..
내가 무슨 문제가 있니?
테스트1:
저도 아래와 같이 테스트해봤습니다.
Remote IP address
아래와 같이 설정을 변경합니다
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 서버가 아마도 기본값인 루프백 인터페이스(127.0.0.1)만이 아닌 외부 인터페이스 또는 모든 인터페이스(0.0.0.0)를 수신하고 있는지 확인하십시오.
서버에서 다음을 실행하여 이를 확인할 수 있습니다.
Get-NetTCPConnection -State Listen -LocalPort 3306