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 还可以显示系统端口使用情况
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 用于显示合格流程,lsof(list open files)是一个列出当前系统打开文件的工具。
以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 所以这两种方法都可以查看。 |
---|
作者:brz_em
来源:CSDN
原文:https://blog.csdn.net/qq\_35180983/article/details/82500424
版权声明:本文为博主原创文章,转载请附上博客链接!
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除