traceroute

Linux命令之traceroute

落花浮王杯 提交于 2019-11-28 03:36:03
通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。linux系统中,我们称之为traceroute,在MS Windows中为tracert。 traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其IP地址。 在大多数情况下,我们会在linux主机系统下,直接执行命令行: traceroute hostname 而在Windows系统下是执行tracert的命令: tracert hostname 1.命令格式: traceroute[参数][主机] 2.命令功能: traceroute指令让你追踪网络数据包的路由途径,预设数据包大小是40Bytes,用户可另行设置。 具体参数格式:traceroute [-dFlnrvx][-f<存活数值>][-g<网关>...][-i<网络界面>][-m<存活数值>][-p<通信端口>][-s<来源地址>][-t<服务类型>][-w<超时秒数>][主机名称或IP地址][数据包大小] 3.命令参数: -d

Ping、Traceroute工作原理

 ̄綄美尐妖づ 提交于 2019-11-27 23:52:51
在工作开发过程中,我们经常会使用到ping和traceroute。在这里,我们将细述其工作原理,让你在会用的基础之上理解其内部工作过程。 ICMP应用实例——Ping Ping 是 ICMP 的一个重要应用,主要用来测试两台主机之间的连通性。Ping 的原理是通过向目的主机发送 ICMP Echo 请求报文,目的主机收到之后会发送 Echo 回答报文。Ping 会根据时间和成功响应的次数估算出数据包往返时间以及丢包率。 Ping的完整工作流程: Ping本质上是ICMP数据包,所以其工作流程就是ICMP数据包的发送与解析流程。 大致流程如下: 构造ICMP数据包-->构造IP数据包-->构造以太网数据帧----物理传输到目标主机---->获取以太网数据帧-->解析出IP数据包-->解析出ICMP数据包-->发送回送应答报文 本地主机处理流程: 在本地,ping命令会构建一个ICMP数据包(构造回送请求报文) 将该ICMP数据包和目标IP地址给IP协议,IP协议将本地地址作为源地址,与目的地址等构造IP数据包 根据本地ARP缓存查找目的地址IP对应的MAC地址,如果缓存中没有则通过ARP协议找到对应IP的MAC地址。将MAC地址交给数据链路层以构造数据帧 经物理层发送给目的主机 目的主机处理流程: 目的主机接收到数据包 物理层接收到二进制数据流经数据链路层,按照以太网协议解析出数据帧

Linux命令----traceroute

橙三吉。 提交于 2019-11-27 23:52:41
traceroute命令 通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。linux系统中,我们称之为traceroute,在MS Windows中为tracert。 traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其IP地址。 在大多数情况下,我们会在linux主机系统下,直接执行命令行: traceroute hostname 而在Windows系统下是执行tracert的命令: tracert hostname 1. 命令格式: traceroute[参数][主机] 2. 命令功能: traceroute指令让你追踪网络数据包的路由途径,预设数据包大小是40Bytes,用户可另行设置。 具体参数格式:traceroute [-dFlnrvx][-f<存活数值>][-g<网关>...][-i<网络界面>][-m<存活数值>][-p<通信端口>][-s<来源地址>][-t<服务类型>][-w<超时秒数>][主机名称或IP地址][数据包大小]

traceroute原理

心不动则不痛 提交于 2019-11-27 23:51:21
Traceroute(linux)/tracert(win) 均是用于同一目的的网络调试工具。它们用于显示数据包在IP网络中经过的路由器的IP地址。 原理 这些程序是利用IP数据包的存活时间(TTL)值来实现其功能的。 当一台计算机发送IP数据包时,会为数据包设置存活时间(TTL)值。每当数据包经过一个路由器,其存活时间值就会减 1。当存活时间减到 0 时,路由器将不再转发数据包,而是发送一个 ICMP TTL 数据包给最初发出数据包的计算机。 Traceroute 程序首先向目标主机发出 TTL 为 1 的数据包,发送数据包的计算机与目标主机之间的路径中的第一个路由器,在转发数据包时将数据包的 TTL 减 1,它发现 TTL 被减为了 0,于是向最初发出数据包的计算机发送一个 ICMP TTL 数据包,Traceroute 程序以此获得了与目标主机之间的路径上的第一个路由器的IP地址。后面 traceroute 程序依次向目标主机发送 TTL 为 2、3、4 . . . 的数据包,逐个探测出来与目标主机之间的路径上每一个路由器的 IP 地址。 实现 默认条件下,traceroute 首先发出 TTL = 1 的UDP 数据包,第一个路由器将 TTL 减 1 得 0 后就不再继续转发此数据包,而是返回一个 ICMP 超时报文,traceroute

关于路由跟踪指令---traceroute

