一些网络工具的介绍

总结一下网络排查中经常用到的一些命令:

ping

ping 命令应该是相对来说普及度最高的命令,关于ping的百度介绍这里就不说了,包括其使用的协议啊之类的东西不再赘述,ping的使用场景最简单的就是查看两台机器之间是否联通,通的话肯定是有正常输出了,主要关注的指标是time字段粗略表示了两点线路之间的网络质量,这个time值低并不一定表示两点之间的网络质量好,但是如果很大那就很大概率表示网络质量不行了,ttl值由于网络的不确定性这里用到的不多 :)

traceroute

该命令主要用于确认主机访问到目标主机所走的线路,例如办公室有两条线路的时候使用该命令可以查到自己的出口(-m限定跳数),同时由于防火墙之类协议的存在该命令支持试用指定协议,比如icmp (试用-I指定)

dig

用以查看域名的详细信息,包括该域名的类型(C记录还是A记录)跟trace参数会看到域名详细的解析过程,以及域名在对应dnsserver上面的记录试用@1.1.1.1指定想要查询的nameserver地址 若为非标准的dns服务器试用—p指定端口,同时试用-x ip地址的用法有时可以根据返回的域名确定该ip地址隶属于哪个公司

nc

nc可以用以诊断到目标tcp端口的连通性例如 nc -w 2 -v 1.1.1.1 9999用来检查到1.1.1.1 9999是否联通,若联通会给出success类似的输出 -w表示等待时长 -v表示尽可能输出详细的信息 ps:由于udp协议的不可靠性,当指定nc使用 -u检查远端端口的时候输出都是success,因为发出去了。。

nc的另外一个用法就是-l port 可以使用nc监听某个端口号,该功能在调试某些功能的时候尤其有用,因为nc会把收到的数据包原封不动的输出出来,例如调试nginx转发可以使用该功能

tcpdump

本机抓包工具,常用参数包括host指定目标机器ip,tcp/udp port表示监听该端口数据包 -w 表示将数据包写入文件,之后可以使用wireshark进行查看

nping

类似于ping只不过其应用场景为端口的检测,例如nping —tcp/udp -p port ip检测目标端口是否打开以及延时

wget

功能强大的下载工具,可用于诊断目标网站是否正常对外提供服务

curl

相较于wget更加强大的工具跟-vv参数可以查看到非常详细的调试输出,曾经使用该命令检查出网站的一个字符集错误

netstat

查看本机端口的使用情况

iftop

查看本机网络资源通信情况主要用于查看主机和那台机器网络流量过大