app开发者平台在数字化时代的重要性与发展趋势解析
1693
2022-11-30
一文搞懂,netstat命令
前言
后台开发,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
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~