Linux命令:traceroute命令

traceroute

1、简介

traceroute的主要功能是跟踪从IP网络发送到指定主机经过的网关的工具。它利用IP协议的生存时间(time to live, TTL)字段,并试图从路径上的每个网关引出ICMP TIME_EXCEEDED响应,从而得到探测包到达主机所经过的所有网关。它显示了每个跳的IP地址、主机名(如果配置了反向DNS查找)、延迟(以毫秒为单位),以及到达每个跳的往返时间(RTT)。

2、探测原理

TTL的作用:设置IP数据报被丢弃前,最多能够经过的节点数。
ICMP是 Internet Control Message Protocol 的缩写,即互联网控制消息协议。它是互联网协议族的核心协议之一。它用于 TCP/IP 网络中发送控制消息,提供可能发生在通信环境中的各种问题反馈,通过这些信息,使网络管理者可以对所发生的问题作出诊断,然后采取适当的措施解决问题。
traceroute的原理主要是利用TTL来实现的。每当数据包经过一个路由器,TTL就会减少1。如果TTL不为0就会向下一个节点转发,如果为0,则会丢弃数据包,并发一个ICMP TTL给原数据包的发出者。
traceroute探测过程:假设TTL设置为N:
在这里插入图片描述

3、traceroute说明

使用:traceroute [ -46dFITnreAUDV ] [ -f first_ttl ] [ -g gate,… ] [ -i device ] [ -m max_ttl ] [ -N squeries ] [ -p port ] [ -t tos ] [ -l flow_label ] [ -w MAX,HERE,NEAR ] [ -q nqueries ] [ -s src_addr ] [ -z sendwait ] [ --fwmark=num ] host [ packetlen ]
选项:

  • -4:使用ipv4
  • -6:使用ipv6
  • -f first_ttl --first=first_ttl:从第一个ttl开始(而不是从1开始)
  • -g gate,… --gateway=gate,…:通过指定网通过指定网关的路由报文(IPv4最多8个,IPv6最多127个)关的路由报文(IPv4最多8个,IPv6最多127个)
  • -I --icmp:使用ICMP ECHO进行跟踪
  • -T --tcp:使用tcp SYN进行跟踪(默认端口是80)
  • -U --udp:使用UDP对应端口进行探测,默认是53
  • -i device --interface=device:指定要操作的网络接口
  • -N squeries --sim-queries=squeries:设置同时尝试探测的数量(默认为16)
  • -n:不解析IP到对应域名
  • -p port:指定要使用的端口
  • -t tos --tos=to:设置IP数据包的类型字段
  • -s src_addr:指定数据包的源地址
  • -q nqueries:设置每跳探测数。默认是3
  • –sport=num:发送报文时使用源端口,默认是”-N 1“
    参数:
  • host:要探测的主机
  • packetlen:完整的数据包长度(默认是IP首部的长度加上40)

4、实例

traceroute www.baidu.com
traceroute to www.baidu.com (153.3.238.102), 30 hops max, 60 byte packets
 1  _gateway (192.168.92.2)  1.426 ms  1.230 ms  1.137 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  * * *
 8  * * *
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *
# 说明:输出按序号记录。每一个纪录就是一跳。每行的输出内容如下:
# 1.跃点序号:这是数据包经过的跃点的顺序编号。
# 2.经过的路由/网关
# 3.延迟时间,每一跳默认会进行三次探测,最后三个数字为三次探测的延迟时间。单位是ms
# 如果输出内容是*,可能是防火墙封掉了ICMP的返回信息,也可能是网络出问题了。

设置每跳探测数

traceroute -q 5 www.baidu.com
########
traceroute to www.baidu.com (153.3.238.110), 30 hops max, 60 byte packets
 1  _gateway (192.168.92.2)  0.994 ms  0.887 ms  0.810 ms  0.736 ms  0.662 ms
 2  * * * * *
 3  * * * * *
 4  * * * * *
 5  * * * * *
 6  * * * * *
 7  * * * * *
 8  * * * * *
 9  * * * * *
