网络问题定位问题手段总结

857 阅读1分钟

1. Linux下长时间ping网络加时间戳并记录到文本

ping命令就不多说了,-i是时间间隔,-c是ping的次数,-w deadline选项的意思是ping命令的存活时间。

ping 192.168.2.1 -i 1 | awk '{ print $0"\t" strftime("%H:%M:%S",systime()) }' >> ping1.log &

2. 检测丢包率

echo "renetwork script run time : "`date "+%F %T"`"" >> /root/tools/renetwork/renetwork.log
while true
do
IPST=`ping -w 500 -c 3 192.168.0.1 | grep 'packet loss' | sed "s/.*received, //g"`
if [ "${IPST::1}" != "0" ];then
echo "$IPST" "`date "+%F %T"`">> /root/tools/renetwork/renetwork.log
fi
sleep 10
done

3. 端口可用性探测

安装nc工具

yum -y install nc

nc的常用的几个参数如下所列:
-l
用于指定nc将处于侦听模式。指定该参数,则意味着nc被当作server,侦听并接受连接,而非向其它地址发起连接。
-p
暂未用到(老版本的nc可能需要在端口号前加-p参数,下面测试环境是centos6.6,nc版本是nc-1.84,未用到-p参数)
-s
指定发送数据的源IP地址,适用于多网卡机
-u
指定nc使用UDP协议,默认为TCP
-v
输出交互或出错信息,新手调试时尤为有用
-w
超时秒数,后面跟数字
-z
表示zero,表示扫描时不发送任何数据

探测 TCP 端口

FILE_DIR=/home/netcheck
echo "?" > $FILE_DIR/nc57.pid
while(true)
do
echo `date "+%F %T"` 192.168.1.51 `nc -zs 192.168.1.51 192.168.1.57 10086` >> $FILE_DIR/nc57.log
sleep 10
done

探测 UDP 端口

A:被检测服务器
B:客户端

A上用nc监听udp模式下的8888
nc -ulp 8888
B在udp模式下向A8888端口发送信息
nc -zvu A服务器IP 8888