资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

路由跟踪命令linux 路由跟踪命令是什么

Linux常用网络配置命令

一、查看网络配置

我们提供的服务有:网站建设、成都网站建设、微信公众号开发、网站优化、网站认证、怀化ssl等。为上千余家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的怀化网站制作公司

确保网络配置的正确性及网络连接的畅通是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

若成功反馈要查询域名的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 查询过程,从而加快访问速度

路由跟踪命令traceroute / tracert

通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。

当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,

但基本上来说大部分时候所走的路由是相同的。

linux系统中,我们称之为traceroute,在MS Windows中为tracert。

traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。

一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其IP地址。

说明:

记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,单位是ms,其实就是-q的默认参数。

探测数据包向每个网关发送三个数据包后,网关响应后返回的时间;如果您用 traceroute -q 4 ,表示向每个网关发送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地址,三个包每次来回所花时间。

在Linux中查询路由器的情况,用什么命令

linux 中查询路由使用 route 命令.

linux route命令的使用详解

route命令用于显示和操作IP路由表。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中,设置路由通常是 为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将这台机器的IP地址设置为 Linux机器的默认路由。要注意的是,直接在命令行下执行route命令来添加路由,不会永久保存,当网卡重启或者机器重启之后,该路由就失效了;要想永久保存,有如下方法:

1.在/etc/rc.local里添加

2.在/etc/sysconfig/network里添加到末尾

3./etc/sysconfig/static-router :

any net x.x.x.x/24 gw y.y.y.y

格式:route

格式:/sbin/route

用于打印路由表(display the current routing table)。

在非root用户使用时需要使用完整路径执行route命令。

命令参数

[root@linux ~]# route [-nee]

[root@linux ~]# route add [-net|-host] [网域或主机] netmask [mask] [gw|dev]

[root@linux ~]# route del [-net|-host] [网域或主机] netmask [mask] [gw|dev]

观察的参数:

-n :不要使用通讯协定或主机名称,直接使用 IP 或 port number;

-ee :使用更详细的资讯来显示

增加 (add) 与删除 (del) 路由的相关参数:

-net :表示后面接的路由为一个网域;

-host :表示后面接的为连接到单部主机的路由;

netmask :与网域有关,可以设定 netmask 决定网域的大小;

gw :gateway 的简写,后续接的是 IP 的数值喔,与 dev 不同;

dev :如果只是要指定由那一块网路卡连线出去,则使用这个设定,后面接 eth0 等

格式:route -n

格式:/sbin/route -n

用于打印路由表,加上-n参数就是在输出的信息中不打印主机名而直接打印ip地址。

格式:route add default gw {IP-ADDRESS} {INTERFACE-NAME}

用于设置默认路由,其中,

参数{IP-ADDRESS): 用于指定路由器(网关)的IP地址;

参数{INTERFACE-NAME}: 用于指定接口名称,如eth0。使用/sbin/ifconfig -a可以显示所有接口信息。

例:route add default gw mango

格式:route add -net {NETWORK-ADDRESS} netmask {NETMASK} dev {INTERFACE-NAME}

添加到指定网络的路由规则,其中

参数{NETWORK-ADDRESS}: 用于指定网络地址

参数{NETMASK}: 用于指定子网掩码

参数{INTERFACE-NAME}: 用于指定接口名称,如eth0。

例1:route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0

例2:route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0

格式:route add -net {NETWORK-ADDRESS} netmask {NETMASK} reject

设置到指定网络为不可达,避免在连接到这个网络的地址时程序过长时间的等待,直接就知道该网络不可达。

例:route add -net 10.0.0.0 netmask 255.0.0.0 reject

格式:route del -net {NETWORK-ADDRESS} netmask {NETMASK} dev {INTERFACE-NAME}

格式:route del -net {NETWORK-ADDRESS} netmask {NETMASK} reject

用于删除路由设置。参数指定的方式与route add相似。

输出详解

route命令输出的路由表字段含义如下:

Destination 目标

The destination network or destination host. 目标网络或目标主机。

Gateway 网关

The gateway address or '*' if none set. 网关地址,如果没有就显示星号。

Genmask 网络掩码

The netmask for the destination net; '255.255.255.255' for a

host destination and '0.0.0.0' for the default route.

Flags:总共有多个旗标,代表的意义如下:

o U (route is up):该路由是启动的;

o H (target is a host):目标是一部主机 (IP) 而非网域;

o G (use gateway):需要透过外部的主机 (gateway) 来转递封包;

