一、traceroute的实现原理

1、IP协议利用存活时间TTL来发出探测包跟踪数据包到达目标ip主机所经历的路由网关数量,每经过一个路由器,TTL的值就减去1。当TTL值为0时,主机就取消发送数据包,并回传一份ICMP报文。
2、在linux系统中,traceroute 命令利用ICMP协议实现定位本地计算机与目标计算机进行网络通信过程中经历的所有路由器。
3、IP协议包头部中的TTL 值可以反映数据包经过的路由器的跳数,通过控制独立ICMP 请求报文段中的TTL 值,观察该报文被抛弃的返回信息,traceroute命令能够遍历到数据包传输路径上的所有路由器。

二、traceroute命令使用方法

1、命令格式

	traceroute  [参数]  [主机]

2、常用命令参数

	-4 Use IPv4

	-6 Use IPv6

	-d  --debug    Enable socket level debugging

	-q  Set the number of probes per each hop. Default is 3

	-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 开启或关闭数据包的正确性检验。

3、使用实例

    1. sudo apt-get install traceroute
      如果是第一次使用 traceroute 命令,则可能会出现这种情况:

      按照提示安装即可: sudo apt-get install traceroute
    2. traceroute www.baidu.com
      效果截图:
      可以看到,traceroute 一台主机时,会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。
    3. traceroute -n -m 5 -q 4 -w 3 www.baidu.com
      效果截图:

      -q 4每个网关发送4个数据包
      -w 3 把对外发探测包的等待响应时间设置为3秒

traceroute在linux中的使用方法的更多相关文章

  1. linux中nginx重定向方法总结

    linux中nginx 301重定向跳转方法总结 第一种情况:访问aaaaaaa站定向到bbbbbbbbbbb站 复制代码代码如下: server { server_naaaaaaame www.aa ...

  2. 利用shell批量改名和linux中取随机数的方法

    先批量创建文件 #!/bin/sh if [ ! -d /tmp/chenyao ] then mkdir /tmp/chenyao -p fi cd /tmp/chenyao ..} do touc ...

  3. 在linux中运行main方法所在的java类(亲测有效!!!)

    本人是用SecureCRTPortable连接linux终端的.其他工具连接linux终端应该是一样的操作! 一.首先到移动到java工程所在的bin目录. 二.在bin目录下执行javac -cp ...

  4. linux中5种方法过滤出文件夹ls -F ls -p grep、find快速查找过滤目录

    1.ls -l , 根据颜色区分目录和文件2.ls -l, 以d开头的是目录 ls -l | grep "^d" 过滤以d开头的3.ls -l , 输入结果中第二列中大余1的是目录 ...

  5. linux中grep使用方法具体解释

    查找特定字符串并颜色显示 [root@fwq test]# grep -n 'the' regular_express.txt --color=auto 8:I can't finish the te ...

  6. Linux中的zero-copy技术

    本文是对参考文章重要部分的摘录,同时进行简单地总结. 零拷贝技术的相关背景知识 传统的 Linux 操作系统的标准 I/O 接口是基于数据拷贝操作的,即 I/O 操作会导致数据在操作系统内核地址空间的 ...

  7. linux中防CC攻击两种实现方法(转)

    CC攻击就是说攻击者利用服务器或代理服务器指向被攻击的主机,然后模仿DDOS,和伪装方法网站,这种CC主要是用来攻击页面的,导致系统性能用完而主机挂掉了,下面我们来看linux中防CC攻击方法. 什么 ...

  8. 1008win7与虚拟机中的linux共享文件的(详细)方法

    转自http://jingyan.baidu.com/article/ca00d56c74dde4e99eebcfd2.html 好东西一起分享 win7与虚拟机中的linux共享文件的(详细)方法 ...

  9. linux中快速清空文件内容的几种方法

    这篇文章主要介绍了linux中快速清空文件内容的几种方法,需要的朋友可以参考下 $ : > filename $ > filename $ echo "" > f ...

随机推荐

  1. char数据类型

    char数据类型就是为了中文 一个中文占两个字节正好char是占用两个字节 char a='国'’; char类型必须使用单引号属于字符类型 双引号的是字符串类型如果使用等号两边数据类型不一致就是 不 ...

  2. python多版本共存pip指向问题

    这两天一致被一个问题困扰,电脑里装了anaconda和python3.7,在命令行里输入python,想要python3.7,出现的确实python3.6,或使用pip安装包时,不知道是装在里pyth ...

  3. Django Form 内置字段

    常用字段: Field required=True, 是否允许为空 widget=None, HTML插件 label=None, 用于生成Label标签或显示内容 initial=None, 初始值 ...

  4. windows下 go vscode编译运行方法

    1:直接在终端运行go run命令编译 2.安装code runner插件,根据箭头标示顺序,可以在右侧看到它支持的语言.

  5. LSTM容易混淆的地方

    1 如果只是学习怎么用LSTM,那么可以这么理解LSTM LSTM可以看成一个仓库,而这个仓库有三个门卫,他们的功能分别是 遗忘门.决定什么样的物品需要从仓库中丢弃. 输入门.决定输入的什么物品用来存 ...

  6. QList去掉重复项 .toSet()报错???

    我们知道QList::toSet()函数可以将QList转成QSet.可我却遇到报错: QList<QVariant> datas = it.value().values(); QSet& ...

  7. pip 设置阿里云源

    在~/.pip/pip.conf文件中添加或修改 mkdir ~/.pip [global] index-url = http://mirrors.aliyun.com/pypi/simple/ [i ...

  8. paramiko简介

    一.什么是paramiko 要想明白什么是paramiko,要先明白ssh协议. 二.什么是ssh协议 ssh全称是Secure Shell (翻译:安全的外壳),根据字面意思就可以知道是和安全相关的 ...

  9. 简述vue props和非props的2个特性

    props的2个特性 ①:父组件通过属性的方式传值(比如下面截图中的content)给子组件,content不会显示在DOM节点中                       ②:父组件向子组件传递值 ...

  10. tf.clip_by_value

    tf.clip_by_value(t, clip_value_min, clip_value_max, name=None) 功能:基于定义的min与max对tesor数据进行截断操作,目的是为了应对 ...