一文搞懂,netstat命令

您所在的位置:网站首页 netstat-n命令的作用 一文搞懂,netstat命令

一文搞懂,netstat命令

2023-03-28 02:10| 来源: 网络整理| 查看: 265

前言

后台开发,netstat命令总是绕不过,不仅工作中经常用过,面试也是考的多。netstat命令,对应的选项比较多,功能比较强大。netstat 常用来查看,后台服务进程的相关状态。

netstat 可以用来打印网络连接、路由表、连接的数据统计。下面我们来学习一下。

 

打印所有连接

 使用 -a,列出所有连接。

[root@VM-16-9-centos ~]# netstat -aActive Internet connections (servers and established)Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN tcp 0 0 VM-16-9-centos:49326 169.254.0.55:lsi-bobcat ESTABLISHEDtcp 0 52 VM-16-9-centos:ssh 119.137.1.7:20029 ESTABLISHEDtcp 0 0 VM-16-9-centos:ssh 113.110.224.255:63626 ESTABLISHEDtcp6 0 0 [::]:mysql [::]:* LISTEN udp 0 0 0.0.0.0:bootpc 0.0.0.0:* udp 0 0 VM-16-9-centos:ntp 0.0.0.0:* udp 0 0 VM-16-9-centos:ntp 0.0.0.0:* udp 0 0 0.0.0.0:38064 0.0.0.0:* udp6 0 0 VM-16-9-centos:ntp [::]:* udp6 0 0 VM-16-9-centos:ntp [::]:*

 

 

打印 TCP 或 UDP 连接

使用 -t 选项列出 TCP 协议的连接。

[root@VM-16-9-centos ~]# netstat -tActive Internet connections (w/o servers)Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 VM-16-9-centos:49326 169.254.0.55:lsi-bobcat ESTABLISHEDtcp 0 52 VM-16-9-centos:ssh 119.137.1.7:20029 ESTABLISHEDtcp 0 0 VM-16-9-centos:ssh 113.110.224.255:63626 ESTABLISHEDtcp 0 0 VM-16-9-centos:ssh vps-d395feee.vps.:39128 ESTABLISHED

使用 -u 选项列出 UDP 协议的连接。

[root@VM-16-9-centos ~]# netstat -uActive Internet connections (w/o servers)Proto Recv-Q Send-Q Local Address Foreign Address State

 

 

禁用反向域名解析

使用 -n 选项禁用域名解析功能,这样可以加快查找速度。

[root@VM-16-9-centos ~]# netstat -nActive Internet connections (w/o servers)Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 172.17.16.9:49326 169.254.0.55:5574 ESTABLISHEDtcp 0 52 172.17.16.9:22 119.137.1.7:20029 ESTABLISHEDtcp 0 0 172.17.16.9:22 113.110.224.255:63626 ESTABLISHEDtcp 0 0 172.17.16.9:52236 169.254.0.4:80 TIME_WAIT

 

 

 

显示对应的程序识别码和程序名称

使用 -p 选项列出正在监听的套接字。

[root@VM-16-9-centos ~]# netstat -pActive Internet connections (w/o servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 VM-16-9-centos:49326 169.254.0.55:lsi-bobcat ESTABLISHED 1400/YDService tcp 0 52 VM-16-9-centos:ssh 119.137.1.7:20029 ESTABLISHED 22131/sshd: root@pt tcp 0 0 VM-16-9-centos:ssh host-188-14-121-2:55529 TIME_WAIT - tcp 0 0 VM-16-9-centos:ssh 113.110.224.255:63626 ESTABLISHED 32201/sshd: root@pt

 

 

打印监听中的连接

使用 -l 选项列出正在监听的套接字。

[root@VM-16-9-centos ~]# netstat -lActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN tcp6 0 0 [::]:mysql [::]:* LISTEN udp 0 0 0.0.0.0:bootpc 0.0.0.0:*

 

 

 

打印连接进程信息

使用 -p 选项查看进程信息。

[root@VM-16-9-centos ~]# netstat -pActive Internet connections (w/o servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 VM-16-9-centos:49326 169.254.0.55:lsi-bobcat ESTABLISHED 1400/YDService tcp 0 0 VM-16-9-centos:48680 169.254.0.55:webcache TIME_WAIT - tcp 0 52 VM-16-9-centos:ssh 119.137.1.7:20029 ESTABLISHED 22131/sshd: root@pt tcp 0 0 VM-16-9-centos:ssh 113.110.224.255:63626 ESTABLISHED 32201/sshd: root@pt tcp 0 0 VM-16-9-centos:ssh host-188-14-121-2:56025 ESTABLISHED 10384/sshd: unknown

 

 

 

查看TCP连接数 

1)   统计80端口连接数

#netstat -nat|grep -i "80"|wc -l 4341

netstat -an会打印系统当前网络链接状态,而grep -i “80”是用来提取与80端口有关的连接的,wc -l进行连接数统计。 最终返回的数字就是当前所有80端口的请求总数。 

2)统计已连接上的,状态为”established”

netstat -na|grep ESTABLISHED|wc -l

netstat -an会打印系统当前网络链接状态,而grep ESTABLISHED 提取出已建立连接的信息。 然后wc -l统计。 最终返回的数字就是当前所有80端口的已建立连接的总数。 

 

 

根据进程pid查端口

利用 grep 命令,通过进程 pid 查出监听端口。

[root@VM-16-9-centos test]# netstat -nap|grep 12178tcp6 0 0 :::8888 :::* LISTEN 12178/gin

 

 

 

根据端口查进程

利用 grep 命令,通过监听端口查出进程 pid 。

[root@VM-16-9-centos test]# netstat -nap|grep 8888tcp6 0 0 :::8888 :::* LISTEN 12178/gin

 

 

统计网络socket状态

在linux 服务器查看tcp 连接数的命令:借助 awk 命令,统计socket状态对应的个数。

[test]# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' ESTABLISHED 5TIME_WAIT 2


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3