详解CentOS中的route命令

介绍

Linux系统中的route命令能够用于IP路由表的显示和操作。它的主要作用是创建一个静态路由让指定一个主机或者一个网络通过一个网络接口,如eth0。当使用”add”或者”del”参数时,路由表被修改,如果没有参数,则显示路由表当前的内容。在一个网络中,需要一个路由器来转发不同广播域之间的数据,或是转发lan和internet之间的数据。有时我们需要设定这个路由器作为linux系统的默认路由,那么就可以通过route命令来操作。甚至我们也可以用我们的linux系统来充当路由器。

要注意的是:直接在命令行下执行route命令来添加路由,不会永久保存,当网卡重启或者机器重启之后,该路由就失效了;可以在/etc/rc.local中添加route命令来保证该路由设置永久有效。当然如果加上了-p参数的话那就会永久的生效了。

命令格式

route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway][metric Metric]] [if Interface]]

命令参数

-c 显示更多信息

-n 不解析名字

-v 显示详细的处理信息

-F 显示发送信息

-C 显示路由缓存

-f 清除所有网关入口的路由表。

-p 与add 命令一起使用时使路由具有永久性。

add:添加一条新路由。

del:删除一条路由。

-net:目标地址是一个网络。

-host:目标地址是一个主机。

netmask:当添加一个网络路由时,需要使用网络掩码。

gw:路由数据包通过网关。注意,你指定的网关必须能够达到。

metric:设置路由跳数。

1、Command 指定您想运行的命令 (Add/Change/Delete/Print)。

2、Destination 指定该路由的网络目标。

3、mask Netmask 指定与网络目标相关的网络掩码(也被称作子网掩码)。

4、Gateway 指定网络目标定义的地址集和子网掩码可以到达的前进或下一跃点 IP 地址。

5、metric Metric 为路由指定一个整数成本值标(从 1 至 9999),当在路由表(与转发的数据包目标地址最匹配)的多个路由中进行选择时可以使用。

6、if Interface为可以访问目标的接口指定接口索引。若要获得一个接口列表和它们相应的接口索引,使用 route print 命令的显示功能。可以使用十进制或十六进

实例

1 显示路由信息

[root@localhost~]# route
Kernel IP routing table
Destination Gateway  Genmask  Flags Metric Ref Use Iface
192.168.40.0 *  255.255.252.0 U 0 0 0 eth0
169.254.0.0 *  255.255.0.0 U 0 0 0 eth0
default 192.168.40.1 0.0.0.0  UG 0 0 0 eth0

Flags标志说明

  1. U Up表示此路由当前为启动状态
  2. H Host,表示此网关为一主机
  3. G Gateway,表示此网关为一路由器
  4. R Reinstate Route,使用动态路由重新初始化的路由
  5. D Dynamically,此路由是动态性地写入–》什么时候才会有动态的路由信息呢?
  6. M Modified,此路由是由路由守护程序或导向器动态修改

2 添加一条指向某个网络的路由

[root@localhost~]# route add -net 10.0.0.0 netmask 255.255.255.0 dev eth0

这里是指定这条路由的出口在哪里。-net 10.0.0.0 netmask 255.255.255.0 为指定目标网络的参数,需要ip地址或地址范围、子网掩码用于确定网络范围。

[root@localhost~]# route
Kernel IP routing table
Destination Gateway  Genmask  Flags Metric Ref Use Iface
10.0.0.0 *  255.255.255.0 U 0 0 0 eth0
192.168.40.0 *  255.255.252.0 U 0 0 0 eth0
169.254.0.0 *  255.255.0.0 U 0 0 0 eth0
default 192.168.40.1 0.0.0.0  UG 0 0 0 eth0

route添加路由都是需要指定目标网络,及路由出口这两个参数。记住加上-p选项能永久添加。

3 添加到某一个ip的路由

[root@localhost~]# route add -host 192.168.40.1dev eth0
[root@localhost ~]# route

可以发现添加的是主机的话,默认是会帮我们添加一个全255的子网掩码,表示子网范围就只有一个而已,那就是这台主机啦。

Kernel IP routing table
Destination Gateway  Genmask  Flags Metric Ref Use Iface
192.168.40.1 *  255.255.255.255 UH 0 0 0 eth0

4 屏蔽某一路由

当我们不让系统到达某个子网范围或者某个主机是就可以手动的来进行屏蔽。