10  * * * * *
11  * * * * *
12  * * * * *
13  * * * * *
14  * * * * *
15  * * * * *
16  * * * * *
17  * * * * *
18  * * * * *
19  * * * * *
20  * * * * *
21  * * * * *
22  * * * * *
23  * * * * *
24  * * * * *
25  * * * * *
26  * * * * *
27  * * * * *
28  * * * * *
29  * * * * *
30  * * * * *

设置跳数

traceroute -m 5 www.baidu.com
traceroute to www.baidu.com (153.3.238.110), 5 hops max, 60 byte packets
 1  192.168.92.2 (192.168.92.2)  1.082 ms  0.983 ms  0.944 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *

探测包使用的基本UDP端口设置6789

traceroute -p 6789 -m 5 www.baidu.com
traceroute to www.baidu.com (153.3.238.110), 5 hops max, 60 byte packets
 1  192.168.92.2 (192.168.92.2)  0.564 ms  0.459 ms  0.392 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *

把对外发探测包的等待响应时间设置为3秒

traceroute -w 3 -m 5 www.baidu.com
traceroute to www.baidu.com (153.3.238.110), 5 hops max, 60 byte packets
 1  192.168.92.2 (192.168.92.2)  0.419 ms  0.165 ms  0.060 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *

总结

需要注意的是:

  1. traceroute是Linux的命令,如果Windows想要跟踪路由,是tracert命令。
  2. Ubuntu系统默认没有此命令,需要自己安装
  3. 该命令也是工作中常用的排查网络方面的问题

这个是自己的学习内容,基本都是根据 traceroute 的帮助信息进行翻译,如果有不对的地方,欢迎帮忙指正。

  • 22
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
linux命令大全,中文版本 Linux命令大全(修改版) 进行重新编译的说明 文件传输 bye ftp ftpcount ftpshut ftpwho ncftp tftp uucico uucp uupick uuto 备份压缩 ar bunzip2 bzip2 bzip2recover compress cpio dump gunzip gzexe gzip lha restore tar unarj unzip zip zipinfo 文件管理 diff diffstat file find git gitview ln locate lsattr mattrib mc mcopy mdel mdir mktemp mmove mread mren mshowfat mtools mtoolstest mv od paste patch rcp rhmask rm slocate split tee tmpwatch touch umask whereis which cat chattr chgrp chmod chown cksum cmp cp cut indent 磁盘管理 cd df dirs du edquota eject lndir ls mcd mdeltree mdu mkdir mlabel mmd mmount mrd mzip pwd quota quotacheck quotaoff quotaon repquota rmdir rmt stat tree umount 磁盘维护 badblocks cfdisk dd e2fsck ext2ed fdisk fsck.ext2 fsck fsck.minix fsconf hdparm losetup mbadblocks mformat mkbootdisk mkdosfs mke2fs mkfs.ext2 mkfs mkfs.minix mkfs.msdos mkinitrd mkisofs mkswap mpartition sfdisk swapoff swapon symlinks sync 系统设置 alias apmd aumix bind chkconfig chroot clock crontab declare depmod dircolors dmesg enable eval export fbset grpconv grpunconv hwclock insmod kbdconfig lilo liloconfig lsmod minfo mkkickstart modinfo modprobe mouseconfig ntsysv passwd pwconv pwunconv rdate resize rmmod rpm set setconsole setenv setup sndconfig SVGAText Mode timeconfig ulimit unalias unset 系统管理 adduser chfn chsh date exit finger free fwhois gitps groupdel groupmod halt id kill last lastb login logname logout logrotate newgrp nice procinfo ps pstree reboot renice rlogin rsh rwho screen shutdown sliplogin su sudo suspend swatch tload top uname useradd userconf userdel usermod vlock w who whoami whois 文档编辑 col colrm comm csplit ed egrep ex fgrep fmt fold grep ispell jed joe join look mtype pico rgrep sed sort spell tr uniq wc 网络通讯 dip getty mingetty ppp-off smbd(samba daemon) telnet uulog uustat uux cu dnsconf efax httpd ifconfig mesg minicom nc netconf netconfig netstat ping pppstats samba setserial shapecfg(shaper configuration) smbd(samba daemon) statserial(status ofserial port) talk tcpdump testparm(te

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值