回答:
netcatはあなたがしたいことをすべきです。マシンでリッスンして、STDOUTにエコーします:
nc -4 -k -l -v localhost 1026
接続が終了したときに閉じたい場合は、-kを使用しないでください
あなたが持っている
TCPリッスン:http : //www.allscoop.com/tcp-listen.php
Port Peeker:http : //www.linklogger.com/portpeeker.htm
MicrosoftのコマンドラインユーティリティPortqry.exe
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
あなたは取得する必要があるだろうiperf.exe
か、portqry.exe
最後の二つのために。iPerfはこのタスクのために厳密に設計されているわけではありませんが、接続、帯域幅の可用性、ストレステストリンクなどのトラブルシューティングに最適です。
このユーティリティは、必要に応じて受信したデータを表示するだけでなく、必要なことを正確に行うように見えます:http : //www.drk.com.ar/builder.php
コマンドラインだけでなくGUIを備えているため、一部の人にとっては便利です。
netpipesのツールは、蛇口とホースが常に簡素化し、よく私を務めてきたstdin
し、stdout
私のプログラムは、ネットワークを介して使用するために。
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 - .
これは、Windows / Linuxネットワークスタックの中間に位置するパケットおよびプロトコルアナライザーであるWiresharkの最適な使用法です。
ポートに関係なく、マシン全体が受信したすべてのTCP / UDPパケットを表示できます。さらに分析するために、特定のポートを介して送信されたパケットのみを除外するようにプログラムに指示することもできます。Wiresharkの利点は、送信元、宛先、ポート、MACアドレス、データ、日付、チェックサムなど、各パケットに非常に詳細なメッセージを提供することです。非常に便利な(そして無料!)ツールです。
TCP Listenは私見のベストアンサーです。私はTCP Builderを見て気に入っていますが、そのアプリを実行するには管理者権限が必要であり、TCPリスナーでそれらを必要とせず、TCP Builderをインストールするか、ファイルを解凍してコピーする必要がありますが、TCPリスナーは1ですEXE、それ以上。
TCPリスナーには管理者権限も必要ありませんでしたが、AVをスキャンしても悪意があるとは言われませんでした。ビルダはVirustotalに1つのAVがあり、それが悪いと言っていましたが、誤検知であることが判明しました(私は願っています):)
Builderにsans admin権限を実行させたが、リスナーはできるがソケットをフックできなかった。すべてのテストを行ったら、リスナーの1つのファイルを削除するだけで、すべてが以前のようになりました。
Netcatは良かったのですが、2012以降のサーバーで動作するバージョンは見つかりませんでした。したがって、ネットワークファイアウォールとローカルファイアウォールが特定のTCPポートの接続を許可しているかどうかを完全にテストするには、TCPリスナーがこの仕事に最適なツールのように思えます。
楽しい!
netcatのWindowsバージョンを使用できます:
nc -l -v localhost -p 7
私はWindowsのnetcatが好きですが、インターネットからダウンロードしてインストールすることは常に可能とは限りません。運用サーバーをセットアップしていて、何もインストールする前に(インストールせずに)ファイアウォールルールをテストしたい場合があります。
ほとんどの(すべて?)WindowsサーバーにはJScript.netコンパイラがあります。有効なJScript.netプログラムであるポリグロットプログラムでもある、従来のWindowsバッチファイルを作成できます。
tl; dr;
polyglot-listener.bat 1234
ポートでリッスンするタイプ1234
。アイデアは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
ます。それは単独で実行でき、サーバーにコピーされますが、ポリハードバッチファイルからのコンパイルは、セキュリティ上のハードルに関係なく機能します。
SysinternalsツールキットのTCPViewは、非常に優れた概要を提供します。