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


24

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

私のプログラムがlisten状態のポートをどのように扱うかをテストする必要があります。


特定のTCPポートをリッスン状態で許可するという意味ですか?
ディオゴ

1
この質問には意味がありません。ポートは、何もリッスンしていない場合、デフォルトで「クローズ」されます。
イングマールハップ

2
これは私が望むものです-私が選んだポートでリッスンし、何もしないユーティリティ。
ヴィック

回答:


10

netcatはあなたがしたいことをすべきです。マシンでリッスンして、STDOUTにエコーします:

nc -4 -k -l -v localhost 1026

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


2
Windowsで動作しますか?ここでこのコマンドを試しましたが、認識されませんでした。
ディオゴ

4
これを回答として投稿するつもりでした!= pここからnetcatをダウンロードできます:joncraton.org/files/nc111nt.zipこれはかなり古いツールですが、人々はそれがどれほど便利であるかを認識していなかったと思います。
cutrightjm

@Diogo Rochaあなたはそれがダウンロードされたプログラムであることを知っていますか?
cutrightjm

3
私は知りませんでした…それから、アンスウェアがダウンロードするためのリンクを投稿したらいいだろう…
ディオゴ

@DiogoRocha-netcatへの偽のリンクを削除しました。公式サイトはsourceforgeにあります。ほとんどすべてのパッケージングリポジトリの一部であるため、10年連続でソースからインストールしていません。
フローレンツクレー

6

あなたが持っている

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

Port Peeker:http : //www.linklogger.com/portpeeker.htm

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


1
TCPリッスン-インストールなしの素敵な小さなGUIプログラム!;-)
hoggar

1
Port Peeker、サイトが存在しないか到達できない(2019年
shawty

InternetArchiveの最新のスナップショットをご覧くださいweb.archive.org/web/20180616055542/http : //www.linklogger.com/… 一部のダウンロードリンクはまだ機能しています。
nelson.t.cunha

4

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はこのタスクのために厳密に設計されているわけではありませんが、接続、帯域幅の可用性、ストレステストリンクなどのトラブルシューティングに最適です。


2

このユーティリティは、必要に応じて受信したデータを表示するだけでなく、必要なことを正確に行うように見えます:http : //www.drk.com.ar/builder.php

コマンドラインだけでなくGUIを備えているため、一部の人にとっては便利です。


1

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のためにそれを必要とする...
ヴィック

Cygwinでさえないのですか?
マルコス

0

これは、Windows / Linuxネットワークスタックの中間に位置するパケットおよびプロトコルアナライザーであるWiresharkの最適な使用法です。

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


6
ユーモア-Wiresharkが実際にいつポートをリッスンするサービスのように振る舞うのか?トラフィックを受動的に記録します。
フローレンツクレー

@FlorenzKleyあなたは正しいです、そうではありません...私は彼の質問を特定のポートのネットワークトラフィックを表示する方法と解釈しました。OPでプログラムの2つのコピーを実行するのは簡単ではないからです同じポートで一度(別のプログラムが既にポートでリッスンしている場合に何が起こるかを確認するために)?
ブレークスルー

0

TCP Listenは私見のベストアンサーです。私はTCP Builderを見て気に入っていますが、そのアプリを実行するには管理者権限が必要であり、TCPリスナーでそれらを必要とせず、TCP Builderをインストールするか、ファイルを解凍してコピーする必要がありますが、TCPリスナーは1ですEXE、それ以上。

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

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

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

楽しい!


0

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

nc -l -v localhost -p 7

注:一部のマルウェアまたはファイアウォールセキュリティソフトウェアは、このファイルにウイルスのフラグを立てる場合があります。このプログラムの機能により、マルウェアプログラムに含まれている可能性がありますが、マルウェア自体ではなく、2017-10-04現在、このファイルはVirusTotalによってクリーンとしてスキャンされます(1つのスキャナーのみで「リスクウェア」としてマークされます)。URLのコミュニティノートファイルスキャン自体を
Mokubai

0

私はWindowsのnetcatが好きですが、インターネットからダウンロードしてインストールすることは常に可能とは限りません。運用サーバーをセットアップしていて、何もインストールする前に(インストールせずに)ファイアウォールルールをテストしたい場合があります。

ほとんどの(すべて?)WindowsサーバーにはJScript.netコンパイラがあります。有効なJScript.netプログラムであるポリグロットプログラムでもある、従来のWindowsバッチファイルを作成できます。

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ます。それは単独で実行でき、サーバーにコピーされますが、ポリハードバッチファイルからのコンパイルは、セキュリティ上のハードルに関係なく機能します。


-2

SysinternalsツールキットのTCPViewは、非常に優れた概要を提供します。


このツールは、実行中のマシンでTCPポートを開くことを許可しますか?
ピンプジュースIT

私はそれを知らない..名前が示唆するように、それは単なるビューです
パトリック・ミハルチン

しかし質問は、「私のマシンで特定のネットワークTCPポートを開くための基本的なユーティリティはありますか?」です。TCPViewでは接続を閉じることができますが、システムで変更できるのはそれだけです。
ピーターモーテンセン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.