Linux系统中traceroute命令可以追踪到网络数据包的路由途径。下面由我为大家整理了linux系统中traceroute命令使用详解,希望对大家有帮助!
创新互联公司是一家集网站建设,黔江企业网站建设,黔江品牌网站建设,网站定制,黔江网站建设报价,网络营销,网络优化,黔江网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
Linux系统中traceroute命令使用详解
1.命令格式:
traceroute[参数] [主机]
2.命令功能:
traceroute 指令让你追踪网络数据包的路由途径,预设数据包大小是40 Bytes, 用户可另行设置。
具体参数格式:traceroute [-dFlnrvx] [-f存活数值] [-g网关][-i网络界面][-m存活数值][-p通信端口][-s来源地址][-t服务类型][-w超时秒数][主机名称或IP地址][数据包大小]
3.命令参数
-d使用socket 层级的排错功能
-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开启或关闭数据包的正确性检验
linux系统中traceroute命令实例
实例1:traceroute 用法简单,最常用的用法
命令:traceroute
说明:
记录按序列号从1开始,每个记录就是一跳,每跳表示一个网关,我们看到每行有三个时间,单位是 ms,其实就是 -q 的默认参数。探测数据包向每个网关发送三个数据包后,网关响应后返回的时间;如果您用 traceroute -q 4 , 表示向每个网关发送4个数据包
有时我们 traceroute 一台主机时,会看到有一些行是以星号表示的。出现这种情况,可能是防火墙封掉了 ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。
有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因,当然如果某台DNS出现问题时,不能解析主机名、域名时,也会有延时长的现象;您可以加 -n 参数来避免DNS 解析,以 IP格式 输出数据。
如果在局域网中的不同网段之间,我们可以通过 traceroute 来排查问题所在,是主机的问题还是网关的问题。如果我们通过远程来访问某台服务器遇到问题时,我们用到 traceroute 追踪数据包所经过的网关,提交 IDC 服务商,也有助于解决问题;但目前看来国内解决这样的问题是比较困难的,就是我们发现问题所在,IDC服务商也不可能帮助我们解决。
实例2:跳数设置
命令:
traceroute -m 10
实例3:只显示IP 地址,不查主机名DNS
命令:traceroute -n
实例4:探测包使用的基本UDP端口设置6888
命令:traceroute -p 6888
实例5:把探测包的个数设置为4个
命令:traceroute -q 4
实例6:绕过正常的路由表,直接发送到网络相连的主机
命令:traceroute -r
实例7:把对外发探测包的等待响应时间设置为3秒
命令:traceroute -w 3
补充:linux系统中traceroute 的工作原理
traceroute 程序的设计是利用 ICMP 及IP header 的TTL(time to live)栏位(field)。首先,traceroute 送出一个 TTL 是1 的IP datagram(每次送的的是3个 40字节的包,包括源地址,目的地址和包发出的时间标签)到目的地,当路径上的第一个路由器(router)收到这个 datagram 时,它将TTL减少 1,此时,TTL变为0了,所以该路径会将次 datagram 丢掉,并送回一个 【ICMP time exceeded】消息,traceroute 收到这个消息后,便知道这个路由器存在于这个路径上,接着traceroute 再送出另一个 TTL为 2 的 datagram ,发现第二个路由器,然后一直重复执行这种操作,直到某个datagram 抵达目的地。
在traceroute 送出 UDP datagram 到目的地时,它所选择送达的 port number 是一个一般应用程序都不会用的号码,所以当此UDP datagram到达目的地后该主机会送回一个 ICMP port unreachable 的消息,而当traceroute 收到这个消息时,便知道目的地已经到达,所以 traceroute 在 server 端也就没有所谓的 daemon 程式。
traceroute 通过计算 ICMP TTL 到期消息设备的IP 地址并做域名解析。每次,traceroute 都打印出一系列数据,包括所经过的路由设备的域名及 IP 地址,三个包每次来回所花时间。
桌面环境是充满魅力,吸引眼球的。不仅增强了视觉体验,而且在某些情况下能增强软件的功能,增添趣味。其实在命令行下工作也并不总是那么单调乏味。如果你想在命令行下获取几分乐趣的话,自然也是有很多命令可以令你泛起微笑。
Linux 是一个充满乐趣的操作系统。 功能各异,显而易见到奇秒神奇的巨大开源小工具集被 Linux 所提供。正是由于这些高质量可选择工具令 Linux 脱颖而出。来看看下面这7个小工具。
Lolcat
Lolcat 是一个能连接文件或者标准输入,并将其内容输出到标准输出的程序(像是一般的 cat),但是它能给文字赋予美丽的彩虹。 Lolcat 常常与诸如 toilet 和 figlet 的之类的其他工具组合起来生成文字。
开发者:Lolcat 由 Moe 开发。
站点:github.com。
Cowsay
Cowsay 是一个可配置的开源程序,它能够产生一幅由 ASCII 字符组成的一头奶牛和一个会话气泡图像。由 Perl 语言编写的 cowsay 不仅仅局限于产生奶牛的图像,它也能产生预先生成的其他动物图像,如鸭子,大象,考拉,驼鹿,小马,绵羊,剑龙和火鸡等。还有非动物的棋子,雪人和一个骨架。
有一个和这个相关的程序叫做 cowthink ,它生成的是一头奶牛和它思考的气泡,而不是像 cowsay 生成的是会话气泡。
特点:
令脚本程序更加有趣。
博格模式。
可改变奶牛的面貌,比如让它看起来贪婪,偏执,冷酷,疲惫,年轻等等。
站点:nog.net。
Doge
Doge 是一个基于略显愚蠢实则非常有趣的柴犬图的简单 motd 脚本。它随机的打印一些语法不正确的语句,有时这些相关语句来源于你的计算机。
Doge 是一个在2013年流行起来的网络模因。该模因通常由柴犬的图片配上 Comic Sans 字体的五彩文字。这些文字是一种内心的独白,并且还故意使用蹩脚英语。
特点:
文字出现的位置与颜色随机,故意使用了蹩脚英语。
能抓取系统数据,如主机名,运行中的进程,最近的用户和编辑器等。
如果你有 lolcat ,你可以试试这样: while true; do doge | lolcat -a -d 100 -s 100 -p 1; done
支持标准输入: ls /usr/bin | doge 将会以 doge 样式打印出在 /usr/bin 目录下找到的一些可执行程序。哇哦!这还能用来统计你频繁使用哪些命令。
站点:github.com/thiderman/doge。
ASCIIQuarium
ASCIIQuarium 是一个用 ASCII 字符艺术表达的水族馆或大海的动漫。尽情的欣赏你计算机中那些在水中游动的美丽生物吧!
你需要安装 Perl 的 curses 包和 Term::Animation 模块来支持 ASCIIQuarium 的运行。终端执行: sudo apt-get install libcurses-perl 和 sudo cpan Term::Animation 即可安装上述两个依赖。
特点:
色彩斑斓的鱼。
有趣的动漫,还有一个鱼钩。
有天鹅,鸭子,海豚和船。
站点:。
Sl – Strem Locomotive
Sl 是一个有趣的命令行工具,他通过一个火车开过的动画来纠正用户偶然把 ls 输错成 sl。
我相当疏忽命令输入的过程的正确性,我更愿意追求速度。但这可能会造成危险。因此 sl 可以很好的在我发生这些错误时提醒我。
特点:
-F 开关,控制火车文件。
-l 开关,显示一个小火车。
-a 开关,似乎会发生一场事故。
站点:github.com/mtoyoda/sl。
Aafire
Aafire 在终端展现的是一个燃烧中的 ASCII 字符构成的火焰。它展现的是一个 ascii 显示库 aalib的功能。
站点:aa-project.sourceforge.net/aalib。
CMatrix
CMatrix 是一个 ncurses 库程序,模拟“黑客帝国”中的一个画面。如果你看过“黑客帝国”这部电影,那么你就会知道。
它工作在132×300 大小的终端中,可以进行同步或异步速率的翻滚,还可用户自定义速率。
特点:
改变文本的颜色。
使用粗体字符。
异步翻滚。
老式风格翻滚。
“屏幕保护”模式。
站点:。
这里有几个你可以先看下,你也要学习些基本的命令网页链接。
linux常用的语言就是shell和python,首先我们得先了解语言的概念
-EOF
EOF
编写一个简单的bash档如下:
我们可以看到用./执行bash档时,没有进入到/home目录下,这种我们称为 在子shell中执行 ,其不影响当前shell的状况(有时候执行成功没有效果的原因)。但是无论是. 执行还是source执行我们都成功进入了home路径下,这我们称之为 在当前shell执行
su nologinshell 不加载用户的shell
su - loginshell 加载用户的shell
可以很明显的看出来,当用不加载用户的shell加载用户时,是不会具有当前加载用户的权限的,很像windows中的游客模式
history历史记录缓存
~/.bash_history退出后写入缓存
~/.bash_logout退出后执行
在这一层,顺带按图索骥,理解一下linux系统开机的历程。红字:系统层开机/切换用户历程;蓝字:用户层开机/切换用户历程;黄字:用户层关机历程。
曾经玩过一个游戏:在用户指令关机时,会有一辆小火车开过,所以我们可以把调用小火车开过的程式调用写在?
1、命令和文件的自动补齐 shift
2、命令的历史记忆功能:上下键、!number 执行第多少条命令、
!string 找到最近以string开头的命令、! 上一个命令最后的参数、
!! 执行上一个命令、^R 搜索历史命令
3、别名功能:alias 查看别名、unalias 取消别名、(命名前加\斜线跳过别名)
alias xx=’xx’ 定义临时别名、vim ~/.bashrc 定义永久别名
4.快捷键:^D 退出、^A 光标移动到命令最前、^E 光标移动到命令最后、
^L 清屏、^U 往前的删掉、^K 往后的删掉、^Y 撤销、^M 回车
^S 锁屏、^Q 解除锁屏
5.前后台作业控制: 后台不保留、nohup 后台保留、screen
; || (命令返回值echo ?)
*任意多个字符
?任意一个字符
[]匹配括号内任意一个字符
()在子shell中执行
{}集合
\转义字符
注意点:echo -e “a\tb”
$? 前一条命令的执行成功与否
$1 传入的第一个参数 $2 $3 位置变量
没有使用环境变量的必要性
练习内容:读取用户指定文档的ip连通性
bc计算器
假设我们定义了一个变量为:
记忆的方法为:
利用${ } 还可针对不同的变数状态赋值(没设定、空值、非空值):