linuxはポートが誰に占有されているかを表示する方法(lsof-iとnetstatコマンド)

7267 ワード

1、lsof -i
lsof(list open files)は、現在のシステムが開いているファイルをリストするツールです.linux環境では、任意のものがファイルとして存在し、ファイルを介して通常のデータだけでなく、ネットワーク接続やハードウェアにもアクセスできます.したがって、伝送制御プロトコル(TCP)やユーザデータグラムプロトコル(UDP)ソケットなど、システムはバックグラウンドでアプリケーションにファイル記述子を割り当て、このファイルの本質にかかわらず、アプリケーションとベースオペレーティングシステムとの間の相互接続に共通のインタフェースを提供する.アプリケーションがファイルを開くディスクリプタリストは、このアプリケーション自体に関する多くの情報を提供するため、lsofツールを使用してこのリストを表示することは、システムのモニタリングおよびエラーの排除に役立ちます.
lsofの詳細については、以下を参照してください.https://www.cnblogs.com/sparkbj/p/7161669.html
2、netstatコマンドはTCP/IPネットワークを監視する非常に有用なツールであり、ルーティングテーブル、実際のネットワーク接続及び各ネットワークインタフェース装置の状態情報を表示することができる.
Netstat-tunlpはtcp,udpのポートとプロセスなどの関連状況を表示する
Netstat-anpはシステムポートの使用状況を表示することもできます
netstat [  ]

-a --all:        Socket; 
-A --:               ; 
-c --continuous:        ; 
-C --cache:            ; 
-e --extend:          ; 
-F --fib:  FIB; 
-g --groups:              ; 
-h --help:    ; 
-i --interfaces:          ; 
-l --listening:          Socket; 
-M --masquerade:         ; 
-n --numeric:    ip  ,         ; 
-N --netlink --symbolic:                 ; 
-o --timers:     ; 
-p --programs:      Socket           ; 
-r --route:  Routing Table; 
-s --statistice:           ; 
-t --tcp:  TCP         ; 
-u --udp:  UDP         ; 
-v --verbose:        ; 
-V --version:      ; 
-w --raw:  RAW         ; 
-x --unix:         "-A unix"    ; 
--ip --inet:         "-A inet"    。

方法1:lsof-iは、現在のシステムが開いているファイルをリストするツールです.
rootユーザーでlsof-iコマンドを実行します.以下のようにします.
[root@hadoop01 yum.repos.d]# lsof -i
COMMAND     PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
rpcbind    1873     rpc    6u  IPv4  15228      0t0  UDP *:sunrpc 
rpcbind    1873     rpc    7u  IPv4  15230      0t0  UDP *:wpages 
rpcbind    1873     rpc    8u  IPv4  15231      0t0  TCP *:sunrpc (LISTEN)
rpcbind    1873     rpc    9u  IPv6  15233      0t0  UDP *:sunrpc 
rpcbind    1873     rpc   10u  IPv6  15235      0t0  UDP *:wpages 
rpcbind    1873     rpc   11u  IPv6  15236      0t0  TCP *:sunrpc (LISTEN)
rpc.statd  2017 rpcuser    5r  IPv4  15556      0t0  UDP *:921 
rpc.statd  2017 rpcuser    8u  IPv4  15563      0t0  UDP *:32846 
rpc.statd  2017 rpcuser    9u  IPv4  15567      0t0  TCP *:42335 (LISTEN)
rpc.statd  2017 rpcuser   10u  IPv6  15571      0t0  UDP *:41231 
rpc.statd  2017 rpcuser   11u  IPv6  15575      0t0  TCP *:56522 (LISTEN)
cupsd      2072    root    6u  IPv6  15795      0t0  TCP localhost:ipp (LISTEN)
cupsd      2072    root    7u  IPv4  15796      0t0  TCP localhost:ipp (LISTEN)
cupsd      2072    root    9u  IPv4  15811      0t0  UDP *:ipp 
sshd       2191    root    3u  IPv4  16362      0t0  TCP *:ssh (LISTEN)
sshd       2191    root    4u  IPv6  16366      0t0  TCP *:ssh (LISTEN)
mysqld     2379   mysql   10u  IPv4  17615      0t0  TCP *:mysql (LISTEN)
nginx      3953    root   11u  IPv4  35803      0t0  TCP *:distinct (LISTEN)
sshd      11504    root    3r  IPv4 125196      0t0  TCP www.brz.com:ssh->bogon:55057 (ESTABLISHED)
sshd      11504    root    7u  IPv6 125274      0t0  TCP localhost:x11-ssh-offset (LISTEN)
sshd      11504    root    8u  IPv4 125275      0t0  TCP localhost:x11-ssh-offset (LISTEN)
sshd      11716    root    3r  IPv4 127456      0t0  TCP www.brz.com:ssh->bogon:55303 (ESTABLISHED)
sshd      11716    root    7u  IPv6 127537      0t0  TCP localhost:6011 (LISTEN)
sshd      11716    root    8u  IPv4 127538      0t0  TCP localhost:6011 (LISTEN)
nginx     11914  nobody   11u  IPv4  35803      0t0  TCP *:distinct (LISTEN)

