Windowsコマンドラインから特定のポートのステータスを調べる方法はありますか?netstatを使用してすべてのポートを検査できることはわかっていますが、netstatは遅く、特定のポートを調べるのはおそらくそうではありません。
Windowsコマンドラインから特定のポートのステータスを調べる方法はありますか?netstatを使用してすべてのポートを検査できることはわかっていますが、netstatは遅く、特定のポートを調べるのはおそらくそうではありません。
回答:
これは、ポート検索の簡単なソリューションです...
コマンドで:
netstat -na | find "8080"
bashでは:
netstat -na | grep "8080"
PowerShellの場合:
netstat -na | Select-String "8080"
-o
フラグ(つまり、-nao
ここ)についても言及する価値があります。
フラグとパイプをnetstat
組み合わせて使用-np
するfind
か、またはfindstr
コマンドにパイプを使用できます。
基本的な使用法は次のとおりです。
netstat -np <protocol> | find "port #"
たとえば、TCPのポート80を確認netstat -np TCP | find "80"
するには、次のようにします。これにより、次のような出力が得られます。
TCP 192.168.0.105:50466 64.34.119.101:80 ESTABLISHED
TCP 192.168.0.105:50496 64.34.119.101:80 ESTABLISHED
ご覧のとおり、これはTCPプロトコルのポート80での接続のみを示しています。
私が使う:
netstat –aon | find "<port number>"
ここでoはプロセスIDを表します。これで、プロセスIDで何でもできるようになります。プロセスを終了するには、たとえば、次のように使用します。
taskkill /F /pid <process ID>
他の場所で述べたように、適切なスイッチでnetstatを使用し、find [str]で結果をフィルター処理します。
最も基本的な:
netstat -an | find ":N"
または
netstat -a -n | find ":N"
あなたが使うことができる外部ポートを見つけるために:
netstat -an | findstr ":N[^:]*$"
ローカルポートを見つけるには、次のようにします。
netstat -an | findstr ":N.*:[^:]*$"
ここで、Nは関心のあるポート番号です。
-n
すべてのポートが数値であることを確認します。つまり、サービス名に変換されて返されません。
-a
すべての接続(TCP、UDP、listen ...)を確実に検索します
ではfind
、文字列、あなたはそれ以外の数は、ローカルまたは外部のいずれかのアドレスと一致して、ポート修飾子として、コロンを含める必要があります。
必要に応じて、他のnetstatスイッチを使用して検索をさらに絞り込むことができます...
さらに読む(^ 0 ^)
netstat /?
find /?
findstr /?
netstat -a -n | find /c "10.240.199.9:8080"
特定のIPとポートでアクティブなソケットの数を提供します(サーバーのポート番号)
FIND: Parameter format not correct
@EndUzrの応答を改善するには:
外部ポート(IPv4またはIPv6)を見つけるには、以下を使用できます。
netstat -an | findstr /r /c:":N [^:]*$"
ローカルポート(IPv4またはIPv6)を見つけるには、次のコマンドを使用できます。
netstat -an | findstr /r /c:":N *[^ ]*:[^ ]* "
Nは対象のポート番号です。「/ r」スイッチは、正規表現として処理するように指示します。「/ c」スイッチを使用すると、findstrはスペースを検索文字列の区切り文字として扱う代わりに、検索文字列内にスペースを含めることができます。この追加されたスペースは、より長いポートが誤って扱われることを防ぎます-たとえば、「:80」対「:8080」、およびその他のポート変更の問題。
たとえば、ローカルRDPサーバーへのリモート接続を一覧表示するには、次のようにします。
netstat -an | findstr /r /c:":3389 *[^ ]*:[^ ]*"
または、DNSに触れている人を確認するには:
netstat -an | findstr /r /c:":53 *[^ ]*:[^ ]*"
ローカルのみのポートを除外する場合は、「/ v」を使用した一連の例外とバックスラッシュを使用したエスケープ文字を使用できます。
netstat -an | findstr /v "0.0.0.0 127.0.0.1 \[::\] \[::1\] \*\:\*" | findstr /r /c:":80 *[^ ]*:[^ ]*"
ポート80の場合、コマンドは次のようになります。ポート80の場合、コマンドは次のようになります。netstat -an | 「n」を見つける
ここで、netstatはマシンへの命令です
-a:すべての接続とリスニングポートを表示します-n:すべてのアドレスと指示を数値形式で表示します(-aからの出力にはマシン名を含めることができるため、これは必須です)
次に、前のコマンドの出力を「パターンマッチ」する検索コマンド。
RHEL 7では、次のコマンドを使用して、LISTEN状態のいくつかのポートをフィルタリングします。
sudo netstat -tulpn | grep LISTEN | egrep '(8080 |8082 |8083 | etc )'
lsofコマンド "lsof -i tcp:port#"を使用します。ここに例を示します。
$ lsof -i tcp:1555
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 27330 john 121u IPv4 36028819 0t0 TCP 10.10.10.1:58615->10.10.10.10:livelan (ESTABLISHED)
java 27330 john 201u IPv4 36018833 0t0 TCP 10.10.10.1:58586->10.10.10.10:livelan (ESTABLISHED)
java 27330 john 264u IPv4 36020018 0t0 TCP 10.10.10.1:58598->10.10.10.10:livelan (ESTABLISHED)
java 27330 john 312u IPv4 36058194 0t0 TCP 10.10.10.1:58826->10.10.10.10:livelan (ESTABLISHED)
netstat
-n
スイッチを使用しない場合のみ遅くなります。つまり、多くのDNSルックアップを実行する必要があります。