测试网络连通性
ping命令
ping - send ICMP ECHO_REQUEST to network hosts
ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l<前置载入>][-p<范本样式>][-s<数据包大小>][-t<存活数值>][主机名称或IP地址]
-d 使用Socket的SO_DEBUG功能。
-c<完成次数> 设置完成要求回应的次数。
-f 极限检测。
-i<间隔秒数> 指定收发信息的间隔时间。
-I<网络界面> 使用指定的网络界面送出数据包。
-l<前置载入> 设置在送出要求信息之前,先行发出的数据包。
-n 只输出数值。
-p<范本样式> 设置填满数据包的范本样式。
-q 不显示指令执行过程,开头和结尾的相关信息除外。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。
-R 记录路由过程。
-s<数据包大小> 设置数据包的大小。
-t<存活数值> 设置存活数值TTL的大小。
-v 详细显示指令的执行过程
mtr命令
合并了ping与traceroute命令的功能的网络诊断工具
mtr - a network diagnostic(诊断) tool
mtr [options] HOSTNAME
-h 显示帮助
-v 显示版本
-r 以报告模式显示
第一显示ip地址或域名,按n键可以切换ip和域名
第二列显示丢包率
第三列显示设置每秒发送数据包的数量,默认10,可通过参数-c来设定
第四列显示最近一次PING值
第五、六、七列显示分别是ping的平均、最好、最差值
第八列标准偏差
-s 用来指定ping数据包的大小
-n 不对ip地址做域名解析
-a 设置发送数据包的ip地址
-i 使用这个参数来设置icmp返回之间的要求,默认为1秒
-4 ipv4
-6 ipv6
确定域名服务器
nslookup
nslookup - query Internet name servers interactively(交互式的)
nslookup [-option] [name | -] [server]
-sil:不显示任何警告信息。
nslookup有两种工作模式,即“交互模式”和“非交互模式”。
在“交互模式”下,用户可以向域名服务器查询各类主机、域名的信息,或者输出域名中的主机列表。
而在“非交互模式”下,用户可以针对一个主机或域名仅仅获取特定的名称或所需信息。
进入交互模式,直接输入nslookup命令,不加任何参数,则直接进入交互模式,此时nslookup会连接到默认的域名服务器(即/etc/resolv.conf的第一个dns地址),或者输入nslookup -nameserver/ip。
进入非交互模式,就直接输入nslookup 域名就可以了。
host
host - DNS lookup utility
host [-aCdlnrsTwv] [-c class] [-N ndots] [-R number] [-t type] [-W wait] [-m flag] [-4] [-6] {name} [server]
-a: 显示详细的DNS信息;
-c<类型>: 指定查询类型,默认值为“IN“;
-C: 查询指定主机的完整的SOA记录;
-r: 在查询域名时,不使用递归的查询方式;
-t<类型>: 指定查询的域名信息类型;
-v: 显示指令执行的详细信息;
-w: 如果域名服务器没有给出应答信息,则总是等待,直到域名服务器给出应答;
-W<时间>: 指定域名查询的最长时间,如果在指定时间内域名服务器没有给出应答信息,则退出指令;
-4: 使用IPv4;
-6: 使用IPv6.
dig命令,查找工具
dig - DNS lookup utility
dig [@server] [-b address] [-c class] [-f filename] [-k filename] [-m] [-p port#] [-q name] [-t type] [-x addr]
[-y [hmac:]name:key] [-4] [-6] [name] [type] [class] [queryopt...]
dig [global-queryopt...] [query...]
-a: 显示详细的DNS信息;
-c<类型>: 指定查询类型,默认值为“IN“;
-C: 查询指定主机的完整的SOA记录;
-r: 在查询域名时,不使用递归的查询方式;
-t<类型>: 指定查询的域名信息类型;
-v: 显示指令执行的详细信息;
-w: 如果域名服务器没有给出应答信息,则总是等待,直到域名服务器给出应答;
-W<时间>: 指定域名查询的最长时间,如果在指定时间内域名服务器没有给出应答信息,则退出指令;
-4: 使用IPv4;
-6: 使用IPv6.
跟踪路由命令
traceroute命令
traceroute - print the route packets trace to network host
traceroute [ -46dFITnreAUDV ] [ -f first_ttl ] [ -g gate,... ] [ -i device ] [ -m max_ttl ] [ -N squeries ] [ -p port ] [ -t tos ] [ -l flow_label ]
[ -w waittime ] [ -q nqueries ] [ -s src_addr ] [ -z sendwait ] [ --fwmark=num ] host [ packetlen ]
通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。
当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。
traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。
一条路径上的每个设备traceroute要测3次。
输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其ip地址。
-d: 使用Socket层级的排错功能;
-f<存活数值>: 设置第一个检测数据包的存活数值TTL的大小;
-F: 设置勿离断位;
-g<网关>: 设置来源路由网关,最多可设置8个;
-i<网络界面>: 使用指定的网络界面送出数据包;
-I: 使用ICMP回应取代UDP资料信息;
-m<存活数值>: 设置检测数据包的最大存活数值TTL的大小;
-n: 直接使用IP地址而非主机名称;
-p<通信端口>: 设置UDP传输协议的通信端口;
-r: 忽略普通的Routing Table,直接将数据包送到远端主机上。
-s<来源地址>: 设置本地主机送出数据包的IP地址;
-t<服务类型>: 设置检测数据包的TOS数值;
-v: 详细显示指令的执行过程;
-w<超时秒数>: 设置等待远端主机回报的时间;
-x: 开启或关闭数据包的正确性检验。
tracepath命令
tracepath, tracepath6 - traces path to a network host discovering MTU along this path
tracepath [-n] [-b] [-l pktlen] [-m max_hops] [-p port] destination
-n 显示主ip地址数值
-b 显示主机名和IP地址
-l 将初始数据包长度设置为 pktlen, 而不是 65535 tracepath 或128000用于 tracepath6。
-m 将最大跃点数 (或最大 TTLs) 设置为 max_hops 而不是30。
-p 设置使用的初始目的端口