ping命令利用icmp协议(echorequest----echo reply包)来实现
选项
-c 次数 指定ping几次后退出
-W 时间 指定最大等待时间
注:如有大量ping请求发到本主机,会影响本机其他网络服务。
ping输出详解
rtt:请求报文的响应时间
报错信息:timeout关键字:原因有2种:1,无此主机 2,对方主机不响应
目标主机不可达:这个去查rfc文档(学习网络协议的好方法就是看rfc文档),有中文版的!
判断主机是否在线的脚本:
1)
for .. in ..;do ping –c1 –W1 x.x.x.$i &>/dev/null && echo “online:x.x.x.$i” ||echo “offline x.x.x.$i”;done
2)
for .. in ..;do if ping –c1 –W1x.x.x.$i &>/dev/null ;then echo “online:x.x.x.$i” ;else echo “offline x.x.x.$i”;fi;done
3)快速ping方法
for .. in ..;do(ping –c1 –W1 x.x.x.$i &>/dev/null && echo “online: x.x.x.$i” ||echo “offlinex.x.x.$i”) &;done|sort –t. -n –k4
traceroute命令:跟踪到目标主机需要经过多少router
TCP有限状态机:标识基于TCP的协议的连接所处的状态---见mag学习笔记目录下同名图片
netstat命令 选项
-t 查看tcp已建立的连接
-u 查看ucp已建立的连接
-a == -tu
-p 显示pid/程序名称
-rn 显示本地路由表(不反解域名)
-l 显示处于监听状态的服务
-n 以数字格式显示端口号、主机名(IP),不反向解析IP,不解析端口号对应的服务名
*常用选项组合-tunlp *UDP是无连接的因此没有LISTEN这个状态,
可用选项-tn | -tnl 只显示tcp连接信息
- -c选项显示输出且不退出命令,可以动态显示连接状况,可用命令#netstat –tnc 5试一下,这条命令指定刷新时间为每5秒刷新一次,不指定默认每一秒刷新一次。
-e 显示扩展信息,例如user inode列等等很多,-tne选项试一下
在本机有大量连接时,netstat命令执行速度较慢,ss命令由iproute2软件包提供,功能类型netstat,在本机有大量连接时执行速度快于netstat
ss命令选项
-t 查看tcp已建立的连接
-t -a 查看tcp已建立的连接,以及监听中的服务
-u 查看ucp已建立的连接
-u -a 查看ucp已连接,以及等待连接的服务
常用选项–tua
-l 显示监听中的套接字
-m 显示套接字使用的内存信息
-e 显示扩展信息
-s 显示统计信息
-p 显示pid/程序名称
ss还可以指定过滤条件来显示连接#man ss
例
ss -ta state established ‘( dport =:ssh )’
ss -tan state established ‘( dport =:22 or sport = :22 )’
linux下网络排错以及查看网络信息命令