web-dev-qa-db-ja.com

アプリケーションが使用するポート

独自のポートを開く(これらのポートのサーバーとして機能するため、そのポートでリッスンする)アプリケーションと、同じアプリケーションが他のアプリケーションによってバインドされたポートに接続する(これらのポートのクライアントとして機能する)アプリケーションをテストしています。

アプリケーションが作成するポートと、アプリケーションが接続するアプリケーションとポートの概要を知りたいのですが。

これどうやってするの?

11
Baz

これにはnetstatを使用できます。例を参照してください(私はsshをgrepしました):

netstat -putan | grep ssh
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1725/sshd
tcp        0      0 1.2.3.4:45734           1.2.3.5:22              ESTABLISHED 2491/ssh
tcp6       0      0 :::22                   :::*                    LISTEN      1725/sshd

説明:

パラメータ-putanをよく使用します(覚えやすいため)。

  • -p:アプリケーション/プロセスのPIDを表示します
  • -u:udpポート/接続を表示します
  • -t:tcpポート/接続を表示します
  • -a:リスニングソケットと非リスニングソケットの両方を表示します
  • -n:数値出力(ホスト名などのDNSルックアップは実行しないでください)

上記の出力では、すべてのネットワークインターフェイス(1725)のポート22でリッスンしているPID0.0.0.0のsshデーモンプロセス(sshd)があることがわかります。また、ポート番号2491のIPアドレス1.2.3.5に接続されたsshクライアントプロセス(PID 22)があり、私のIPアドレスは1.2.3.4で、外部ポートは45734。接続が確立されていることがわかります。したがって、私はssh経由でログインしています。

17
chaos

これを実行できる別のツールは lsof :です。

# lsof -i -a -p 1981
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd    1981 root    3u  IPv4    917      0t0  TCP Host.example.com:ssh (LISTEN)
# lsof -i -a -p 1981 -n
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd    1981 root    3u  IPv4    917      0t0  TCP 10.1.2.3:ssh (LISTEN)
# lsof -i -a -p 1981 -n -P
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd    1981 root    3u  IPv4    917      0t0  TCP 10.1.2.3:22 (LISTEN)
#

使用されるオプションは次のとおりです。

  • -iプロセスによって開いているインターネットポートを印刷する
  • -aすべてのオプションをANDで結合します
  • -p 1981プロセス1981の出力を表示する
  • -nホスト名の検索を禁止し、代わりにIPを表示します
  • -Pサービスルックアップを禁止し、代わりにポート番号を表示します

lsofには、大きな出力からgrepする必要がなく、チェックするプロセスを指定できるという利点があります。 netstatはシステム上でより確実に利用できますが、lsofは以前よりも標準的になりつつあります。

7
gowenfawr

ssユーティリティ iproute Linux用パッケージ

3
Serge Chirik

すでに良い答えはありますが、コマンドの実行時に開いているポートのみがリストされています。

straceは、アプリケーションの有効期間中に開かれた接続を監視するための適切なツールです。

strace -e socket,connect,close -f -o hipchat.strace.txt hipchat

出力には、UDP要求や、開いているが閉じている接続などの追加情報が表示されます。

3
olivecoder

ss -a4 | less

IPv4について話していると思います...そうでない場合は、前のコマンドの4を6に置き換えることができます。-aパラメーターは、すべてのポート(リスニングおよび非リスニング)を表示します。表示内の名前を解決したくない場合は、パラメーターに-nを追加できます。

0
rotten777