소켓 Listen 시 방화벽의 Public/Private 제어 기능이 비활성화된 경우
이상하군요, 2대의 PC 중에 하나는 다음과 같이 선택을 할 수 없게 나옵니다.
Do you want to allow public networks to access this app?
Windows Firewall has blocked some features of ConsoleApp1 on all public networks
This setting is managed by your organization.
Allow access these types of networks.
실제로 "Allow" 버튼을 누를 수 없어 "Cancel"을 선택하면 "Public" 네트워크에 대해 연결을 제한하는 설정이 추가됩니다.
반면, 다른 하나는 아래와 같이 "Allow" 버튼이 활성 상태로 나옵니다.
참고로, 위의 창에 대해서는 이전에 다른 글에서 설명한 적이 있습니다.
Windows에서 실행 중인 소켓 서버를 다른 PC 또는 WSL에서 접속할 수 없는 경우
; https://www.sysnet.pe.kr/2/0/13225
그런데, 활성/비활성 차이는 도대체 어디서 온 것일까요? ^^;
두 대의 PC 간 차이를 보니까, "Windows Defender Firewall" 설정에서 "Customize settings for each type of network"를 이용해 어느 한 쪽에 대한 방화벽을 해제하면, 예를 들어 아래의 화면에서는
Private 네트워크에 대해서는 방화벽을 풀어버렸는데요,
이후부터는 "Allow" 버튼이 비활성화되었습니다. 또한, 위와 같은 상황에서는 제어판에서 다음과 같이 "Use recommended settings"라는 버튼이 있는 패널 영역이 보이는데요,
Update your Firewall settings
Windows Defender Firewall is not using the recommended settings to protect your computer.
"Use recommended settings" 버튼을 누르면 다시 "Private" 망에 대해서도 방화벽을 동작시키도록 바뀌게 됩니다. 어쨌든, 저런 식으로 방화벽을 모든 네트워크에 대해 설정해 두어야 나중에 (처음 실행하는) Socket Listen 동작에서 네트워크 선택 옵션이 활성화됩니다.
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]