ポート番号を付けて、ポートが誰に占有されているかを確認します.
lsof -i:   

例:
注意:ここの9999ポートは私自身が開いたもので、前のブログで述べたように、自分がこのポートを持っていない場合は、ポート番号を交換してください.
[root@hadoop01 yum.repos.d]# lsof -i:9999
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx    3953   root   11u  IPv4  35803      0t0  TCP *:distinct (LISTEN)
nginx   11914 nobody   11u  IPv4  35803      0t0  TCP *:distinct (LISTEN)

 
方法2:netstat-tunlpコマンドtcp,udpのポートやプロセスなどの関連状況を表示する
[root@hadoop01 yum.repos.d]# netstat -tunpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:9999                0.0.0.0:*                   LISTEN      3953/nginx          
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      1873/rpcbind        
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      2191/sshd           
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      2072/cupsd          
tcp        0      0 127.0.0.1:6010              0.0.0.0:*                   LISTEN      11504/sshd          
tcp        0      0 127.0.0.1:6011              0.0.0.0:*                   LISTEN      11716/sshd          
tcp        0      0 0.0.0.0:42335               0.0.0.0:*                   LISTEN      2017/rpc.statd      
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      2379/mysqld         
tcp        0      0 :::111                      :::*                        LISTEN      1873/rpcbind        
tcp        0      0 :::22                       :::*                        LISTEN      2191/sshd           
tcp        0      0 ::1:631                     :::*                        LISTEN      2072/cupsd          
tcp        0      0 ::1:6010                    :::*                        LISTEN      11504/sshd          
tcp        0      0 ::1:6011                    :::*                        LISTEN      11716/sshd          
tcp        0      0 :::56522                    :::*                        LISTEN      2017/rpc.statd      
udp        0      0 0.0.0.0:111                 0.0.0.0:*                               1873/rpcbind        
udp        0      0 0.0.0.0:631                 0.0.0.0:*                               2072/cupsd          
udp        0      0 0.0.0.0:776                 0.0.0.0:*                               1873/rpcbind        
udp        0      0 0.0.0.0:921                 0.0.0.0:*                               2017/rpc.statd      
udp        0      0 0.0.0.0:32846               0.0.0.0:*                               2017/rpc.statd      
udp        0      0 :::111                      :::*                                    1873/rpcbind        
udp        0      0 :::776                      :::*                                    1873/rpcbind        
udp        0      0 :::41231                    :::*                                    2017/rpc.statd   

Netstat-tunlpにはすべてのポートとすべての対応するプログラムが表示され、grepパイプで目的のキーフィールドをフィルタできます.
9999ポートで使用されるプログラムを列挙します.
注意:ここの9999ポートは私自身が開いたもので、前のブログで述べたように、自分がこのポートを持っていない場合は、ポート番号を交換してください.
netstat -tunplp | grep    

例:
[root@hadoop01 yum.repos.d]# netstat -tunplp | grep 9999
tcp        0      0 0.0.0.0:9999                0.0.0.0:*                   LISTEN      3953/nginx  

netstat-anpを使用して表示
[root@hadoop01 yum.repos.d]# netstat -anp|grep 9999
tcp        0      0 0.0.0.0:9999                0.0.0.0:*                   LISTEN      3953/nginx  

どちらの方法も表示できます