[root@localhost~]# route add -net 10.10.10.128 netmask 255.255.255.128 reject

前面部分是一样的,因为我们都是手动来添加一个路由嘛。只是在命令的最后不一样,我们指定的出口去而是reject(拒绝),也就是拒绝出口。达到屏蔽的效果。还有看下flags会显示一个!

[root@localhost~]# route
Kernel IP routing table
Destination Gateway  Genmask  Flags Metric Ref Use Iface
192.168.40.1 *  255.255.255.255 UH 0 0 0 eth0
10.10.10.128 -  255.255.255.128 ! 0 - 0 -
10.0.0.0 *  255.255.255.0 U 0 0 0 eth0
192.168.40.0 *  255.255.252.0 U 0 0 0 eth0
169.254.0.0 *  255.255.0.0 U 0 0 0 eth0
default 192.168.40.1 0.0.0.0  UG 0 0 0 eth0

5 删除路由

[root@localhost~]# route
Kernel IP routing table
Destination Gateway  Genmask  Flags Metric Ref Use Iface
192.168.40.1 *  255.255.255.255UH 0 0 0 eth0
10.10.10.128 -  255.255.255.128 ! 0 - 0 -
10.0.0.0 *  255.255.255.0 U 0 0 0 eth0
192.168.40.0 *  255.255.252.0 U 0 0 0 eth0
169.254.0.0 *  255.255.0.0 U 0 0 0 eth0
default 192.168.40.1 0.0.0.0  UG 0 0 0 eth0
[root@localhost~]# route del -net 10.10.10.128netmask 255.255.255.128 reject
[root@localhost~]# route

Kernel IP routing table
Destination Gateway  Genmask  Flags Metric Ref Use Iface
192.168.40.1 *  255.255.255.255UH 0 0 0 eth0
10.0.0.0 *  255.255.255.0 U 0 0 0 eth0
192.168.40.0 *  255.255.252.0 U 0 0 0 eth0
169.254.0.0 *  255.255.0.0 U 0 0 0 eth0
default 192.168.40.1 0.0.0.0  UG 0 0 0 eth0

说明:删除路由时,最好是看着路由表上的照样打进去,这样比较不会删错的。

添加删除默认网关

[root@localhost ~]# route add default gw 192.168.40.2

[root@localhost~]# route

Kernel IP routing table
Destination Gateway  Genmask  Flags Metric Ref Use Iface
192.168.40.1 *  255.255.255.255UH 0 0 0 eth0
10.0.0.0 *  255.255.255.0 U 0 0 0 eth0
192.168.40.0 *  255.255.252.0 U 0 0 0 eth0
169.254.0.0 *  255.255.0.0 U 0 0 0 eth0
default  192.168.40.2 0.0.0.0  UG 0 0 0 eth0
default  192.168.40.1 0.0.0.0  UG 0 0 0 eth0

可以看到此处有两个默认网关,那到底路由会走哪个呢?

[root@localhost~]# route del default gw192.168.40.2
[root@localhost~]# route

Kernel IP routing table
Destination Gateway  Genmask  Flags Metric Ref Use Iface
192.168.40.1 *  255.255.255.255UH 0 0 0 eth0
10.0.0.0 *  255.255.255.0 U 0 0 0 eth0
192.168.40.0 *  255.255.252.0 U 0 0 0 eth0
169.254.0.0 *  255.255.0.0 U 0 0 0 eth0
default 192.168.40.1 0.0.0.0  UG 0 0 0 eth0

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能有所帮助,如果有疑问大家可以留言交流。

(0)

