1. 简介
Linux 系统中,route
命令是一个基本的工具,用于查看、修改内核的IP路由表。这个路由表决定了数据包转发规则(数据包如何从源到达目的地)。
2. 基本用法
2.1 查看路由表
要查看当前的路由表,可以使用以下命令:
使用
-n
选项可以避免解析IP地址
为主机名
,这样可以加快显示速度并减少混淆。
|
|
路由表说明:
排序从上到下依次是:小网段 -> 大网段 -> 默认路由。路由规则越靠前,优先级越高。
Destination=0.0.0.0
表示默认路由。即目标IP没有具体路由规则时,数据包走此路由进行转发。
Gateway=0.0.0.0
表示路由直接由本地送达。即通过LAN的MAC直接通讯。如果是具体IP,则往往是具备三层路由能力的设备。
Flags标识说明
Flags(路由标记): 路由器在转发数据包时使用的标记,用于标识数据包的来源和目的地,以及路由器对数据包的处理方式等。
- U: 路由是Up的
- H: 目标是Host,而非一个网段
- G: 通过外部设备路由数据包
- R: 使用动态路由时,恢复路由信息的标识
- D: 由服务或Port功能设置为动态路由
- M: 路由被修改
- !: 路由不被接受(拒绝不安全网段的数据包)
2.2 添加路由(临时)
- 添加 默认 路由
|
|
默认路由:所有未被其他路由规则匹配的流量,都走默认路由。
route add default gw
通常在一起使用,来配置默认网关。
这个命令添加了一个默认网关,所有非本地网络(即目标网络不在本地路由表中的任何网络)的数据包都将通过 192.168.1.1 发送。
- 添加 特定网络 路由
|
|
所有目标IP在
192.168.100.0/24
的数据包都通过eth0
网络接口发送。具体选项说明:
-net 192.168.100.0
:指定要添加的路由的目标网络。(-net
选项用于指定一个网络地址,这里是 192.168.100.0,意味着这个路由规则将应用于所有 192.168.100.0/24 子网内的 IP 地址。)netmask 255.255.255.0
:指定目标网络的子网掩码。(255.255.255.0表示网络部分是前 24 位,主机部分是后 8 位,即 192.168.100.0/24 子网。)dev eth0
:指定数据包将通过哪个网络接口发送。(dev
选项用于指定网络接口设备,这里是 eth0,意味着所有发送到 192.168.100.0/24 网络的数据包都将通过 eth0 网络接口。)
2.3 删除路由(临时)
要删除一个路由,可以使用:
|
|
这个命令删除了到达 192.168.2.0/24 网络的路由。
删除
|
|
2.4 路由选项
route 命令有许多选项,以下是一些常用的:
add
:添加新的路由规则。del
:删除现有的路由规则。net
:指定网络地址。host
:指定主机地址。gw
:指定网关地址。dev
:指定网络接口。
3. 使用技巧
3.1 永久路由
route 命令添加的路由在重启后会丢失。要设置永久路由,需要编辑/etc/network/interfaces
文件或使用ip route
命令(后者在新版 Linux 发行版中推荐)。
3.2 路由跟踪
要跟踪数据包的路由,可以使用traceroute
命令,它是route
命令的扩展。
|
|
3.3 动态路由
对于动态路由,可以使用 rip
、ospf
、bgp
等协议和相应的守护进程。
3.4 故障排除
如果 route 命令不起作用,检查以下可能的原因:
权限问题: 确保你以 root 用户或使用 sudo 命令执行这些命令。
错误的网关:确保指定的网关地址是正确的,并且网关设备正在运行。
接口问题:确保指定的网络接口是活动的,并且配置正确。
结论
route 命令是 Linux 系统中一个强大的工具,用于管理IP路由表。了解如何使用route
命令可以帮助你更好地控制网络流量的路径,优化网络性能,并解决网络连接问题。随着技术的发展,建议用户逐渐转向使用ip route
命令,以获得更好的兼容性和更强大的功能。