net-tools工具route命令

Linux系统的route命令用于显示和操作IP路由表(show / manipulate the IP routing table)。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中,设置路由通常是为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将这台机器的IP地址设置为Linux机器的默认路由。要注意的是,直接在命令行下执行route命令来添加路由,不会永久保存,当网卡重启或者机器重启之后,该路由就失效了;可以在/etc/rc.local中添加route命令来保证该路由设置永久有效。
CentOS7,Ubnutu16.04,Debian9,openSUSE15等以后版本系统已经默认不再集成这个命令,需要安装相应的软件net-tools

默认网关就是数据包不匹配任何设定的路由规则,最后流经的地址关口!网关按字面意思就是网络的关口,就相当于我们家里房子的门一样,如果外出就要经过房门,数据包也是一样。

概念:

网关:大家都知道,从一个房间走到另一个房间,必然要经过一扇门。同样,从一个网络向另一个网络发送信息,也必须经过一道“关口”,这道关口就是网关。顾名思义,网关(Gateway)就是一个网络连接到另一个网络的“关口”。也就是网络关卡。 由于历史的原因,许多有关TCP/IP的文献曾经把网络层使用的路由器称为网关,在今天很多局域网采用都是路由来接入网络,因此通常指的网关就是路由器的一个接口的IP地址!需要这个路由器进行转发的主机就需要与这个接口相连,同时相连的两个接口需要配置成同一网段的iP地址,也就是可以二层互通。一个路由器可以有多个接口因此可以给多个主机提供网关。

路由:是指路由器从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程。路由通常与桥接来对比,在粗心的人看来,它们似乎完成的是同样的事。它们的主要区别在于桥接发生在OSI参考模型的第二层(数据链路层),而路由发生在第三层(网络层)。这一区别使二者在传递信息的过程中使用不同的信息,从而以不同的方式来完成其任务。

默认网关就是数据包不匹配任何设定的路由规则,最后流经的地址关口!注意,一台主机只能有一个默认网关。

一、命令格式格式如下:

route [查看参数]

route add [-net|-host] [网域或主机] netmask [mask] [gw|dev]
route del [-net|-host] [网域或主机] netmask [mask] [gw|dev]

查看参数:
-n      :以数字的方式显示路由表中的主机
-e     :使用netstat的输出格式显示路由表
-ee         :显示路由表的所有参数

增加 (add) 与删除 (del) 路由的相关参数:
-net      :表示后面接的路由为一个网段;
-host      :表示后面接的为连接到单台主机的路由;
netmask     :与网段有关,可以设定 netmask 决定网段的大小;
gw           :gateway 的简写,后续接的是 IP 的数值喔,与 dev 不同;
dev      :如果只是要指定由那一块网路卡连线出去,则使用这个设定,后面接 eth0 等

