linuxはポートが誰に占有されているかを表示する方法(lsof-iとnetstatコマンド)
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はシステムポートの使用状況を表示することもできます
方法1:lsof-iは、現在のシステムが開いているファイルをリストするツールです.
rootユーザーでlsof-iコマンドを実行します.以下のようにします.
ポート番号を付けて、ポートが誰に占有されているかを確認します.
例:
注意:ここの9999ポートは私自身が開いたもので、前のブログで述べたように、自分がこのポートを持っていない場合は、ポート番号を交換してください.
方法2:netstat-tunlpコマンドtcp,udpのポートやプロセスなどの関連状況を表示する
Netstat-tunlpにはすべてのポートとすべての対応するプログラムが表示され、grepパイプで目的のキーフィールドをフィルタできます.
9999ポートで使用されるプログラムを列挙します.
注意:ここの9999ポートは私自身が開いたもので、前のブログで述べたように、自分がこのポートを持っていない場合は、ポート番号を交換してください.
例:
netstat-anpを使用して表示
どちらの方法も表示できます
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
どちらの方法も表示できます