2017-11-29 3 views
-1

Windows 2K16을 실행하는 Azure VM (표준 D1 v2)과 온 - 프레미어 클라이언트 간의 TCP 연결을 설정하려고합니다.Azure VM - 특정 포트에서 수신 대기하는 TCP 서버에 연결할 수 없습니다.

VM에서 포트를받는 간단한 TCP 서버 (아래 코드 참조)를 실행하고 있습니다. 인수에 51515 포트를 전달했습니다.

네트워크 인터페이스에 공개 IP가 있습니다. 사용하려고합니다.

포털의 TCP 포트 51515 (source = any, source port = *, destination = any, dest. 포트 = 51515, protocol = TCP, action = allow)에 인바운드 포트 규칙을 추가했습니다.

VM의 Windows 방화벽이 해제되어 있습니다 (공용, 도메인 및 개인).

공용 IP와 51515 포트를 사용하여 온 - 사이드 쪽에서 텔넷을 사용하고 있습니다. 연결 메시지를 열 수 없습니다.

VM에서 IIS에 액세스를 시도했으며 다른 인바운드 규칙을 사용하여 온 프레미미스에서 액세스 할 수 있습니다.

아이디어가 있으십니까?

감사합니다,

class Program 
{ 
    static void Main(string[] args) 
    { 
     try 
     { 
      var server = new TcpListener(new IPEndPoint(IPAddress.Loopback, int.Parse(args[0]))); 
      server.AllowNatTraversal(true); 
      server.Start(); 
      server.AcceptTcpClientAsync().ContinueWith(c => System.Console.WriteLine("Client connected from:" + c.Result.Client.RemoteEndPoint)); 
      System.Console.WriteLine("server listens... press any key to exit"); 
      System.Console.ReadKey(); 
     } 
     catch (Exception e) 
     { 
      System.Console.WriteLine(e); 
      System.Console.WriteLine("press any key to exit"); 
      System.Console.ReadKey(); 
     } 
    } 
} 
+0

안녕하세요, 지금 작동합니까? –

+0

예, 그렇습니다! 감사합니다 EJP! – Atom

답변

0

EJP가 말한 것처럼 IPAddress.Loopback127.0.0.1을 의미하며 서비스는 VM 내부에서만 액세스 할 수 있습니다.

0.0.0.0 또는 VM의 개인 IP에 바인드 포트가 필요합니다. 아래처럼 :

+0

@Atom 바인드 IP를 수정하면 포트에 액세스 할 수 있습니까? –

+0

@Atom'netstat -ant | findstr '을 사용하여, 내 코드가 '0.0.0.0'을 듣고 있는지 확인할 수 있습니다. 내 실험실에서 테스트를하고, 내 로컬 PC에서 액세스 할 수 있습니다. –

1

그것은 단지 특정 포트에서뿐만 아니라 특정 주소에서 수신되지 않습니다. 너는 그걸 원하지 않아. 서버 소켓을 IPAddress.Loopback (예 : 127.0.0.1)으로 바인딩하고 있습니다. 즉, 로컬 호스트 외부의 연결을 수락하지 않습니다.

0.0.0.0에 바인드합니다.

관련 문제