tcplistener.accepttcpclient 및 방화벽
-
06-07-2019 - |
문제
포트 4000의 방화벽 뒤에 작동하는 tcplistener 객체가 있습니다. 그렇지 않으면 외부 연결 요청이 통과되지 않습니다.
내 질문은 연결 요청을 수락 할 때 발생하는 일과 관련이 있습니다.
TcpClient client = server.AcceptTcpClient();
TCPCLIENT는 시스템이 부정 된 포트 번호와 함께 로컬 인터페이스에서 열립니다. 외부 클라이언트 가이 tcpclient 인스턴스와 통신하려면이 포트 번호를 방화벽 내에서 열어야합니까? 그렇다면 사용할 수있는 다양한 포트 번호를 지정하여 사전에 열 수 있습니까? 또는 방화벽 이이 시스템이 부여 된 포트 번호의 통신을 자동으로 허용합니까 (이 경우 내 서버) 뒤에있는 것이 연결되었으므로 연결 되었습니까?
해결책
서버 시스템에서 방화벽은 허용해야합니다. 들어오는 연결 포트에서 클라이언트는 포트에서 포트로 연결됩니다.
TcpListener
듣고 있습니다.클라이언트 머신에서 방화벽은 나가는 연결 항구에
TcpListener
클라이언트가 연결하는 포트에서 듣고 있습니다.
대부분의 방화벽 (예 : Windows Firewall)은 모든 대상으로 나가는 연결을 허용하도록 구성되므로 모든 소스에서 포트 4000에서 들어오는 연결을 허용하는 규칙 만 만들어야합니다.
이것을 더 자세히 제한하려면 바인딩 할 수 있습니다. 특정 포트에 대한 tcpclient 시스템이 부여 된 포트 대신 서버 및 클라이언트에 방화벽 규칙을 작성 하여이 포트에서/로만 연결을 허용합니다.
다른 팁
Windows 방화벽에서 다양한 포트 제공은 쉽지 않지만 전체 프로그램을 부여 할 수 있습니다. 전체 프로그램을 부여 할 수 있습니다. Windows 방화벽에서 새 항목을 추가 할 때 포트 대신 프로그램을 선택하고 프로그램을 부여하여 모든 연결을 수신 할 수있는 프로그램을 수신 한 다음 항상 선택한 포트에 관계없이 항상 프로그램을 부여하면 항상 프로그램을 수신 할 수 있습니다. 허용됩니다.