コンピューターで開いている/閉じているポートを確認する方法は?


135

コンピューターで開いている/閉じているポートを確認する方法は?

netstat -aコマンドラインで使用しました。

  • ポートステータス「LISTENING」は、ポートが開いていることを示していますか?
  • 出力に表示されていないポートは閉じていますか?

AskUbuntuのこの投稿をチェックしてください
Justgivemeaname

2
@Justgivemeaname:別のホストnmapで開いているポートをチェックするツールです。マシンで実行できる場合、それを使用する方がはるかに高速で信頼性があります。netstat
デビッドフォースター

@DavidFoerster:について知らなかったnetstatので、私はそれを学びました。ただし、リンクでは、別のホストから使用する必要があると記載されています。ありがとう!
Justgivemeaname

回答:


163

これにnetstat役立つパラメーターがいくつかあります。

  • -lまたは--listening、現在着信接続をリッスンしているソケットのみを表示します。
  • -aまたは、--all現在使用中のすべてのソケットを表示します。
  • -tまたは--tcp、tcpソケットを表示します。
  • -uまたは--udp、udpソケットを表示します。
  • -nまたは--numeric、dnsで解決して/ etc / servicesを調べる代わりに、ホストとポートを数字で表示します。

これらの組み合わせを使用して、必要なものを取得します。現在使用されているポート番号を確認するには、次のいずれかを使用します。

netstat -atn           # For tcp
netstat -aun           # For udp
netstat -atun          # For both

出力では、記載されているすべてのポートが使用されており、着信接続をリッスンしているか、ピアに接続されています**その他はすべて閉じられています。TCPおよびUDPポートは16ビット幅です(1〜65535になります)

**ピアからの接続/切断も可能です。


71

次のコマンドを使用できます。

netstat -tulnp | grep <port no>

何らかのプロセスが表示される場合は、その使用済み。出力がない場合は閉じられます(使用されません)。


20

ポートを使用しているプロセスを見つけるために使いやすい別の代替コマンドライン:

lsof -n -i4TCP:$PORT | grep LISTEN

.bash_profileに次の関数を追加しました。

function pslisten {
    echo `lsof -n -i4TCP:$1 | grep LISTEN`
}

「pslisten 5060」を実行して、SIPポートを取得しているユーザーを確認します。

Apple Mac OS Xでも動作します。


13

ポートステータス「LISTENING」は、ポートが開いていることを示していますか?

はい。これは、一部のサービスがコンピューターのそのポートで着信接続をリッスンしていることを意味します。つまり、このポートは新しい接続を確立するために開かれています。

出力に表示されていないポートは、閉じていることを示していますか?

はい。覚えておいてくださいnetstat -a(すべてのアクティブ表示されますリスニングを)とパッシブ(非リスニング)接続は(接続がこれらに確立されている(一部のサービスが別のマシン/プロセスからの接続のために、これらのポートを聞いている)の両方のサーバとして動作し、確立されたポート、すなわちホスト/サービスがサーバーまたはクライアントになれるという事実に関係なくポート)

すべてのTCPおよびUDPポートは、ソケットと呼ばれるカテゴリに属し、それらの多くがあります。ソケット情報を表示するには、チェックできますman ss


ありがとう。あなたはそれが-aサーバーを意味し、確立したと書いた。「サーバー」とは、一部のサービスでリッスンされているポートを意味しますか?「確立された」とは、クライアントまたはサーバーのポートに関係なく、既存の接続があるポートを意味しますか?次に、どの種類のポートが-a表示されませんか?
ティム

この-aオプションが「すべてのアクティブな」ソケットを意味するとは思わない。「すべて」という意味です。netstatは、デフォルトですべてのアクティブソケットを表示しますが、パッシブソケット(オープン、リスニング)は除外します。この-aオプションを使用すると、アクティブソケットとパッシブソケットの両方が表示されます。
エゴンオリユー

@EgonOlieuxありがとう。私は訂正します。答えを編集しました。
heemayl

