日常开发或者运维过程中,经常会涉及一些需要进行网络诊断的场景,这里介绍一些常用的诊断工具。


ping

ping是最常用的网络诊断工具,除了判断联通和延时,还可以判断传输的MTU(MTU是网络可以发送的最大报文大小)是否正确。

[root@i-xxxxxxx~]查看zookeeper的2181端口是否可以访问,如下为可访问[root@i-xxxxxxx~]-i网卡名-n输出ip地址,不反向解析成域名-e输出mac地址-l实时输出到stdout,默认是缓存一批才输出-c抓包数量,避免流量大时无法退出tcpdump这条是vxlan报文,第一行是外层的udp头11:42:04.25440300:f6:63:f9:06:c168:91:d0:61:d2:c1,ethertypeIPv4(0x0800),length116:172.31.22.11.57384172.31.20.16.4789:VXLAN,flags[I](0x08),vni14148281第二个报文,是tcp的流量11:42:04.25442568:91:d0:61:d2:c100:f6:63:f9:06:c1,ethertypeIPv4(0x0800),length254:172.31.20.16.22172.31.105.145.60303:Flags[P.],seq2910664665:2910664853,ack2435946367,win39,options[nop,nop,TSval2780377579ecr1245621143],length1882packetscaptured11packetsreceivedbyfilter0packetsdroppedbykernel
netstat

当需要了解当前系统开放了哪些端口,并且要查看开放这些端口的具体进程和用户,可以通过netstat命令进行简单查询

[root@i-xxxxxxx~]netstat-ntulp|grep80//查看所有80端口使用情况·[root@i-xxxxxxx~]netstat-nlp|grepLISTEN//查看当前所有监听端口·netstat-lntup说明:l:listeningn:numt:tcpu:udpp:processnetstat-ltunpProtoRecv-QS-QLocalAddressForeignAddressStatePID/:8730.0.0.0:*LISTEN840/:800.0.0.0:*LISTEN5022/nginx::220.0.0.0:*LISTEN1159/sshd--------------
lsof

可以使用lsof检查端口占用

判断10.73.14.141的22端口是否监听[root@i-xxxxxxx~]判断10.73.14.141的23端口是否监听[root@i-xxxxxxx~]nc命令有个-l参数可以用来监听指定端口,因此我们要完成上面的功能,就只需要简单的从/dev/zero或者其他虚拟设备读入数据:client端:收到的数据都转到/dev/null开放5672端口firewall-cmd--zone=public--remove-port=5672/tcp--permanent#关闭5672端口firewall-cmd--zone=public--list-ports查看端口


如有不对,欢迎指正,相互学习,共同进步。