netstat查看端口命令详解

发布于:2023-08-26 ⋅ 阅读:(56) ⋅ 点赞:(0)

netstat:打印网络连接,路由表,接口统计信息、伪装连接和多播成员、使用最多的是打印网络连接信息。

一、常见的参数:

  • -a(all)显示所有选项,默认不显示LISTEN相关
  • -t(tcp)仅显示tcp相关选项
  • -u(udp)仅显示udp相关选项
  • -n 拒绝显示别名,能显示数字的全部转化成数字。
  • -l 仅列出有在Listen(监听)的服务状态
  • -p 显示建立相关链接的程序名
  • -r 显示路由信息,路由表
  • -e 显示扩展信息,例如uid等
  • -s 按各个协议进行统计
  • -c 每隔一个固定四件,执行改netstat命令

二、返回字段定义:

[root@ecs-5d22-0002 conf]# netstat -tnlp
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:80              0.0.0.0:*               LISTEN      5168/nginx: master  
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      5016/sshd: /usr/sbi 
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      5168/nginx: master  
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      4051/zabbix_agentd  
tcp6       0      0 :::8007                 :::*                    LISTEN      9090/java           
tcp6       0      0 127.0.0.1:8045          :::*                    LISTEN      5351/java           
tcp6       0      0 :::8046                 :::*                    LISTEN      5351/java           
tcp6       0      0 :::37552                :::*                    LISTEN      3130/java           
tcp6       0      0 :::22                   :::*                    LISTEN      5016/sshd: /usr/sbi 
tcp6       0      0 127.0.0.1:8001          :::*                    LISTEN      3130/java           
tcp6       0      0 :::8002                 :::*                    LISTEN      3130/java           
tcp6       0      0 :::10050                :::*                    LISTEN      4051/zabbix_agentd  
tcp6       0      0 127.0.0.1:8006          :::*                    LISTEN      9090/jav
  • Proto: 代表协议(tcp、tcp6、udp、udp6)
  • RecV-Q:数据已经在本地接收缓冲,但是还没有recb()
  • Send-Q:对方没有收到的数据或者说没有Ack的,还是本地缓冲区
  • Local Address:本机IP:远程端口
  • Foreign Address:远程IP:远程端口
  • State:链接状态(监听状态:LISTEN、建立连接状态:ESTABLUSHED等)
  • PID:进程PID号
  • Program name:程序名字

三、常用的netstat命令

1、查询进程号所占用的端口号:netstat -anlp| grep 进程号

下图中,可以看到监控状态为LISTEN表示已经被占用,最后一列显示被nginx服务占用,查看具体端口为80和443;

!!图中如果显示LISTENING并不表示端口被占用,查看具体端口时,必须要看到tcp,端口号,LISTEN那一行,才表示端口被占用

[root@ecs-5d22-0002 conf]# netstat -tnlp|grep 5168
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      5168/nginx: master  
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      5168/nginx: master 
2、查看端口对应的进程,用于排查端口号是否被占用: netstat -tunlp|grep 端口号

-l 表示查找的是监听状态的(listen)的进程,非监听的不会被查询出来

[root@ecs-5d22-0002 conf]# netstat -tnlp|grep 22
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      5016/sshd: /usr/sbi 
tcp6       0      0 :::22                   :::*                    LISTEN      5016/sshd: /usr/sbi 
3、查看端口号的使用情况:netstat -anp | grep 端口号
[root@ecs-5d22-0002 conf]# netstat -anp|grep 443
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      5168/nginx: master  
tcp6      32      0 192.168.0.248:48450     211.154.222.157:443     CLOSE_WAIT  9090/java           
tcp6      32      0 192.168.0.248:34372     59.110.251.10:443       CLOSE_WAIT  9090/java
显示pid和进程:netstat -pt
[root@ecs-5d22-0002 conf]# netstat -pt
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 ecs-5d22-0002:http      92.231.30.117.bro:54329 ESTABLISHED 20527/nginx: worker 
tcp        0      0 ecs-5d22-0002:http      123.126.22.13:csc_proxy ESTABLISHED 20528/nginx: worker 
tcp        0      0 ecs-5d22-0002:44596     100.125.57.81:10180     ESTABLISHED 4685/hostguard 
5、列出所有处于监听状态的Sockets
  • netstat -l #只显示监听端口
  • netstat -lt #只列出所有监听 tcp 端口
  • netstat -lu #只列出所有监听 udp 端口
  • netstat -lx #只列出所有监听 UNIX 端口
本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到