快捷搜索:   nginx

linux下route和netstat命令的使用

route

在配置时,要为机器指定接收数据包时该包要经过的路径。在Linux系统中,提供一个route,这个可以为ifconfig命令配置的网卡设置静态。这种设置工作通常在/etc/rc.d/rc.inet1中引入,在系统引导时进行。

我们通过几个例子来说明如何route命令:
route add -net 127.0.0.0

这个命令将向路由表中添加一个指定或者网络的路由。注意此时网络为A类,掩码被设置为255.0.0.0,这个新添加的条目被连接到lo设备上。

route add -net xxx.xxx.xxx.xxx netmask 255.255.255.0 dev eth0

这个命令为IP地址为xxx.xxx.xxx.xxx的主机增加一个路由,它的网络掩码被设置为255.255.255.0。

route del -net xxx.xxx.xxx.xxx

此命令将删除xxx.xxx.xxx.xxx这个网络的路由。

使用route命令还可以很方便地对整个网络的路由信息进行管理,其输出结果是网络的路由表。如下所示:

-----------------------------------------------------------------
[root@lee /root]#route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.10.8.224 * 255.255.255.255 UH 0 0 0 eth0
10.10.8.0 * 255.255.255.0 U 0 0 0 eth0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default dgc8.njupt.edu 0.0.0.0 UG 0 0 0 eth0
default dgc8.njupt.edu 0.0.0.0 UG 1 0 0 eth0
[root@lee /root]#
-----------------------------------------------------------------

输出结果中各个字段的含义是:

·Destination路由的目标IP地址。
·Gateway表示网关使用的主机名或者是IP地址。上面输出的"*"表示没有网关。
·Genmask表示路由的网络掩码。在把它与路由的目标地址进行比较之前,内核通过Genmask和数据包的IP地址进行按位"与"操作来设置路由。
·Flags是表示路由的标志。可用的标志及其意义是:U表示路由在启动,H表示target是一台主机,G表示使用网关,R表示对动态路由进行复位设置;D表示动态安装路由,M表示修改路由,!表示拒绝路由。
·Metric表示路由的单位开销量。
·Ref表示依赖本路由现状的其它路由数目。
·Use表示路由表条目被使用的数目。
·Iface表示路由所发送的包的目的网络。

通过查看这些输出信息,我们就可以方便地管理网络的路由表了。

netstat

netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。在计算机上执行netstat后,其输出结果如下所示:

-----------------------------------------------------------------
[root@lee /root]#netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Types State I-Node Path
Unix 5 [ ] DGRAM 460 /dev/log
Unix 0 [ ] STREAM CONNECTED 173 @00000014
Unix 0 [ ] DGRAM 662
Unix 0 [ ] DGRAM 631
Unix 0 [ ] DGRAM 544
Unix 0 [ ] DGRAM 484
Unix 0 [ ] DGRAM 470
[root@lee /root]#
-----------------------------------------------------------------

从整体上看,netstat的输出结果可以分为两个部分:第一部分:是Active Internet connections,称为有源TCP连接,在上面的输出结果中,这一部分没有内容,表示暂时还没有TCP连接。第二部分:是Active UNIX domain sockets,称为有源Unix域套接口。输出结果显示的是Unix域套接口的连接情况:

·Proto显示连接使用的协议。
·RefCnt表示连接到本套接口上的进程号。
·Types显示套接口的类型。
·State显示套接口当前的状态。
·Path表示连接到套接口的其它进程使用的路径名。

可以用netstat -a来查看所有套接字的状态,这在您调试网络程序的时候是非常有用的。netstat -r将显示路由表的内容,一般还要同时指定"-n"选项,这样可以得到数字格式的地址,也可显示默认路由器的IP地址。使用netstat -i则将显示所有的网络接口信息。使用netstat还可以获得当前的网络状态以及网络的拓扑结构,这在实际中是非常有用的。

顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论