假如想象 提交于 2019-11-27 23:50:46
我们都用过ping命令来检查主机与目标地址是否连通,自己的主机与目标地址的通讯包通讯速率,所谓的通讯包也就是那些什么TCP/IP,UDP包。 原理:https://www.cnblogs.com/beyond_dxb/p/8383821.html https://blog.csdn.net/sun172270102/article/details/70024410 关于路由跟踪: 路由跟踪指令对Linux来说是traceroute,在windows则是tracert,这次就主要来说traceroute。 traceroute是用来检测发出数据包的主机到目标主机之间所经过的网关数量的工具。traceroute的原理是试图以最小的TTL(存活时间)发出探测包来跟踪数据包到达目标主机所经过的网关,然后监听一个来自网关ICMP的应答。发送数据包的大小默认为38个字节。 traceroute程序完整过程:首先它发送一份TTL字段为1的IP数据包给目的主机,处理这个数据包的第一个路由器将TTL值减1,然后丢弃该数据报,并给源主机发送一个ICMP报文(“超时”信息,这个报文包含了路由器的IP地址,这样就得到了第一个路由器的地址),然后traceroute发送一个TTL为2的数据报来得到第二个路由器的IP地址,继续这个过程,直至这个数据报到达目的主机。 1.命令格式: traceroute [参数

python使用scapy报错Traceback (most recent call last):ImportError: No module named all

北城以北 提交于 2019-11-27 10:41:45
碰到这个问题很蹊跷,大家如遇到肯定像我一样认为是scapy安装的问题。 问题 :在执行python脚本(import scapy)的目录下创建了一个scapy.py名字的脚本,然后python ipscapy就报错(脚本无问题)。 更正问题 :修改mv scapy.py abc.py问题解决。 报错信息: [root @localhost home]#python ipscan.py Traceback (most recent call last): File “ipscan.py”, line 5, in from scapy.all import traceroute File “/home/scapy.py”, line 5, in from scapy.all import traceroute ImportError: No module named all 问题原因 : import scapy后执行脚本调用scapy模块中(默认自动加了.py后缀)优先找了当前目录的scap.py,因为两文件不一样(一个是我们引入别人写好的库文件,一个是我们自己创建的文件),所以就报错了。 附:ipscan.py # -*- coding: utf-8 -*- import os,sys,time,subprocess import warnings,logging from

查看网络情况 ping 大包 和 tracert 、 traceroute

亡梦爱人 提交于 2019-11-27 10:38:28
 严禁Ping入侵作为大多数防火墙的一个基本功能提供给用户进行选择。   Linux下Ping包的默认大小为64Byte,次数不限。但有时我们需要尝试Ping大数据包,来测试网络的状况,这时,就要指定Ping包的大小了。   Linux下Ping大数据包的格式:   语 法:Ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l<前置载入>][-p<范本样式>][-s<数据包大小>][-t<存活数值>][主机名称或IP地址]   例如:   1、指定数据包大小为1500Byte:Ping -s 1500 ip   2、指定次数为4次,数据包大小为32767Byte:Ping -c 4 -s 32767 ip   Windows下默认Ping包次数为4次,Ping包大小为32Byte:   1、指定Ping包大小为1500Byte:Ping -l 1500 ip   2、指定次数为6次,Ping包大小为1500:Ping -n 6 -l 1500 ip    注: 查看使用帮助,输入Ping,回车即可。   Ping大包命令为Ping -l 65500,数据包的有效范围从 0 到 65500。Ping命令还有许多有用的功能,供您参考:   Ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [

How can I perform a ping or traceroute in python, accessing the output as it is produced?

∥☆過路亽.° 提交于 2019-11-27 06:25:50
问题 Earlier, I asked this question: How can I perform a ping or traceroute using native python? However because python is not running as root it doens't have the ability to open the raw ICMP sockets needed to perform the ping/traceroute in native python. This brings me back to using the system's ping/traceroute shell commands. This question has a couple examples using the subprocess module which seem to work well: Ping a site in Python? I still have one more requirement though: I need to be able

How to ICMPs and traceroutes in Java

吃可爱长大的小学妹 提交于 2019-11-27 06:20:31
问题 Java does not have primitives for ICMPs and traceroute. How to overcome this? Basically I'm building code that should run in *nix and Windows, and need a piece of code that will run in both platforms. 回答1: Here's what I wrote today to "implement" the trace route command in Java. I've only tested in windows but it should work in Linux as well although there are several traceroute tools available for Linux so most likely there need to be some checks for the existence of those programs. public

LINUX探路-网络

主宰稳场 提交于 2019-11-27 03:37:43
linux网络一直是linux学习中比较困难的问题,所以现在整理下网络相关知识供参考,其实,很多人对网络都有一些基础认识,但是真正遇到网络问题,还是不知道从哪下手,归根到底,1、是对网络知识了解太少,2、网络工具或命令使用不纯熟。 一、首先介绍几个命令: (一)检查和监测网络 1、ifconfig [网络设备] [参数] ifconfig 命令用来查看和配置网络设备。当网络环境发生改变时可通过此命令对网络进行相应的配置。 ifconfig eth0 up/down 启动/关闭指定网卡 ifconfig eth0 192.168.101.12 修改IP地址 ifconfig eth0 add/del 33ffe:3240:800:1005::2/64 为网卡eth0配置IPv6地址 ifconfig详解可以看: https://xp9802.iteye.com/blog/2120351 2、netstat [选项] netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。 -a或--all:显示所有连线中的Socket; -n或--numeric:直接使用ip地址,而不通过域名服务器; -p或--programs:显示正在使用Socket的程序识别码和程序名称; -t或--tcp:显示TCP传输协议的连线状况;