ポート占有率を表示する centos7.x メソッド

Centos7.x は、 lsof および netstat コマンドを使用して、ポートの占有率を表示でき ます。

1.lsof

lsof(list open files) は、現在のシステムの開いているファイルを一覧表示するツールです。

lsof ビュー ポート占有の構文形式:

[root@localhost ~]# lsof -i:80        
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
httpd   15508   root    4u  IPv6 729602      0t0  TCP *:http (LISTEN)
httpd   15509 apache    4u  IPv6 729602      0t0  TCP *:http (LISTEN)
httpd   15510 apache    4u  IPv6 729602      0t0  TCP *:http (LISTEN)
httpd   15511 apache    4u  IPv6 729602      0t0  TCP *:http (LISTEN)
httpd   15512 apache    4u  IPv6 729602      0t0  TCP *:http (LISTEN)
httpd   15513 apache    4u  IPv6 729602      0t0  TCP *:http (LISTEN)
httpd   15523 apache    4u  IPv6 729602      0t0  TCP *:http (LISTEN)
httpd   20528 apache    4u  IPv6 729602      0t0  TCP *:http (LISTEN)

 ポート 80 の占有率を確認しました。すべてリッスンしています。

[root@localhost ~]# lsof -i:22

[root@localhost ~]# lsof -i:11022
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd    16105 root    3u  IPv6 734716      0t0  TCP *:11022 (LISTEN)
sshd    16105 root    4u  IPv4 734718      0t0  TCP *:11022 (LISTEN)
sshd    19620 root    3u  IPv4 961213      0t0  TCP localhost.localdomain:11022->192.168.8.88:65053 (ESTABLISHED)
sshd    19624 root    3u  IPv4 963414      0t0  TCP localhost.localdomain:11022->192.168.8.88:65066 (ESTABLISHED)

ここで、まず22番ポートを確認したところ、何も出力されていないことがわかりました.実はsshdのデフォルトのポート番号が変更されています.

ポート 11022 をもう一度確認します。sshd の監視情報があり、その 3 番目と 4 番目が現在接続しているポートです

ps: lsof -i を実行するには root ユーザー権限が必要です

 その他の lsof コマンドは次のとおりです。

lsof a.txt:显示开启文件a.txt的进程
lsof -c a:显示a进程现在打开的文件
lsof -c -p 123:列出进程号为123的进程所打开的文件
lsof -g gid:显示归属gid的进程
lsof +d /usr/local/:显示目录下被进程开启的文件
lsof +D /usr/local/:同上,但是会搜索目录下的目录,时间较长
lsof -d 4:显示使用fd为4的进程
lsof -i -U:显示所有打开的端口和UNIX domain文件

2.ネットスタット

netstat -n t lp 

TCPポートとプロセス、およびその他の関連条件を表示するために使用されます 

[root@localhost ~]# netstat -ntlp
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:11022           0.0.0.0:*               LISTEN      16105/sshd
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      5694/master
tcp6       0      0 :::11022                :::*                    LISTEN      16105/sshd
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd
tcp6       0      0 :::80                   :::*                    LISTEN      15508/httpd
tcp6       0      0 ::1:25                  :::*                    LISTEN      5694/master

netstat -n u lp 

udpポートを表示し、関連情報を処理するために使用されます

[root@localhost ~]# netstat -nulp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
udp        0      0 0.0.0.0:111             0.0.0.0:*                           1/systemd
udp        0      0 127.0.0.1:323           0.0.0.0:*                           4813/chronyd
udp        0      0 0.0.0.0:721             0.0.0.0:*                           4814/rpcbind
udp6       0      0 :::111                  :::*                                1/systemd
udp6       0      0 ::1:323                 :::*                                4813/chronyd
udp6       0      0 :::721                  :::*                                4814/rpcbind

t を u に変更するだけで、さまざまなプロトコルの接続状態を表示できることがわかりますが、文字は何を意味するのでしょうか。

-r:--route,显示路由表信息
-g:--groups,显示多重广播功能群组组员名单
-s:--statistics,按照每个协议来分类进行统计。默认的显示IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP和UDPv6 的统计信息。
-M:--masquerade,显示网络内存的集群池统计信息
-v:--verbose,命令显示每个运行中的基于公共数据链路接口的设备驱动程序的统计信息
-W:--wide,不截断IP地址
-n:进制使用域名解析功能。链接以数字形式展示(IP地址),而不是通过主机名或域名形式展示
-N:--symbolic,解析硬件名称
-e:--extend,显示额外信息
-p:--programs,与链接相关程序名和进程的PID
-t:所有的 tcp 协议的端口
-x:所有的 unix 协议的端口
-u:所有的 udp 协议的端口
-o:--timers,显示计时器
-c:--continuous,每隔一个固定时间,执行netstat命令
-l:--listening,显示所有监听的端口
-a:--all,显示所有链接和监听端口
-F:--fib,显示转发信息库(默认)
-C:--cache,显示路由缓存而不是FIB
-Z:--context,显示套接字的SELinux安全上下文

組み合わせ例:

netstat -anp:显示系统端口使用情况
netstat -nupl:UDP类型的端口
netstat -ntpl:TCP类型的端口
netstat -na|grep ESTABLISHED|wc -l:统计已连接上的,状态为"established"
netstat -l:只显示所有监听端口
netstat -lt:只显示所有监听tcp端口

netstat -ntlp | グリップ80

grep はフィルターとして機能し、次の文字のポート番号、サービス名、およびポート ステータスに一致します。

[root@localhost ~]# netstat -ntlp |grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      15508/httpd


[root@localhost ~]# netstat -ntlp |grep sshd
tcp        0      0 0.0.0.0:11022           0.0.0.0:*               LISTEN      16105/sshd
tcp6       0      0 :::11022                :::*                    LISTEN      16105/sshd


[root@localhost ~]# netstat -alp |grep ESTA
tcp        0     48 localhost.localdo:11022 192.168.8.88:65053      ESTABLISHED 19620/sshd: root@pt
tcp        0      0 localhost.localdo:11022 192.168.8.88:65066      ESTABLISHED 19624/sshd: root@no

異常なポート占有がある場合、プロセスを強制終了する必要があります

殺す

たとえば、15508 プロセスを強制終了したい場合、15508 は PID です

kill -9 15508

おすすめ

転載: blog.csdn.net/weixin_42517271/article/details/128415596