1. 【traceroute】关于traceroute(路由追踪)的原理分析
traceroute 主要利用 IP 数据包的 TTL 字段值 + ICMP 来实现,它发送的用于探测网络路径的数据包的 IP 之上的协议可以是 UDP、TCP或ICMP。
协议表示该数据报文所携带的数据所使用的协议类型,占 8 位。
该字段可以方便目的主机的 IP 层知道按照什么协议来处理数据部分。不同的协议有专门不同的协议号。
例如,TCP 的协议号为 6,UDP 的协议号为 17,ICMP 的协议号为 1。
不同模式下,探测过程中设计的数据包如下:
UDP 探测数据包(目标端口大于 30000) + 中间网关发回 ICMP TTL 超时数据包 + 目标主机发回 ICMP Destination Unreachable 数据包
TCP [SYN] 探测数据包(默认目标端口为 80) + 中间网关发回 ICMP TTL 超时数据包 + 目标主机发回 TCP [SYN ACK] 数据包
ICMP Echo (ping) Request 探测数据包 + 中间网关发回 ICMP TTL 超时数据包 + 目标主机发回 ICMP Echo (ping) reply 数据包
UDP 端口扫描比较麻烦,它同TCP不一样,因为它不需要建立连接。
我们向 目标主机 的固定端口发送UDP数据包,可以得到 两种结果:
在运营商的路由器上,UDP 与 ICMP 的待遇大不相同。
为了利于 troubleshooting,ICMP ECHO Request/Reply 是不会封的,而 UDP 则不同。
UDP 常被用来做网络攻击,因为 UDP 无需连接,因而没有任何状态约束它,比较方便攻击者伪造源 IP、伪穗旅凯造目的端口发送任意多的 UDP 包,长度自定义。
所以运营商为安全考虑,对于 UDP 端口常常采用白名单 ACL,就是只有 ACL 允许的端口才可以通过,没有明确允许的则统统丢弃。比如允许 DNS/DHCP/SNMP 等。
当网络工程师用Ping时,Ping在偷摸做啥事儿?
ping命令是依托于 ICMP协议的, ICMP协议的存在就是为了更高效的转发 IP数据报和提高交付成功的机会。
ping命令除了依托于 ICMP,在局域网下还要借助于 ARP协议, ARP协议能根据 IP地址反查出计算机的 MAC地址。
另外 ARP是有缓存的,为了保证 ARP的准确性,计算机会更新ARP缓存。
有时我们traceroute 一台主机时,会看到有一些行是以星号表示的。
出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。
有些路由器会隐藏的自己的位置,不让ICMP Timeout的消息通过,结果就是在那一跳上始终会显示星号。此外镇宽服务器也可以伪造traceroute路径的,不过一般应用服务器也没有理由这么做,所以Traceroute的结果还是能够为网络分析提供一些参考的。
linux下traceroute程序默认发送的探测包为UDP协议,windows下tracert、mtr,以及Linux下mtr默认都发送的是icmp的数据包,并不是所有网关都会如实返回 ICMP 超时报文。处于安全性考虑,大多数防火墙以及启用了防火墙功能的路由器缺省配置为不返回各种猜唤 ICMP 报文,其余路由器或交换机也可能被管理员主动修改配置变为不返回 ICMP 报文。因此 Traceroute 程序不一定能拿到所有的沿途网关地址。所以,当某个 TTL 值的数据包得不到响应时,并不能停止这一追踪过程,程序仍然会把 TTL 递增而发出下一个数据包。这个过程将一直持续到数据包发送到目标主机,或者达到默认或用参数指定的追踪限制(maximum_hops 默认最大为30)才结束追踪
如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在,是主机的问题还是网关的问题。
如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute 追踪数据包所经过的网关,提交IDC服务商,也有助于解决问题;但目前看来在国内解决这样的问题是比较困难的,就是我们发现问题所在,IDC服务商也不可能帮助我们解决。
动态图解traceroute(路由追踪)的原理与实现
https://zhuanlan.hu.com/p/404043710
IP数据报格式详解
http://c.biancheng.net/view/6411.html
解析为何traceroute探测的时候中间有些节点探测不到?
https://zhuanlan.hu.com/p/122465496
traceroute使用与实现原理分析
https://zhuanlan.hu.com/p/36811672
traceroute(路由追踪)的原理及实现
https://www.jianshu.com/p/75a5822d0eec
为什么目标地址ping能通,但是tracetoute不通?
https://cloud.tencent.com/developer/article/1642331
只会用ping测试网络通不通?高级网工还会这么用
https://zhuanlan.hu.com/p/458358961
当网络工程师用Ping时,Ping在偷摸做啥事儿?
https://zhuanlan.hu.com/p/513184441
traceroute原理
https://www.cnblogs.com/zyd112/p/7196341.html
TCP/UDP/ICMP Traceroute的原理及区别
https://zhuanlan.hu.com/p/101810847
2. 如何跟踪路由
目录方法1:Windows1、打开“开始”2、输入命令提示符。3、点击4、确定要跟踪路线的网站。5、输入“traceroute”命令。6、查看结果。方法2:Mac1、打开“聚焦”2、输入网络实用工具。3、打开“网络实用工具”。4、点击Traceroute5、输入网站地址。6、辩仿点击跟踪7、查看结果。方法3:iPhone1、下载iNetTools应用。2、打开iNetTools。3、点击屏幕中间的跟踪路由4、点击“主机名或IP地址”文本框。5、输入网站地址。6、点击屏幕右上角的开始7、查看结果。方法4:安卓1、下载PingTools应用。2、打开PingTools。3、出现提示时,点击接受4、点击屏幕左上角的?5、点击路由跟踪6、点击屏幕顶部的文本框。7、输入网站地址。8、点击屏幕右上角的跟踪9、查看结果。方法5:Linux1、打开“终端”。2、安装Traceroute。3、确定要跟踪路由的网站。4、输入“traceroute”命令。5、查看结果。本文教你如何在电脑或智能手机上运行“traceroute”命令。“traceroute”命令允许你跟踪IP包在你电脑和它的目的地之间的停止位置,这样可以帮你确定导致出现连接问题的网络故障。
方法1:Windows
1、打开“开始”。点击屏幕左下角的Windows标志。随后会弹出开始菜单。
2、输入命令提示符。这样就会搜索电脑上的“命令提示符”程序。
3、点击“命令提示符”。它在菜单顶部。这样就会打开“命令提示符”。
4、确定要跟踪路线的网站。例如,如果你想查看你的电脑和Facebook之间的网关列表,你可以使用Facebook网站。
5、输入“traceroute”命令。输入tracert website.com—确保将website.com替换为你需要跟踪的网站的名称和扩展名(例如,facebook.com)——并按? Enter。你不需要加入网址中的https://或www.部分。
如果你有网站的IP地址,可用它来代替URL。
6、查看结果。“命令提示符”将提供多达30个不同的网关(也称为“跳跃”),IP包通过这些网关传递。当你看到“跟踪完成”出现在跳跃列表下面时,说明跟踪过程已经成功完成。如果你看到空白跟踪条目,可以忽略它们。它们表示跟踪是作为结果返回,缺灶丛而不是通过网关返回。
方法2:Mac
1、打开“聚焦”。点击屏幕右上角的放大镜图标即可。
2、输入网络实用工具。这样就会搜索电脑上的“网络实用工具”程序。
3、打开“网络实用工具”。双击搜索结果顶部附近的网络实用工具。这样打开“网络实用工具”窗口。
4、点击Traceroute。它是位于“网络实用工具”窗口顶部的选项卡。
5、输入网站地址。在窗口顶部附近的文本框中,输入要跟踪路径的网站地址(或IP地址)。例如,要跟踪到wikiHow网站的路径,你需要输入wikihow.com。
你不需要加入网址中的https://或www.部分。
6、点击跟踪。它是页面右侧的一个蓝色按钮。这样“网络实用工具”就会开始跟踪到达所选网站经过的路径。
7、查看结果。Traceroute将显示跟踪程序在到达目的地的途中所经过的网关的列表。如果你看到空白跟踪条目,可以忽略它们。它们表示跟踪是作为结果返回,而不是通过网关返回。
方法3:iPhone
1、下载iNetTools应用。如果你的iPhone上已经安装了iNetTools,可以跳过这一步。打开 App Store,然后进行下列操作:点击搜索
点击搜索栏。
输入inettools
点击inettools - ping,dns,port scan
点击iNetTools旁边的获取。
输入Touch ID或Apple ID密码。
2、打开iNetTools。在App Store中点击打开,或者点击iPhone主屏幕上类似雷达显示器的iNetTools应用图标。
3、点击屏幕中间的跟踪路由。
4、点击“主机名或IP地址”文本框。你可以在屏幕顶部附近找到这个选项。这样就会打开iPhone的屏幕键盘。
5、输入网站地址。输入要跟踪路径的网址(或IP地址)。例如,要跟踪到谷歌最近的服务器的路径,你需要输入google.com。
你不需要加入网址中的https://或www.部分。
6、点击屏幕右上角的开始。iNetTools将开始跟踪到你伏樱指定地址的路由。
7、查看结果。“结果”标题对面的转轮消失后,你就可以查看跟踪程序在到达目的地的途中经过的每个网关的地址。如果你看到空白跟踪条目,可以忽略它们。它们表示跟踪是作为结果返回,而不是通过网关返回。
方法4:安卓
1、下载PingTools应用。如果你的安卓上已经安装了PingTools,可以跳过这一步。打开 Google Play商店,然后进行下列操作:点击搜索栏。
输入pingtools
点击结果中的PingTools Network Utilities。
点击安装
出现提示时,点击接受。
2、打开PingTools。在“Google Play商店”中点击打开,或在安卓的“应用抽屉”中点击PingTools应用图标。
3、出现提示时,点击接受。这样就会同意PingTools的使用条款,并打开应用。如果你之前打开过PingTools,你或许可以跳过这一步。
4、点击屏幕左上角的?。随后会出现弹出菜单。
5、点击路由跟踪。这个选项位于弹出菜单的中间。
6、点击屏幕顶部的文本框。这样就会打开安卓的屏幕键盘。如果这个文本框中已经有一个网址,在继续操作之前删除它。
7、输入网站地址。输入要跟踪路径的网址(或IP地址)。例如,要跟踪到Twitter最近的服务器的路径,你需要输入twitter.com。
你不需要加入网址中的https://或www.部分。
8、点击屏幕右上角的跟踪。这样PingTools就会开始跟踪到你所选地址的路由。
9、查看结果。跟踪完成后,你可以查看跟踪程序在到达目的地的途中经过的每个网关的地址。如果你看到空白跟踪条目,可以忽略它们。它们表示跟踪是作为结果返回,而不是通过网关返回。
方法5:Linux
1、打开“终端”。这一步取决于你的Linux版本,但是大多数发行版都需要打开菜单,然后从程序列表中选择终端。在大多数Linux发行版上,你也可以按Alt+Ctrl+T来打开“终端”。
2、安装Traceroute。安装方法如下:输入sudo apt install traceroute,并按? Enter。
输入密码并按? Enter。
输入y,如果出现提示,按? Enter。
等待Traceroute安装。
3、确定要跟踪路由的网站。例如,如果你想查看你的电脑和YouTube之间的网关列表,你可以使用YouTube网站。
4、输入“traceroute”命令。输入traceroute website.com—确保将website.com替换为你需要跟踪的网站的名称和扩展名(例如,youtube.com)——并按? Enter。你不需要加入网址中的https://或www.部分。
如果你有网站的IP地址,可用它来代替URL。
5、查看结果。跟踪完成后,你可以查看跟踪程序在到达目的地的途中经过的每个网关的地址。如果你看到空白跟踪条目,可以忽略它们。它们表示跟踪是作为结果返回,而不是通过网关返回。
小提示你的电脑和所选网站之间的网关数量不包括任何空白条目。例如,如果你看到12个网关有3个空白条目,那么在你电脑和网站之间只有9个网关。
警告你的电脑和所选网站之间的网关列表可能会随时变化。
3. oracle中traceroute命令
SillyRabbit
博客园 首页 管理
随笔 - 462 文章 - 0 评论 - 1 阅读 - 26万
搜索
常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
随笔分类
ATL(19)
c++(65)
CEF(6)
Cocos2d-x引擎(22)
COM(14)
Debug(9)
ffmpeg(1)
fiddler(4)
GDI/GDI+(10)
HTTP(11)
Jabber(2)
Object_C(22)
OPGL(5)
Pop Animation(6)
sqlite(4)
更多
随笔档案
2021年11月(3)
2019年8月(1)
2019年7月(1)
2019年6月(1)
2019年1月(3)
2018年12月(2)
2018年11月(2)
2018年9月(1)
2018年4月(1)
2018年3月(2)
2018年1月(1)
2017年3月(3)
2016年12月(1)
2016年3月(1)
2016年1月(5)
更多
最新评论
1. Re:众多Android 开源项目推荐,给力工作给力弯含学习
这些项目有源码吗?
--雪山一客
traceroute命令初探
一、学习目标
了解traceroute基本概念
了解traceroute工作原理及详细过程
熟悉traceroute常用命令
一些注意点
二、traceroute基本概念
traceroute (Windows系统下是tracert) 命令利用ICMP 协议定位您的计算机和目标计算机之间的所有路由器。TTL值可以反映数据包经过的路由器或网关的数量,通过操纵独立ICMP呼叫报文的TTL值和观察该报文被抛弃的返回信息,traceroute命令能够遍历到数据包传输路径上的所有路由器。traceroute是一条缓慢的命令,因为每经过一台路由器都迹闹圆要花去大约10到15秒。
三、traceroute工作原理姿塌及详细过程
traceroute是用来侦测主机到目的主机之间所经路由情况的重要工具,也是最便利的工具。尽管ping工具也可以进行侦测,但是,因为ip头的限制,ping不能完全的记录下所经过的路由器,所以traceroute正好就填补了这个缺憾。traceroute的原理是非常非常的有意思,它收到目的主机的IP后,首先给目的主机发送一个TT
4. 路由跟踪命令traceroute / tracert
通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。
当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,
但基本上来说大部分时候所走的路由是相同的。
linux系统中,我们称之为traceroute,在MS Windows中为tracert。
traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。
一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其IP地址。
说明:
记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,单位是ms,其实就是-q的默认参数。
探测数据包向每个网关发送三个数据包后,网关响应后返回的时间;如果您用 traceroute -q 4 www.58.com ,表示向每个网关发送4个数据包。
有时我们traceroute 一台主机时,会看到有一些行是以星号表示的。
出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。
有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因。
当然如果某台DNS出现问题时,不能解析主机名、域名时,也会 有延时长的现象;
您可以加-n 参数来避免DNS解析,以IP格式输出数据。
如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在,是主机的问题还是网关的问题。
如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute 追踪数据包所经过的网关,提交IDC服务商,也有助于解决问题;
但目前看来在国内解决这样的问题是比较困难的,就是我们发现问题所在,IDC服务商也不可能帮助我们解决。
说明:
Traceroute的工作原理:
Traceroute最简单的基本用法是:traceroute hostname
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”消息
(包括发IP包的源地址,IP包的所有内容及路由器的IP地址),traceroute 收到这个消息后,
便知道这个路由器存在于这个路径上,接着traceroute 再送出另一个TTL是2 的datagram,
发现第2 个路由器...... traceroute 每次将送出的datagram的TTL 加1来发现另一个路由器,
这个重复的动作一直持续到某个datagram 抵达目的地。当datagram到达目的地后,
该主机并不会送回ICMP time exceeded消息,因为它已是目的地了,那么traceroute如何得知目的地到达了呢?
Traceroute在送出UDP datagrams到目的地时,它所选择送达的port number 是一个一般应用程序都不会用的号码(30000 以上),
所以当此UDP datagram 到达目的地后该主机会送回一个“ICMP port unreachable”的消息,
而当traceroute 收到这个消息时,便知道目的地已经到达了。所以traceroute 在Server端也是没有所谓的Daemon 程式。
Traceroute提取发 ICMP TTL到期消息设备的IP地址并作域名解析。
每次 ,Traceroute都打印出一系列数据,包括所经过的路由设备的域名及 IP地址,三个包每次来回所花时间。
5. traceroute命令详解是什么
用来跟踪到目标地址所走的线路.使用ping的方式,但设置了每个数据包可经历的最大跳数,当路线中的节点发现包到此节点时已多于最在跳数,会向源发一个错误反馈,这样从1递增最大跳数,就可以获得到ping到目标地址的各个节点的反馈信息,就组成一条到目标地址所走的线路。
就像一根线,上面拴一个摄像头,线不够长时就拍张照说明到哪线不够长了,如果把这根线拴在一辆公交车长,每次线不够长,当我们得到照片时就增加线长,这样最后我们就获得了公交所走的线路。
出处
《后汉书·皇后纪上·明德马皇后》:“时后前母姊女贾氏亦以选入,生肃宗。帝以后无子,命令养之。”郭沫若《洪波曲》第五章六:“宪兵团长抢过扩音器,便命令群众迅速解散。”
《楚辞·天问》“何亲揆发足,周之命以咨嗟” 汉王逸注:“当此之时,周之命令已行天下,百姓咨嗟叹而美之也。” 宋梅尧臣《重赋白兔》诗:“见公于钜鼇之峰,正草命令辞如虹。” 明高明《琵琶记·强就鸾凤》:“独立画堂听命令,珠帘底下一声传。”
6. traceroute命令与ping命令的区别
traceroute命令与ping命令的区别为:用途不同、内容不同、适用范围不同。
一、用途不同
1、traceroute命令:traceroute命令用来显示数据包到达目标主机所经过的路径(路由器)情况。
2、ping命令:ping命令主要是用来查看到目的地址的时延和丢包尺咐情况。
二、内容不同
1、traceroute命令:traceroute命令获取到数据包所走的全部路径、节点的IP以及花费的时间。
2、ping命令:ping命令获取到目的地址的IP地址和指定IP包被路由器丢弃之前允许通过的最大网段数量。
三、适用范围不同
1、虚吵traceroute命令:traceroute命令适用于大型网络,测试是否和代理服务器联差困侍通。
2、ping命令:ping命令适用于中小型网络,测试网卡是否正常工作。
7. Linux常用网络配置命令
一、查看网络配置
确保网络配置的正确性及网络连接的畅通是Linux系统作为服务器应用的基础,查看及测试网络配置是管理Linux网络服务的第一步。
1.ifconfig——查看网络配置
1) 查看所有活动网络接口的信息
执行 ifconfig 或ip addr或ip a命令,都可以显示当前主机中已启用(活动)的网络接口信息。、
2) 查看指定网络接口信息
格式:ifconfig 网络接口名
可以通过TX、RX等信息了解到通过该网络接口发送和接收的数据包个数,流量等跟多属性。
2.hostname命令
在Linux系统中,相当一部分网络服务都会通过主机名来识别本机,如果主机名配置不当,可能会导致程序功能出现故障。
1) 查看主机名
使用hostname命令就可以查看当前主机的主机名,不添加任何选项参数。
2) 临时更改主机名
hostname NewName
注:这种方法只是临时的更改主机名,重启后将失效。
3) 永久更改主机名
a. 修改配置文件
RHEL6和7的配置文件存放路径不相同,修改配置文件中的主机名,重启就可永久更改主机名。
RHEL6主机名配置文件路径为:/etc/sysconfig/network
RHEL7主机名配置文件路径为:/etc/hostname
示例
b. 使用命令修改(这种方法只适用于RHEL7或者CentOS7之后)
命令格式:
使用该命令更改后,更改后的主机名就自动写入了配置文件中,所以可以永久更改主机名,其实就是修改了配置文件。
3.route命令
直接执行route命令可以查看当前主机中的路由表信息,若结合“-n”选项使用,可以将路由记录中的地址显示为数字形式,这可以跳过解析主机名的过程,在路由表条目较多的情况下能够加快执行速度。
Destination列对应的是目标网段的地址,Gateway列对应的是吓一跳路由器的地址,Iface列对应的是发送数据的网络接口。当目标网段为“default”是,表示此行是默认网关记录,当吓一跳为“*”是,表示目标网段是与本机直接相连的。
4.netstat命令——查看系统的网络连接状态等
netstat命令是了解网络状态及排除网络服务故障的有效工具。
常用选项:
-a:显示所有活动连接(包括监听、非监听状态的服务端口)
-n:以数字形式显示
-p:显示相关的进程信息
-t:查看 TCP 协议相关信息
-u:查看UDP协议相关信息
-r:显示路由表信息
-l:显示处于监听(listening)状态的网络连接及端口信息
通常使用“-anput”组合选项,结合管道使用“grep”命令,来查看一些服务的端口是否开启。
示例:
Tcp21为ftp服务的端口
二、测试网络连接
1.ping命令——测试网络连通性
常用选项:
-c<完成次数>:设置完成要求回应的次数
-i<间隔秒数>:指定收发信息的间隔时间
-q:不显示指令执行过程,开头和结尾的相关信息除外
-s<数据包大小>:设置数据包的大小
-t<存活数值>:设置存活数值TTL的大小
-v:详细显示指令的执行过程
若返回“Destination Host Unreachable”的反馈信息,则表示目标主机不可达,可能目标地址不存在或主机已关闭;返回“Network is unreachable”的反馈信息,则表示没有可用的路由记录(如默认网关),无法到达目标主机所在的网络;返回“Request timeout”的反馈信息,表示与目标主机间的连接超时(数据包缓慢或丢失),若有严格的防火墙限制,也可能返回此信息。
2.traceroute命令——跟踪数据包的路由途径
使用traceroute命令可以测试从当前主机到目的主机之间经过的网络节点,并显示各中间结点的连接状态(响应时间)。对于无法响应的节点,连接状态将显示为“*”。
示例:traceroute IP_ADDR
在网络测试与排错的过程中,通常会先使用ping命令测试与主机的网络连接,如果发现网络有故障,再使用traceroute命令跟踪查看是在哪个中间结点存在故障。
3.nslookup命令——测试DNS域名解析
nslookup是用来测试(DNS)域名解析的专用工具。(DNS服务后面再详细讲解,通俗的说就是将域名解析为ip地址的一个服务)
示例:nslookup www..com
若成功反馈要查询域名的IP地址,则表示域名解析没有问题;若出现“...... no servers could be reached”的信息,表示不能连接到指定的DNS服务器;若出现“...... cant’t find xxx.yyy.zzz:NXDOMAIN”的信息,表示要查询的域名不存在。
三、设置网络地址参数
设置网络参数的方法:
• 临时配置 —— 使用命令调整网络参数简单、快速,可直接修改运行中的网络参数
一般只适合在调试网络的过程中使用
系统重启以后,所做的修改将会失效
• 永久配置 —— 通过配置文件修改网络参数修改各项网络参数的配置文件
适合对服务器设置固定参数时使用
需要重载网络服务或者重启以后才会生效
1.临时配置——使用网络配置命令(注:RHEL6中网络接口的名称为eth,RHEL7中为ens)
1)使用ifconfig命令修改网卡的地址、状态
ifconfig命令不仅可以用于查看网卡配置,还可以修改网卡的ip地址,子网掩码,也可以绑定网络接口、激活或停用网络接口
a. 修改网卡的ip地址(临时修改)
命令格式:
示例:
b. 禁用或者重新激活网卡
命令格式:
示例:
c. 设置虚拟网络接口(相当于一块网卡配置多个IP地址)
命令格式:
示例:
可以根据需要添加更多的虚拟接口,如“eth0:1”“eth0:2”等
2)使用route命令添加、删除静态路由记录
• 删除路由表中的默认网关记录命令格式:route del default gw IP地址
• 向路由表中添加默认网关记录命令格式:route add default gw IP地址
• 添加到指定网段的路由记录命令格式:route add -net 网段地址 gw IP地址
• 删除到指定网段的路由记录命令格式:router del -net 网段地址
2.永久配置——修改网络配置文件
1)网络接口配置文件
网络接口的配置文件默认位于目录“/etc/sysconfig/network-scripts/”中,文件名格式为:“ifcfg-XXX”,其中“XXX”是网络接口的名称。例如:RHEL6中网卡eth0的配置文件是“ifcfg-eth0”,而RHEL7中网卡ens33的配置文件是“ifcfg-ens33”。
在网卡的配置文件中,可以看到静态IP地址的部分内容如下图所示:
上述个配置项的含义及作用:(图示为RHEL6中的配置文件,7中也差不多,换汤不换药,修改的都差不多)
• DEVICE:设置网络接口的名称ONBOOT:设置网络接口是否在Linux系统启动时激活BOOTPROTO:设置网络接口的配置方式,值为static时表示使用静态ip地址,为dhcp时表示通过dhcp的方式动态获取ip地址IPADDR:设置网络接口的ip地址NETMASK:设置网络接口的子网掩码GATEWAY:设置网络接口的默认网关地址2)重启 network 网络服务
当修改了网络接口的配置文件以后,若要使新的配置生效,可以重启network服务或者重启主机或者禁用、启用网络接口。
示例:
• RHEL6中重启network服务:service network restartRHEL7中重启network服务:systemctl restart network注:这是我在做实验时候的一个经验:RHEL6修改完网卡配置重启后,ip地址仍然没有改过来,这时候我们经常会删除“/etc/udev/rules.d/70-persistent-net.rules”这个文件。RHEL7不用管,RHEL7特别好改,RHEL6改的时候特别难受。(个人提示,不求认同)
3)域名解析配置文件
a.指定为本机提供DNS解析的服务器地址
/etc/resolv.conf文件中记录了本机默认使用的DNS服务器的地址信息,对该文件所做的修改将会立刻生效。Linux系统中最多可以指定3个(第3个以后将被忽略)不同的DNS服务器地址,优先使用第1个DNS服务器。
示例:
其中“search localdomain”用来设置默认的搜索域(域名后缀)。例如,当访问主机“localhost”时,就相当于访问“localhost.localdomain”。
b.本地主机映射文件
/etc/hosts文件中记录着一份主机名与ip地址的映射关系表,一般用来保存经常访问的主机信息。当访问一个未知的域名时,先查找该文件中是否有相应的映射记录,如果找不到在去向DNS服务器查询。
hosts 文件和 DNS 服务器的比较
• 默认情况下,系统首先从 hosts 文件查找解析记录hosts 文件只对当前的主机有效hosts 文件可减少 DNS 查询过程,从而加快访问速度
8. route命令详解是什么
Route命令可以在数据包没有有效传递的情况下,利用route命令查看路由表;如果traceroute命令揭示出一条异常或低效的传输路径,则可以用route命令来确认为何选择该路径,而且可以配置一个更有效的路由。
语法:route [-f] [-p] [Command] [Destination] [mask Netmask] [Gateway] [metric Metric] [if Interface]
(8)traceroute的命令详解扩展阅读:
route 的命令
1、routing ip add/delete/set/show interface
在指定接口上添加、删除、配置或显示常规 IP 路由设置。
2、routing ip add/delete/set/show filter
在指定接口上添加、删除、配置或显示 IP数据包筛选器。
3、routing ip add/delete/show boundary
指定接口上添加、删除或显示多播边界设置。
4、routing ip add/set ipiptunnel
添加或配置 IP 中的 IP 接口。
5、routing ip add/delete/set/show rtmroute
添加、配置或显示不持续的路由表管理器路由。
9. 端口可用性探测工具traceroute
本文主要介绍使用ping命令正常但端口不通时如何进行端口可用性探测。
当客户端访问目滚纤标服务器时,如果能ping通,大乎仿但业务端口无法访问,可能是链路中的相关节点拦截了端口所致。您可以参考如下内容,利用端口可用性探测的相关工具进行测试,验证是否有节点拦截了端口。
traceroute用于端口可用性探测的常用命令如下。
注:
-n:直接使用IP地址而非主机名称(禁用DNS反查)。
-T:通过TCP探测。
-p:设置探测的端口号。
[ Host]:需要探测的目标服务器地址,顷缺比如“10.10.1.1”。
更多关于traceroute的用法,您可以通过man命令查阅。
示例
traceroute的示例命令和返回结果如下。
参考:
能够ping通服务器的同时端口不通
10. TRACERT(traceroute)命令
可以用TRACERT来查看数据包到达目的主机的实际路径。
举个例子,如下图来追踪从我计算机到另一台计算机的路由情况。
命令行输入“tracert”,空格,目的IP地址,按下回车键。
数据包将找到到达目的的主机的路径,在到达目的主机的路径中,没到达一个路由器,都会报告路由器的信息回来,信息中包含路由器的IP地址和每一跳所花费的时间。如果数据包无法到达目的主机,可以用它来查明网络上的问题所在。(比如ping一个地址后,在某个路径之后失败了,则可以确定哪两台路由器之间存在问题)