web-dev-qa-db-ja.com

開くユーティリティTCPポートをリッスンする状態

特定のネットワークを開くための基本的なユーティリティはありますか?TCP私のマシンのポート?

プログラムがリスニング状態のポートをどのように処理するかをテストする必要があります。

25
Vic

netcat はあなたが望むことをするはずです。マシンでリッスンして、STDOUTに内容をエコーし​​ます。

nc -4 -k -l -v localhost 1026

接続が終了したときに閉じたい場合は、-kを使用しないでください。

11
Florenz Kley

あなたが持っている

TCPリッスン: http://www.allscoop.com/tcp-listen.php

ポートピーカー: http://www.linklogger.com/portpeeker.htm

MicrosoftのコマンドラインユーティリティPortqry.exe

6
nelson.t.cunha

Iperfを試してください。 Windows用のバージョンがあります。 iperf -s -p 1234のように実行するだけで、ポート1234でリッスンします。リモートマシンからそのポートに接続するには、次のようにします。

telnet 192.168.1.1 1234

iperf -c 192.168.1.1 1234

portqry -n 192.168.1.1 -e 1234

最後の2つについては、iperf.exeまたはportqry.exeを取得する必要があります。 iPerfはこのタスクのために厳密に設計されたわけではありませんが、接続性、帯域幅の可用性、ストレステストリンクなどのトラブルシューティングに最適です。

4
reggaethecat

このユーティリティは、受信したデータを表示する場合でも、希望どおりに動作するようです。 http://www.drk.com.ar/builder.php

コマンドラインだけでなくGUIを備えているため、一部のユーザーにとってはメリットがあります。

2
Jon

これは、Windows/Linuxネットワーキングスタックの中間に位置するパケットおよびプロトコルアナライザー Wireshark の完璧な用途です。

これにより、ポートに関係なく、マシン全体で受信されたすべてのTCP/UDPパケットを表示できます。さらに分析するために、特定のポートを介して送信されたパケットのみを除外するようにプログラムに指示することもできます。 Wiresharkの利点は、送信元、宛先、ポート、MACアドレス、データ、日付、チェックサムなど、各パケットの非常に詳細なメッセージを提供することです。非常に便利な(そして無料の)ツールです。

1
Breakthrough

netpipes toolsfaucethoseには私のプログラムがネットワーク経由で使用できるようにstdinstdoutを簡略化することで、常にうまく機能しました。

netcat に似ています。

Ubuntuの説明:

Netpipesパッケージは、TCP/IPストリームをシェルスクリプトで使用できるようにします。また、プログラマーがソケットに関連する面倒なプログラミングビットをすべてスキップし、フィルターやその他のサービスの作成に集中できるようにすることで、クライアント/サーバーコードを簡略化することもできます。

EXAMPLES
       This creates a TCP-IP socket on the local machine bound to port 3000.

       example$ faucet 3000 --out --verbose tar -cf - .

       Every  time  some process (from any machine) attempts to connect to port 3000 on this machine the faucet program will fork(2) a process and the child
       will exec(2) a

       tar -cf - .
1
Marcos

netcatのWindowsバージョン を使用できます。

nc -l -v localhost -p 7
0
netawater

TCP Listenは私にとって最良の答えです。 TCPビルダーを見て気に入ったが、そのアプリを実行するには管理者権限が必要であり、TCPリスナーではそれらを必要としない。また、インストールTCPビルダー、またはファイルの束を解凍してコピーしますが、TCPリスナーは1 EXEです。

TCPリスナーも管理者権限を必要としませんでした。私がAVスキャンしたときに、悪意があるとは何も言われませんでした。ビルダーはVirustotalに1つのAVを持っていて、それは悪いと言いましたが、誤検出であることがわかりました(私はそう思います):)

Builderにsans admin権限を実行させましたが、リスナーはソケットをフックできませんでした。すべてのテストを行ったら、リスナーの1つのファイルを削除するだけで、すべてが以前と同じようになりました。

Netcatは良かったのですが、2012以降のサーバーで動作するバージョンが見つかりませんでした。したがって、ネットワークファイアウォールとローカルファイアウォールが特定のTCPポートの接続を許可するかどうかを完全にテストするには、TCPリスナーがこのジョブに最適なツールのようです。

楽しい!

0
David Howard

私はWindowsのnetcatが好きですが、インターネットからのものをダウンロードしてインストールできるとは限りません。多分あなたは本番サーバーをセットアップしていて、何かをインストールする前に(そしてインストールせずに)ファイアウォールルールをテストしたいでしょう。

ほとんど(すべて?)のWindowsサーバーにはJScript.netコンパイラーがあります。有効なJScript.netプログラムであるプレーンな古いWindowsバッチファイル polyglotプログラム を書き込むことができます。

tl; dr;

アイデアは、システムでjsc.exe実行可能ファイルを見つけることです。

for /f "tokens=* delims=" %%v in ('dir /b /s /a:-d /o:-n "%SystemRoot%\Microsoft.NET\Framework\*jsc.exe"') do (
   set "jsc=%%v"
)

そして、それを使用してバッチファイルをコンパイルします。

"!jsc!" /nologo /out:"%APPDATA%\listener.exe" "%~dpsfnx0"

バッチファイルには、同期ソケットを作成し、それをリッスンし、接続を受け入れて、それに来るすべてのものをドロップする基本的なJScript.Netコードが含まれています。

listener.Bind(localEndPoint);  
listener.Listen(10);  

// Start listening for connections.  
while (true) {  
    var data:byte[] = new byte[1024];

    Console.WriteLine("Waiting for a TCP connection on {0}:{1}...", ipAddress, port);  
    var handler = listener.Accept();  

    Console.WriteLine("Connected to {0}", handler.RemoteEndPoint);  

    try {
        // An incoming connection needs to be processed.  
        while (handler.Receive(data) > 0);  
    } finally {
        Console.WriteLine("Disconected\n");
    }

    handler.Shutdown(SocketShutdown.Both);  
    handler.Close();  
}

コンパイルされたプログラムは%APPDATA%\listener.exeとして保存されます。単独で実行したり、サーバーにコピーしたりできますが、ポリグロットバッチファイルからのコンパイルは、セキュリティ上のハードルに関係なく機能します。

0
ixe013