相关推荐

  • CentOS 7 中firewall-cmd命令详细介绍

     CentOS 7 中firewall-cmd命令 在 CentOS 7 暂时开放 ftp 服务 # firewall-cmd --add-service=ftp 永久开放 ftp 服务 # firewall-cmd --add-service=ftp --permanent 永久关闭 # firewall-cmd --remove-service=ftp --permanent success 让设定生效 # systemctl restart firewalld 检查设定是否生效 # ipt

  • Centos下查看网卡的实时流量命令

    可以通过iptraf命令查看网卡的实时流量,图像非常直观. 今天在测试服务器上准备看下网络流量 复制代码 代码如下: [root@localhost ~]# iptraf -d eth0 -bash: iptraf: command not found 发现运维同事没有给安装,只能自己手工安装了 首先安装需要的包: 复制代码 代码如下: yum -y install gcc yum -y install glibc yum -y install ncurses 安装完毕之后 我们现在开始安装ip

  • CentOS 7 中以命令行方式安装 MySQL 5.7.11 for Linux Generic 二进制版本教程详解

    MySQL 目前的最新版本是 5.7.11,在 Linux 下提供特定发行版安装包(如 .rpm)以及二进制通用版安装包(.tar.gz).一般情况下,很多项目都倾向于采用二进制通用安装包形式来进行安装配置,自定义非常方便.但在安装过程中发现,其实官方提供的安装说明文件太过简单,而且里面的参数还有问题,依照执行后,mysql 服务启动报错,查找了一些资料并反复试验后,自己总结出一套切实可行的安装配置流程,具体如下: 1.下载 MySQL for Linux Generic 二进制版本安装包(.t

  • centos 6.8命令行下使用pptpsetup进行pptp拨号的实现方法

    centos 6.8 命令行下可使用pptpsetup进行pptp拨号 1.先安装ppp,pptp和pptp-setup三个包 yum install -y ppp pptp pptp-setup 2.使用pptpsetup进行连接 pptpsetup --create VPN名字 --server 服务器IP --username 用户名 --password 密码 --encrypt --start [root@centos6-8-1 ~]# pptpsetup --create vpn -

  • centos7中firewall防火墙命令详解

    为了架设ss在vultr上买了一个日本的vps 用的是centos7的系统 防火墙是 firewall 捣鼓了两天 在这里总结一下. 如果小伙伴也准备在vultr上买vps  在注册是 可以使用这个优惠连接http://www.vultr.com/?ref=6972993-3B 会的到 20$ 的优惠  也就可以免费使用4个月 如果你的系统上没有安装使用命令安装 #yum install firewalld //安装firewalld 防火墙 开启服务 # systemctl start fir

  • CentOS命令行下装oracle 12c的方法(命令行模式安装)

    实验环境: 1:安装oracle所需软件包 Oracle 12c所需的rpm包如下: binutils-2.20.51.0.2-5.11.el6 (x86_64) compat-libcap1-1.10-1 (x86_64) compat-libstdc++-33-3.2.3-69.el6 (x86_64) compat-libstdc++-33-3.2.3-69.el6 (i686) gcc-4.4.4-13.el6 (x86_64) gcc-c++-4.4.4-13.el6 (x86_64)

  • centos 7安装mysql5.5和安装 mariadb使用的命令

    以前的Linux系统中数据库大部分是mysql,不过自从被sun收购之后,就没用集成在centos这些开源Linux系统中了,那么如果想用的话就需要自己安装了,首先centos7 已经不支持mysql,因为收费了你懂得,所以内部集成了mariadb,而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb,以下为卸载mariadb,安装mysql的步骤. #列出所有被安装的rpm package rpm -qa | grep mariadb #卸载 rpm -e mari

  • CentOS简单操作命令及node.js的安装方法

    本文实例讲述了CentOS简单操作命令及node.js的安装方法.分享给大家供大家参考,具体如下: 查看centos内核的版本: uname -a uname -r 查看linux版本: cat /etc/issue 查看系统是64位还是32位: getconf LONG_BIT 安装node.js 因为node.js需要Python2.6以上 Note: Python 2.6 or 2.7 is required to build from source tarballs. 查看Python版

  • CentOS 设置默认JDK步骤详解及命令

     CentOS下设置默认JDK 最近在弄Linux,用yum源安装opnjdk-devel版本后,用命令ll /etc/alternatives/Java查看,发现指向的是jre目录,而不是jdk,在此设置指向jdk目录. CentOS下设置默认JDK 执行命令: [root@exkPicture ~]# alternatives –install /usr/bin/Java java /usr/java/jdk1.7.0/bin/java 2 注意: alternatives的语法看这里 执行

  • linux常用命令之VMware10中安装CentOS 6.4图文教程

    小编用过的Linux系统也就是现在主流的企业级linu系统RedHat跟CentOS,这边主要介绍下CentOS 6.4的安装RedHat和CentOS差别不大,CentOS是一个基于RedHatLinux 提供的可自由使用源代码的企业级Linux发行版本. CentOS独有的yum命令支持在线升级,可以即时更新系统,不像RED HAT那样需要花钱购买支持服务! 首先安装VMware Workstation这边就不多介绍了,可自行google或者度娘! 下面开始介绍安装过程 第一步,文件 → 新

随机推荐