写在前面
route
命令用来查看Linux内核路由表。
表项内容说明
route
命令输出如下,使用-n
选项表示不解析名字,可以加快信息输出速度。
1 | Kernel IP routing table |
字段解释如下:
| 字段 | 说明 |
| :— | :— |
| Destination | 目标网段或主机 |
| Gateway | 网关地址, *或全0表示目标是本主机所属的网络,不需要路由 |
| Genmask | 网络掩码 |
| Flags | U:路由时活动的;H:目标是个主机;G:路由指向网关;R:恢复动态路由产生的表项;D:由路由的后台程序动态的安装;M:由路由的后台程序修改; !:拒绝路由 |
| Metric | 路由距离,到达指定网络所需要的中转数(linux内核中没有使用) |
| Ref | 路由项引用次数(linux内核中没有使用) |
| Use | 此路由项被路由软件查找的次数 |
| Iface | 该路由表项的输出接口 |
Linux上有三种路由类型:
- 主机路由。路由表中指向单个IP地址或主机名的路由记录。主机路由的Flags字段为H。
- 网络路由。代表主机可以到达的网络。网络路由的Flags字段为N。
- 默认路由。当主机不能再路由表中查找到目标主机的IP地址或网络路由时,数据包就被发送到默认路由上。默认路由的Flags字段为G。
对于一个物理网卡,Linux默认只支持一条默认路由。当然可以通过route命令手动添加多条默认路由,当重新启动网口时,会把其它默认路由去掉,只剩下一条该网口生成的默认路由。
常用命令
添加或删除路由
route {add | del } [-net|-host] [网域或主机] netmask [mask] [gw|dev]
route add default gw 192.168.5.1
route add -net 10.204.0.0/16 eth0
route add -net 10.204.0.0/26 gw 10.204.123.1
查询路由信息
route -nee
ee选项表示详细信息