2017-11-29 42 views
-1

Windows 2K16を実行するAzure VM(標準D1 v2)とオンデマンドクライアントの間にTCP接続を確立しようとしています。Azure VM - 特定のポートをリッスンするTCPサーバーに接続できません

VMでは、ポートを受け取る単純なTCPサーバー(以下のコードを参照)を実行しています。私は引数にポート51515を渡しました。

ネットワークインターフェイスには、私が使用しようとしているパブリックIPがあります。

ポータルのTCPポート51515(送信元=任意、送信元ポート= *、宛先=任意、宛先ポート= 51515、プロトコル= TCP、アクション=許可)に受信ポートルールを追加しました。

VMのWindowsファイアウォールはオフ(パブリック、ドメインおよびプライベート)です。

私はパブリックIPと51515ポートを使用して、オンサイト側からTelnetを使用しています。そこに接続メッセージを開くことができませんでした。

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にバインドします。

関連する問題