route add命令详解
下面对常见操作系统(Windows 与 Linux/Unix)中 route add
命令进行详解,包括其作用、语法格式、常用参数及典型示例。
一、命令作用
route add
用于在本地路由表中添加一条静态路由,使得发送到指定目标网络(或主机)的数据包能按照该路由规则转发到指定的网关或接口。
- Windows:管理 IP 路由表,适用于 IPv4 和 IPv6。
- Linux/Unix:同样操作内核的路由表,可用来添加、修改、删除静态路由。
二、Windows 下的 route add
1. 基本语法
route add <目标网络> mask <子网掩码> <网关地址> [metric <跳数>] [if <接口编号>]
<目标网络>
:目标网络地址或目标主机地址。mask <子网掩码>
:子网掩码,决定目标网络的范围。<网关地址>
:下一跳路由器或本机直联网关 IP。metric <跳数>
:可选,路由优先级,数字越小优先级越高,默认为 1。if <接口编号>
:可选,指定使用的网络接口编号,可通过route print
查看各接口对应编号。
2. 常用示例
- 为单个主机添加路由:
route add 192.168.1.100 mask 255.255.255.255 10.0.0.1
- 将目的地址为 192.168.1.100 的流量发往网关 10.0.0.1。
- 为整个子网添加路由:
route add 172.16.0.0 mask 255.255.0.0 10.0.0.254 metric 5 if 12
- 将发往 172.16.0.0/16 的流量通过接口编号 12,并以跳数 5 的优先级发往网关 10.0.0.254。
- 添加永久静态路由:
默认添加的路由在重启后消失,可加上-p
参数将其写入注册表:route -p add 10.10.10.0 mask 255.255.255.0 192.168.0.1
3. 查看与删除
- 查看当前路由表:
route print
- 删除路由:
route delete <目标网络> mask <子网掩码> [if <接口编号>]
三、Linux/Unix 下的 route add
提醒:较新的 Linux 发行版推荐使用
ip route
(来自 iproute2 套件),但route
命令依然常见。
1. 基本语法(传统 route
命令)
# 添加到子网
sudo route add -net <目标网络> netmask <子网掩码> gw <网关地址> [dev <接口名>]
# 添加到单个主机
sudo route add -host <目标主机> gw <网关地址>
-net
/-host
:指定目标是网络还是单个主机。netmask <子网掩码>
:目标网络掩码。gw <网关地址>
:下一跳路由器 IP。dev <接口名>
:可选,指定物理或逻辑接口(如 eth0、ens33 等)。
2. 推荐语法(ip route
命令)
sudo ip route add <目标网络>/<前缀长度> via <网关地址> dev <接口名> [metric <跳数>]
<目标网络>/<前缀长度>
:如192.168.2.0/24
或单主机10.0.0.5/32
。via
:指定下一跳网关。dev
:指定出接口。metric
:可选,路由优先级。
3. 常用示例
- 添加子网路由(传统方式):
sudo route add -net 10.10.20.0 netmask 255.255.255.0 gw 192.168.1.1
- 使用
ip route
:sudo ip route add 10.10.20.0/24 via 192.168.1.1 dev eth0 metric 10
- 添加到单个主机:
sudo ip route add 172.16.5.8/32 via 192.168.1.254 dev eth1
4. 查看与删除
- 查看路由表
- 传统:
route -n
- 推荐:
ip route show
- 传统:
- 删除路由
# 传统方式 sudo route del -net 10.10.20.0 netmask 255.255.255.0 gw 192.168.1.1 # iproute2 方式 sudo ip route del 10.10.20.0/24 via 192.168.1.1 dev eth0
四、小贴士
- 注意网络连通性
- 添加路由前,确保下一跳网关可达(
ping
测试)。
- 添加路由前,确保下一跳网关可达(
- 优先级(Metric)
- 系统根据跳数(Metric)值决定多条路由时的选择,数值越低优先级越高。
- 持久化
- Windows 用
-p
;Linux 需要修改网络配置脚本(如/etc/network/interfaces
、/etc/sysconfig/network-scripts/
或 NetworkManager 配置)。
- Windows 用
- 调试
- 配置完成后,使用
tracert
(Windows)或traceroute
(Linux)追踪路由路径,确认生效。
- 配置完成后,使用
通过上述内容,您可以掌握 route add
在不同环境下的用法与配置要点,灵活地为目标网络或主机添加静态路由。若有更深入的场景需求(如策略路由、路由映射等),可进一步学习 ip rule
、iptables
或高级路由协议工具。