o R (reinstate route for dynamic routing):使用动态路由时,恢复路由资讯的旗标;

o D (dynamically installed by daemon or redirect):已经由服务或转 port 功能设定为动态路由

o M (modified from routing daemon or redirect):路由已经被修改了;

o ! (reject route):这个路由将不会被接受(用来抵挡不安全的网域!)

o A (installed by addrconf)

o C (cache entry)

Metric 距离、跳数。暂无用。

The 'distance' to the target (usually counted in hops). It is

not used by recent kernels, but may be needed by routing dae-

mons.

Ref 不用管,恒为0。

Number of references to this route. (Not used in the Linux ker-nel.)

Use 该路由被使用的次数,可以粗略估计通向指定网络地址的网络流量。

Count of lookups for the route. Depending on the use of -F and

-C this will be either route cache misses (-F) or hits (-C).

Iface 接口,即eth0,eth0等网络接口名

Interface to which packets for this route will be sent.

范例一

单纯的观察路由状态

[root@linux ~]# route -n

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0

0.0.0.0 192.168.10.30 0.0.0.0 UG 0 0 0 eth0

[root@linux ~]# route

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

192.168.10.0 * 255.255.255.0 U 0 0 0 eth0

169.254.0.0 * 255.255.0.0 U 0 0 0 eth0

default server.cluster 0.0.0.0 UG 0 0 0 eth0

此外,观察一下上面的路由排列顺序喔,依序是由小网域(192.168.10.0/24 是 Class C),逐渐到大网域(169.254.0.0/16 Class B) 最后则是预设路由 (0.0.0.0/0.0.0.0)。然后当我们要判断某个网路封包应该如何传送的时候,该封包会经由这个路由的过程来判断喔!举例来说,我上头仅有三个路由,若我有一个传往 192.168.10.20 的封包要传递,那首先会找 192.168.10.0/24 这个网域的路由,找到了!所以直接由 eth0 传送出去;如果是传送到 Yahoo 的主机呢? Yahoo 的主机 IP 是 202.43.195.52,我通过判断

1)不是 192.168.10.0/24,

2)不是 169.254.0.0/16 结果到达

3)0/0 时, OK !传出去了,透过 eth0 将封包传给 192.168.10.30 那部 gateway 主机啊!所以说,路由是有顺序的。因此当你重复设定多个同样的路由时,例如在你的主机上的两张网路卡设定为相同网域的 IP 时,会出现什么情况?会出现如下的情况:

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1

也就是说,由于路由是依照顺序来排列与传送的,所以不论封包是由那个介面 (eth0, eth1) 所接收,都会由上述的 eth0 传送出去,所以,在一部主机上面设定两个相同网域的 IP 本身没有什么意义!有点多此一举就是了。除非是类似虚拟主机 (Xen, VMware 等软体 ) 所架设的多主机时,才会有这个必要~

范例二

[root@linux ~]# route del -net 169.254.0.0 netmask 255.255.0.0 dev eth0

# 上面这个动作可以删除掉 169.254.0.0/16 这个网域!

# 请注意,在删除的时候,需要将路由表上面出现的资讯都写入

# 包括 netmask , dev 等等参数喔!注意注意

[root@linux ~]# route add -net 192.168.100.0 netmask 255.255.255.0 dev eth0

# 透过 route add 来增加一个路由!请注意,这个路由必须要能够与你互通。

# 举例来说,如果我下达底下的指令就会显示错误:

route add -net 192.168.200.0 netmask 255.255.255.0 gw 192.168.200.254

# 因为我的环境内仅有 192.168.10.100 这个 IP ,所以不能与 192.168.200.254这个网段直接使用 MAC 互通!这样说,可以理解喔!?

[root@linux ~]# route add default gw 192.168.10.30

# 增加预设路由的方法!请注意,只要有一个预设路由就够了喔!

# 在这个地方如果您随便设定后,记得使用底下的指令重新设定你的网路

/etc/init.d/network restart

如果是要进行路由的删除与增加,那就得要参考上面的例子了,其实,使用 man route 里面的资料就很丰富了!仔细查阅一下罗!你只要记得,当出现『SIOCADDRT: Network is unreachable』这个错误时,肯定是由于 gw 后面接的 IP 无法直接与您的网域沟通 (Gateway 并不在你的网域内)。


当前名称:路由跟踪命令linux 路由跟踪命令是什么
文章来源:http://cdkjz.cn/article/hgihhs.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220