
저는 Windows 방화벽을 처음 사용합니다. 나는 이 대화 상자를 보았지만 그 의미를 이해할 수 없었습니다.
위의 대화 상자는 다음과 같이 말합니다."Python이 다음 네트워크에서 통신하도록 허용합니다.". 그런 다음 각 개인 네트워크에 대해 하나씩, 공용 네트워크에 대해 하나씩 두 개의 확인란을 제공합니다.
그래서 내 질문은 다음과 같습니다.
개인 네트워크와 공용 네트워크의 차이점은 무엇입니까? 이 중 인터넷은 어느 네트워크에 속합니까?
프로그램이 특정 네트워크에서 통신할 수 있도록 허용한다는 것은 무엇을 의미합니까?
클라이언트와 서버 관점 모두에서 살펴보겠습니다.
특정 네트워크(공용/개인)에서 방화벽을 통해 허용되는 프로그램(클라이언트 역할)은 동일한 네트워크 내의 다른 컴퓨터와 소켓 연결을 설정할 수 있음을 의미합니까?
방화벽을 통해 허용되는 프로그램(서버 역할)은 동일한 네트워크 내의 다른 컴퓨터로부터 소켓 연결을 허용할 수 있다는 의미입니까?
연결을 수신하거나 연결을 설정하도록 프로그램을 제어하려면 어떻게 해야 합니까?
즉, Python 프로그램(
python.exe
)이 연결을 수신하지 못하도록 어떻게 제어할 수 있습니까?
답변1
둘 사이의 차이점은 Windows가 제공하는 신뢰 수준입니다. 둘 다랜에스. 예를 들어 Windows "개인 네트워크"를 홈 네트워크로 간주하고 공용 네트워크를 카페의 Wi-Fi 핫스팟으로 간주할 수 있습니다. Windows는 공용 네트워크나 개인 네트워크에서 동일하게 작동하지 않습니다(참조:여기). 인터넷은 LAN에 "속하지" 않습니다. LAN을 인터넷에 연결할 수 있습니다.
프로그램이 Windows의 특정 네트워크에서 통신하도록 허용한다는 것은 방화벽 규칙을 활성화하여 다른 컴퓨터에 연결하거나 해당 네트워크를 통해 다른 컴퓨터의 연결을 수신할 수 있다는 의미입니다. 이는 소켓을 통해 연결을 설정할 수 있음을 의미합니다. 그렇습니다. 하지만 LAN이 다른 네트워크(예: 인터넷)에 연결되어 있는 경우 동일한 네트워크의 시스템과의 연결만 설정할 수는 없습니다. 그러나 나가는 트래픽과 들어오는 트래픽은 일반적으로 서로 다른 방화벽 규칙이므로 활성화/비활성화하려는 트래픽을 확인해야 합니다.
위에서 설명한 대로 연결에 대한 방화벽을 어떤 방식으로든 구성할 수 있습니다. 또한 포트에서 수신 대기하려면 권한이 필요할 수 있으므로 프로그램을 차단하려면 어떤 권한이 필요한지 확인해야 합니다.
답변2
1. 개인 및 공용 네트워크
주로 로밍 머신에서 사용됩니다. 새로운 네트워크에 연결할 때마다 Windows에서는 현재 네트워크 유형(개인/비즈니스/공용)을 식별하라는 메시지를 표시합니다. 이를 통해 컴퓨터를 연결하는 위치에 따라 다양한 규칙 세트로 방화벽을 구성할 수 있습니다.
현재 네트워크 유형은 네트워크 제어판과 방화벽 콘솔 추가 기능에 표시되어야 합니다(3 참조).
2. 연결
일반적으로 네트워크에서 "연결 허용"과 "연결 설정"은 분리되어야 합니다. 나는 그들이 Windows 정책에 있다는 것을 기억하고 OS는 두 가지 권한이 모두 필요한지 묻습니다. 이를 "인바운드 규칙" 및 "아웃바운드 규칙"이라고 합니다.
3. 고급 규칙/확인
방화벽 콘솔 추가 기능에서 규칙을 찾을 수 있습니다 wf.msc
.
답변3
먼저 방화벽에 대해 설명하겠습니다. 그것은 단지 문일 뿐이며 기본적으로 닫혀 있습니다. 연결이 들어오거나 나가지 않습니다. 특정 포트가 열리도록 수동으로 구성할 수 있습니다. 일부 프로그램은 필요한 포트를 열고 게시물과 유사한 메시지를 표시합니다.
개인 및 공용 네트워크는 "기본" 방화벽 프로필입니다. 일반적으로 새 Wi-Fi에 연결하는 등 새 네트워크에 연결할 때마다 비공개 또는 공개를 선택합니다.
Python에 대해 선택하는 프로필에 따라 유용성이 결정됩니다. 개인 네트워크에서만 연결하도록 허용하면 공용 네트워크에서 작업할 때 Python이 연결을 설정할 수 없습니다.
클라이언트/서버 연결을 설정합니까?
예(그렇게 프로그래밍된 경우)비공개 또는 공개 프로필을 선택해도 Python이 자체적으로 포트를 여는 사실에는 영향을 미치지 않습니다. 연결을 위한 포트가 열립니다.단지 개인을 선택하면 이러한 연결은 개인 네트워크에 있는 경우에만 열리고 공용 네트워크에 있는 경우에는 닫힙니다. 반면에 공개를 선택하면 Python은 사용 중인 네트워크 연결에 관계없이 이러한 연결을 만듭니다.
방화벽 설정에서 Python을 제어할 수 있습니다.