@heemayl答えの2番目の部分はまだ正しくありません。「リッスン」状態のTCPソケットは決して接続になることはできません。何にも接続されておらず、リスニングのみです。このため、リスニングTCPソケットはパッシブソケットとも呼ばれます。クライアントがサーバー上の(リスニング)ソケットに接続しようとすると、サーバー上に新しいソケットが作成され、クライアントとの接続が確立されます。確立された接続の一部であるソケットは、アクティブソケットと呼ばれます。
エゴンオリユー

3

別のオプションはssです。使い方はずっと簡単です。...

以下のコマンドは、現在のリスニングソケットのリストのみを出力します。

root@server:~# ss -l

    Netid  State      Recv-Q Send-Q                                     Local Address:Port                                                      Peer Address:Port   


u_dgr  UNCONN     0      0                                                      * 23353                                                                * 23352                
u_dgr  UNCONN     0      0                                                      * 568                                                                  * 362                  
u_dgr  UNCONN     0      0                                                      * 14836                                                                * 14837                
u_dgr  UNCONN     0      0                                                      * 20446                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 22877                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 504                                                                  * 347                  
u_dgr  UNCONN     0      0                                                      * 16298                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 23343                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 24125                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 24617                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 23352                                                                * 23353                
u_dgr  UNCONN     0      0                                                      * 23334                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 17113                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 16957                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 14793                                                                * 362                  
u_dgr  UNCONN     0      0                                                      * 23345                                                                * 362                  
u_dgr  UNCONN     0      0                                                      * 24070                                                                * 369                  
udp    UNCONN     0      0                                                      *:sunrpc                                                               *:*                    
udp    UNCONN     0      0                                                      *:981                                                                  *:*                    
udp    UNCONN     0      0                                                     :::sunrpc                                                              :::*                    
udp    UNCONN     0      0                                                     :::981                                                                 :::*                    
tcp    LISTEN     0      128                                            127.0.0.1:85                                                                   *:*                    
tcp    LISTEN     0      128                                                    *:ssh                                                                  *:*                    
tcp    LISTEN     0      128                                                    *:3128                                                                 *:*                    
tcp    LISTEN     0      100                                            127.0.0.1:smtp                                                                 *:*                    
tcp    LISTEN     0      128                                                    *:8006                                                                 *:*                    
tcp    LISTEN     0      128                                                    *:sunrpc                                                               *:*                    
tcp    LISTEN     0      128                                                   :::ssh                                                                 :::*                    
tcp    LISTEN     0      100                                                  ::1:smtp                                                                :::*                    
tcp    LISTEN     0      128                                                   :::sunrpc                                                              :::*                    

1
私はこれについて知りませんでした、ありがとうzee
ニックフォックス

2

または、これは時計を使用することで役立ち、その後、見たいものをいじってみることができます。

sudo watch -d -n0 "netstat -atnp | grep ESTA"

sudo watch -d -n0 "netstat -tulnp | grep ESTA"

1
-aは-lと競合し、-aはESTABLISHEDまたはLISTENINGを取得し、-lは単にLISTENINGを取得します。したがって、実際には '-ltnp' tcp、 '-lunp' udpまたは '-ltunp' tcp + udp
ModerateJavaScriptDev

1

実際に、開いているポートを確認するより良い方法があります。問題netstatかはlsof、彼らがネットワークスタックを照会し、実際にマシンに接続していないが、代わりにシステム上で実行されているかを確認しようとしているということです。より良いアプローチは次のように使用するnmapことです:

nmap -sT -O localhost

開いているポートを表示します。


0
  1. これを試して、その範囲で開かれているポートのリストを取得してください。

    for p in {1..1023}
    do
       (echo >/dev/tcp/localhost/$p) >/dev/null 2>&1 && echo "$p open"
    done
    
  2. そして、このコマンドはそれが何であるかを示します!

    cat /etc/services | grep {PORTNumber}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.