二、举例:
1、查看主机路由信息
-------------------------------------------------------------------------------------
[[email protected] ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
10.10.10.0 * 255.255.255.0 U 0 0 0 eth1
link-local * 255.255.0.0 U 1002 0 0 eth0
link-local * 255.255.0.0 U 1003 0 0 eth1
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

[[email protected] ~]# route -n    #以数字的形式显示
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 255.255.255.0 U 0 0 0 eth0
10.10.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth1
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

[[email protected] ~]# route -ee
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface MSS Window irtt
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0 0 0 0
10.10.10.0 * 255.255.255.0 U 0 0 0 eth1 0 0 0
link-local * 255.255.0.0 U 1002 0 0 eth0 0 0 0
link-local * 255.255.0.0 U 1003 0 0 eth1 0 0 0
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 0 0 0
[[email protected] ~]#
-------------------------------------------------------------------------------------
上面的每一行就是一条路由信息,路由信息也被称为一个路由项或一个路由条目,数据包的转发就是由这些路由条目决定的,下面对每一行的名称进行解释:

Destination    #目标网络或目标主机,0.0.0.0表示默认网关

Gateway     #网关地址,’*’表示没有设置,如果显示为0.0.0.0(-n选项的显示)表示该路由是直连路由,所谓直连路由就是指该路由对应的接口就在这个网络中,可以直接与这个网络中的设备进行二次互通

Genmask      #目标网络的网络掩码(也被称作子网掩码)

Flags
可能的flag值有
U,路由已经起来
H,目标是一台主机,而非一个网段
G,使用网关
R,用于动态路由的恢复路由
D,由守护进程动态安装或重定向
M,从路由守护进程或重定向中修改
A,由addrconf安装
C,缓存项
!,拒绝路由

Metric      #到目标的“距离”(通常以跳为单位)。它不被最近的内核使用,但可能需要路由守护进程。

Ref        #引用此路由的次数。(不在Linux内核中使用。)

Use      #查找路线的数量。根据-F和-C的使用情况,这将是路由缓存丢失(-F)或命中(-C)。

Iface          #此路由的数据包将从该接口发送出去。

MSS        #此路由上TCP连接的默认最大分段大小

Window    #此路由上TCP连接的默认窗口大小

irtt       #初始RTT(往返时间)。内核使用它来猜测最佳的TCP协议参数,而无需等待(可能是缓慢的)答案。

HH      #引用缓存路由的硬件头缓存的ARP条目和缓存路由的数量。如果缓存路由的接口不需要硬件地址(例如lo),则为-1。

Arp      #缓存路由的硬件地址是否最新。

2、设置默认网关(如果已经存在默认网关就不要添加了)
------------------------------------------------------
route add default gw 192.168.0.1
------------------------------------------------------
表示设置默认路由,通过eth0网卡,将数据包发送给192.168.0.1那台路由器

3、添加到指定网络的路由规则(两种方式)
------------------------------------------------------
route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0
------------------------------------------------------
这条路由的意思是访问192.56.76.0的网段(子网掩码255.255.255.0),数据包从"eth0"这个接口出去

------------------------------------------------------
route add -net 192.56.76.0 netmask 255.255.255.0 gw 192.168.1.1
------------------------------------------------------
这条路由的意思是访问192.56.76.0的网段(子网掩码255.255.255.0),数据包从这个网关出去,这个网关就是与主机相连的对端路由器接口的IP地址

其实上面的两种作用是相同的,因为路由器与eth0连接的接口的IP地址就是192.168.1.1,也就是eth0的IP地址与路由器的接口直接连接在同一个网段,这个必须条件
如果你的数据包都不能通过二层到达路由器,路由器怎么帮你转发。这俩条的最终目的是一样的要去往192.56.76.0网段,就得先找到去这个网段的路由器,到了以后路由器再帮我转发。

4、设置到指定网络为不可达,避免在连接到这个网络的地址时程序过长时间的等待,直接就知道该网络不可达
------------------------------------------------------
route add -net 10.10.0.0 netmask 255.255.0.0 reject
------------------------------------------------------

5、删除指定网络的路由
------------------------------------------------------
route del -net 192.56.76.0 netmask 255.255.255.0 gw 192.168.1.1
------------------------------------------------------
如果路由条目里面有Gateway设置就用上面的命令,没有就用下面这个,下面的也可以删除带Gateway的只是这个网段如果有多个路由信息s时就会从上往下顺序删除,不精确。
------------------------------------------------------
route del -net 192.56.76.0 netmask 255.255.255.0 dev eth0
------------------------------------------------------

上面这个动作可以删除掉 1192.56.76.0/24 这个网段!请注意,在删除的时候,需要将路由表上面出现的参数都写上,包括netmask , dev 等等参数喔!注意注意

6、删除默认网关
------------------------------------------------------
route del default gw 192.168.0.1
------------------------------------------------------

三、设置永久路由的方法(CentOS系统下,没有验证):

1.在/etc/rc.local里添加
------------------------------------------------------
route add -net 192.168.3.0/24 dev eth0

route add -net 192.168.2.0/24 gw 192.168.2.254
------------------------------------------------------

2.在/etc/sysconfig/network里添加到末尾
------------------------------------------------------
GATEWAY=gw-ip
或者
GATEWAY=gw-dev

3./etc/sysconfig/static-routes     :#默认不存在此文件
------------------------------------------------------
any net 192.168.3.0/24 gw 192.168.3.254

any net 10.250.228.128 netmask 255.255.255.192 gw 10.250.228.129
------------------------------------------------------

如果在rc.local中添加路由会造成NFS无法自动挂载问题,所以使用static-routes的方法是最好的。无论重启系统和service network restart 都会生效。

解决NFS问题的描述:按照linux启动的顺序,rc.local里面的内容是在linux所有服务都启动完毕,最后才被执行的,也就是说,这里面的内容是在netfs之后才被执行的,那也就是说在netfs启动的时候,服务器上的静态路由是没有被添加的,所以netfs挂载不能成功。

4、在/etc/sysconfig/network-script/route-interface下添加路由(每个接口一个文件,如果没有就创建一个,只能添加针对该接口的路由)

格式如下:
------------------------------------------------------
network/prefix via gateway dev intf
------------------------------------------------------

例如给eth0添加一个默认网关:
------------------------------------------------------
vim /etc/sysconfig/network-scripts/route-eth0
------------------------------------------------------

#添加如下内容(可以省略dev eth0)
------------------------------------------------------
0.0.0.0/0 via 172.16.10.2 dev eth0
------------------------------------------------------
ps:注意这里的掩码是0而不是32,因为这里是网段而不是路由。

保存退出后,service network restart。

原文地址:https://www.cnblogs.com/pipci/p/12507739.html

时间: 2024-10-30 10:10:53

net-tools工具route命令的相关文章

VMware10中的CentOS6.5命令行安装VMware tools工具启用windows与虚拟机中Linux系统的共享目录

一.描述 系统描述:win7旗舰版64位系统+VMware Workstation10+CentOS6.5(win7系统上安装了VMware Workstation10虚拟化软件,在该虚拟化软件上安装了CentOS6.5),现在我想要在win7系统和CentOS系统之间传递数据,那么我只要在虚拟机上安装VMware tools工具并启动共享目录即可. 二.安装步骤 1.VMware tools安装 1.1 选中要安装VMware tools的linux虚拟机,然后点击VMware Worksta

路由知识之ip route 命令中的疑惑

1.基础知识 1.1 路由 (Routing) 1.1.1 路由策略 (使用 ip rule 命令操作路由策略数据库) 基于策略的路由比传统路由在功能上更强大,使用更灵活,它使网络管理员不仅能够根据目的地址而且能够根据报文大小.应用或IP源地址等属性来选择转发路径. ip rule 命令: Usage: ip rule [ list | add | del ] SELECTOR ACTION (add 添加:del 删除: llist 列表) SELECTOR := [ from PREFIX

Ubuntu14 中安装 VMware10 Tools工具<2>

网上说已经针对上一篇提到的无法显示共享目录的问题做了补丁,补丁地址是https://github.com/rasa/vmware-tools-patches,我没有成功,还是出现"hgfs 不是目录"错误 使用df命令可以看到/mnt/hgfs已经成功挂载,且vmhgfs服务正常(使用lsmod | grep vm命令) 下载VMware10.0.2,安装后迫不及待的打开虚拟机进行vmtools的安装,成功的完成了之前需要打补丁才能通过的部分,但是在启动服务的时候报错 Creating

route命令

linux路由表维护与管理 摘要:Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件.应用程序和网络协议.Genmask         Flags Metric Ref    Use Iface192.168.0.0     *               255.255.255.0   U     0      0        0 eth0169.254.0.0     * 

window route 命令

使用 Route 命令行工具查看并编辑计算机的 IP 路由表.Route 命令和语法如下所示: route [-f] [-p] [Command][Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]] 使用 Route 命令行工具查看并编辑计算机的 IP 路由表.Route 命令和语法如下所示: route [-f] [-p] [Command][Destination] [mask Netmask] [Ga

2.SDK目录结构和adb工具及命令介绍

1.SDK目录介绍: ******************************** add-ons:Android开发需要的第三方文件,附加的库,如Google APIs.GoogleMaps. build-tools:构建工具,用于建立一个新的程序版本,当一个实用编程. docs:Android SDK API离线帮助文档,包括开发指南.API等. extras:附件文档,额外的功能包下载文件夹 platforms:一系列Android平台版本,如平台 android-19.jar API

Linux下 安装VMware Tools工具

Linux下需要安装VMware Tools工具 Linux下需要安装VMware Tools工具来实现主机和虚拟机直接文件复制粘贴功能,安装方法如下: ①点击虚拟机VM菜单栏--虚拟机--安装VMware Tools. ②然后RedHat系统中弹出的安装包,找到VMwareTools-9.2.3-1031360.tar.gz 然后右键解压到/media目录下. ③进入/media用终端命令进行安装. [[email protected]?VMware?Tools]#?cd?/media/VMw

常用性能测试工具和命令汇总

测试大块 测试子块 工具或命令 用途和说明 APP前端 Android端     应用性能(CPU) 命令:adb shell(dumpsys cpuinfo) 测试在空闲.中等消耗.高消耗下cpu的运行情况 命令:top -m 5 -s cpu 应用性能(内存) 命令:adb shell(dumpsys meminfo ) 测试内存的运行情况 命令:getprop |grep dalvik.vm.heapgrowthlimit 应用性能(电量) 命令:adb shell(dumpsys bat

route命令和config命令

route命令:路由查看及管理 路由条目类型: 主机路由:目标地址为单个IP: 网络路由:目标地址为IP网络: 默认路由:目标为任意网络,0.0.0.0/0.0.0.0 查看: # route  -n 添加: route  add  [-net|-host]  target  [netmask  Nm]  [gw GW]  [[dev] If] 示例:route add -net  10.0.0.0/8  gw  192.168.10.1  dev  eth1 route add  -net