문제

포트 4000의 방화벽 뒤에 작동하는 tcplistener 객체가 있습니다. 그렇지 않으면 외부 연결 요청이 통과되지 않습니다.

내 질문은 연결 요청을 수락 할 때 발생하는 일과 관련이 있습니다.

TcpClient client = server.AcceptTcpClient();

TCPCLIENT는 시스템이 부정 된 포트 번호와 함께 로컬 인터페이스에서 열립니다. 외부 클라이언트 가이 tcpclient 인스턴스와 통신하려면이 포트 번호를 방화벽 내에서 열어야합니까? 그렇다면 사용할 수있는 다양한 포트 번호를 지정하여 사전에 열 수 있습니까? 또는 방화벽 이이 시스템이 부여 된 포트 번호의 통신을 자동으로 허용합니까 (이 경우 내 서버) 뒤에있는 것이 연결되었으므로 연결 되었습니까?

도움이 되었습니까?

해결책

  • 서버 시스템에서 방화벽은 허용해야합니다. 들어오는 연결 포트에서 클라이언트는 포트에서 포트로 연결됩니다. TcpListener 듣고 있습니다.

  • 클라이언트 머신에서 방화벽은 나가는 연결 항구에 TcpListener 클라이언트가 연결하는 포트에서 듣고 있습니다.

대부분의 방화벽 (예 : Windows Firewall)은 모든 대상으로 나가는 연결을 허용하도록 구성되므로 모든 소스에서 포트 4000에서 들어오는 연결을 허용하는 규칙 만 만들어야합니다.

이것을 더 자세히 제한하려면 바인딩 할 수 있습니다. 특정 포트에 대한 tcpclient 시스템이 부여 된 포트 대신 서버 및 클라이언트에 방화벽 규칙을 작성 하여이 포트에서/로만 연결을 허용합니다.

다른 팁

Windows 방화벽에서 다양한 포트 제공은 쉽지 않지만 전체 프로그램을 부여 할 수 있습니다. 전체 프로그램을 부여 할 수 있습니다. Windows 방화벽에서 새 항목을 추가 할 때 포트 대신 프로그램을 선택하고 프로그램을 부여하여 모든 연결을 수신 할 수있는 프로그램을 수신 한 다음 항상 선택한 포트에 관계없이 항상 프로그램을 부여하면 항상 프로그램을 수신 할 수 있습니다. 허용됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top