route
命令用于在 Linux 系统中查看和操作 IP 路由表。它可以显示、添加、删除或修改路由表中的条目。
常见用法 1. 查看路由表 要查看当前的路由表,可以使用以下命令:
-n
选项表示以数字形式显示 IP 地址和端口号,而不进行 DNS 解析。
输出示例:
1 2 3 4 Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
Destination
: 目标网络或主机。
Gateway
: 网关地址,0.0.0.0
表示没有网关。
Genmask
: 子网掩码。
Flags
: 路由标志(如 U
表示路由是活动的,G
表示使用网关)。
Metric
: 路由距离(用于路由算法)(越小优先级越高)。
Iface
: 使用的网络接口。
2. 添加路由 要添加一条新的路由,可以使用以下命令:
1 2 3 4 5 sudo route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1 dev eth0sudo route add -net 192.168.2.0/24 gw 192.168.1.1 dev eth0sudo route add -net 192.168.2.0/24 gw 192.168.1.1
-net
: 指定目标网络。
netmask
: 指定子网掩码。
gw
: 指定网关。
dev
: 指定网络接口。
3. 删除路由 要删除一条路由,可以使用以下命令:
1 2 3 sudo route del -net 192.168.2.0 netmask 255.255.255.0sudo route del -net 192.168.2.0/24
4. 添加默认网关 要添加默认网关,可以使用以下命令:
1 sudo route add default gw 192.168.1.1
5. 删除默认网关 要删除默认网关,可以使用以下命令:
1 sudo route del default gw 192.168.1.1
6. 添加主机路由 要添加一条到特定主机的路由,可以使用以下命令:
1 sudo route add -host 192.168.1.100 gw 192.168.1.1 dev eth0
7. 删除主机路由 要删除一条到特定主机的路由,可以使用以下命令:
1 sudo route del -host 192.168.1.100
注意事项
route
命令在大多数现代 Linux 发行版中仍然可用,但更推荐使用 ip route
命令(来自 iproute2
工具包),因为它提供了更多的功能和更现代的语法。
例如,使用 ip route
查看路由表:
添加路由:
1 sudo ip route add 192.168.2.0/24 via 192.168.1.1 dev eth0
删除路由:
1 sudo ip route del 192.168.2.0/24
ip route
命令的功能更强大,建议在需要更复杂的路由配置时使用。
tracepath/traceroute help [root@centos9-81 ~]# tracepath
Usage
tracepath [options] <destination>
Options:
-4 use IPv4
-6 use IPv6
-b print both name and ip
-l <length> use packet <length>
-m <hops> use maximum <hops>
-n no dns name resolution
-p <port> use destination <port>
-V print version and exit
<destination> dns name or ip address
For more details see tracepath(8).
例子
[root@centos9-81 ~]# tracepath -b -n 1.1.1.1
1?: [LOCALHOST] pmtu 1500
1: 10.0.2.2 (_gateway) 0.435ms
1: 10.0.2.2 (_gateway) 0.317ms
2: 192.168.3.1 (192.168.3.1) 3.326ms asymm 64
3: 116.148.104.1 (116.148.104.1) 8.517ms asymm 63
4: no reply
^C
route更加详细例子 route
命令用于在 Linux 系统中查看和操作 IP 路由表。它可以显示、添加、删除或修改路由表中的条目。
命令归属包
0.查看路由
route -n
1.默认路由/网关:172.16.0.1
route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1 //出路由
route add default gw 172.16.0.1 //默认网关
route add -net 192.168.24.0/24 gw 172.24.20.2 [dev eth0] //一般不用填写dev自动根据IP绑定网卡
2.删除route del
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
目标:192.168.1.3 网关:172.16.0.1
route del -host 192.168.1.3
目标:192.168.0.0 网关:172.16.0.1
route del -net 192.168.0.0 netmask 255.255.255.0
route del -net 192.168.0.0/24
1. 查看路由表 要查看当前的路由表,可以使用以下命令:
-n
选项表示以数字形式显示 IP 地址和端口号,而不进行 DNS 解析。
输出示例:
1 2 3 4 Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
Destination
: 目标网络或主机。
Gateway
: 网关地址,0.0.0.0
表示没有网关。
Genmask
: 子网掩码。
Flags
: 路由标志(如 U
表示路由是活动的,G
表示使用网关)。
Metric
: 路由距离(用于路由算法)。
Iface
: 使用的网络接口。
2. 添加路由 要添加一条新的路由,可以使用以下命令:
1 sudo route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1 dev eth0
-net
: 指定目标网络。
netmask
: 指定子网掩码。
gw
: 指定网关。
dev
: 指定网络接口。
3. 删除路由 要删除一条路由,可以使用以下命令:
1 sudo route del -net 192.168.2.0 netmask 255.255.255.0
4. 添加默认网关 要添加默认网关,可以使用以下命令:
1 sudo route add default gw 192.168.1.1
5. 删除默认网关 要删除默认网关,可以使用以下命令:
1 sudo route del default gw 192.168.1.1
6. 添加主机路由 要添加一条到特定主机的路由,可以使用以下命令:
1 sudo route add -host 192.168.1.100 gw 192.168.1.1 dev eth0
7. 删除主机路由 要删除一条到特定主机的路由,可以使用以下命令:
1 sudo route del -host 192.168.1.100
8. 查看帮助 要查看 route
命令的帮助信息,可以使用以下命令:
或者查看手册页:
注意事项
route
命令在大多数现代 Linux 发行版中仍然可用,但更推荐使用 ip route
命令(来自 iproute2
工具包),因为它提供了更多的功能和更现代的语法。
例如,使用 ip route
查看路由表:
添加路由:
1 sudo ip route add 192.168.2.0/24 via 192.168.1.1 dev eth0
删除路由:
1 sudo ip route del 192.168.2.0/24
ip route
命令的功能更强大,建议在需要更复杂的路由配置时使用。
ip route ip route
是 Linux 系统中用于管理路由表的命令,属于 iproute2
工具集的一部分。它用于查看、添加、删除或修改路由表中的路由条目。以下是一些常见的用法:
1. 查看路由表
或简写为:
这将显示当前系统的路由表。
2. 添加路由 1 ip route add <目标网络> via <网关> dev <网络接口>
例如,添加一个到 192.168.1.0/24
网络的路由,通过网关 192.168.0.1
,使用网络接口 eth0
:
1 ip route add 192.168.1.0/24 via 192.168.0.1 dev eth0
3. 删除路由
例如,删除到 192.168.1.0/24
网络的路由:
1 ip route del 192.168.1.0/24
4. 添加默认路由 1 ip route add default via <网关> dev <网络接口>
例如,添加默认路由,通过网关 192.168.0.1
,使用网络接口 eth0
:
1 ip route add default via 192.168.0.1 dev eth0
5. 删除默认路由
6. 修改路由 1 ip route change <目标网络> via <新网关> dev <网络接口>
例如,修改到 192.168.1.0/24
网络的路由,使用新的网关 192.168.0.2
:
1 ip route change 192.168.1.0/24 via 192.168.0.2 dev eth0
7. 查看特定网络的路由
例如,查看到 192.168.1.1
的路由:
1 ip route get 192.168.1.1
8. 清空路由表 1 ip route flush table main
这将清空整个路由表。
9. 添加多路径路由 1 ip route add <目标网络> nexthop via <网关1> dev <接口1> weight <权重1> nexthop via <网关2> dev <接口2> weight <权重2>
例如,添加一个多路径路由到 192.168.1.0/24
网络,通过两个不同的网关:
1 ip route add 192.168.1.0/24 nexthop via 192.168.0.1 dev eth0 weight 1 nexthop via 192.168.0.2 dev eth1 weight 1
10. 查看路由缓存
这将显示路由缓存中的条目。
11. 添加静态路由 1 ip route add <目标网络> via <网关> dev <网络接口> metric <度量值>
例如,添加一个静态路由到 192.168.2.0/24
网络,通过网关 192.168.0.3
,使用网络接口 eth0
,并设置度量值为 100
:
1 ip route add 192.168.2.0/24 via 192.168.0.3 dev eth0 metric 100
12. 删除静态路由 1 ip route del <目标网络> via <网关> dev <网络接口> metric <度量值>
例如,删除上述静态路由:
1 ip route del 192.168.2.0/24 via 192.168.0.3 dev eth0 metric 100
13. 查看特定接口的路由 1 ip route show dev <网络接口>
例如,查看 eth0
接口的路由:
14. 添加黑洞路由 1 ip route add blackhole <目标网络>
例如,添加一个黑洞路由到 192.168.3.0/24
网络:
1 ip route add blackhole 192.168.3.0/24
15. 删除黑洞路由 1 ip route del blackhole <目标网络>
例如,删除上述黑洞路由:
1 ip route del blackhole 192.168.3.0/24
16. 添加不可达路由 1 ip route add unreachable <目标网络>
例如,添加一个不可达路由到 192.168.4.0/24
网络:
1 ip route add unreachable 192.168.4.0/24
17. 删除不可达路由 1 ip route del unreachable <目标网络>
例如,删除上述不可达路由:
1 ip route del unreachable 192.168.4.0/24
18. 查看路由统计信息
这将显示路由统计信息。
19. 查看路由表的所有详细信息
这将显示路由表的详细信息,包括路由的来源、协议等。
20. 查看特定协议的路由 1 ip route show proto <协议>
例如,查看 kernel
协议的路由:
1 ip route show proto kernel
21. 查看路由表的缓存条目
这将显示路由缓存中的条目。
22. 查看路由表的策略路由 1 ip route show table <表名>
例如,查看 main
表的路由:
1 ip route show table main
23. 添加策略路由 1 ip route add <目标网络> via <网关> dev <网络接口> table <表名>
例如,添加一个策略路由到 192.168.5.0/24
网络,通过网关 192.168.0.4
,使用网络接口 eth0
,并将其添加到 custom
表中:
1 ip route add 192.168.5.0/24 via 192.168.0.4 dev eth0 table custom
24. 删除策略路由 1 ip route del <目标网络> via <网关> dev <网络接口> table <表名>
例如,删除上述策略路由:
1 ip route del 192.168.5.0/24 via 192.168.0.4 dev eth0 table custom
25. 查看路由表的策略路由规则
这将显示策略路由规则。
26. 添加策略路由规则 1 ip rule add from <源地址> table <表名>
例如,添加一个策略路由规则,将所有来自 192.168.6.0/24
的流量路由到 custom
表:
1 ip rule add from 192.168.6.0/24 table custom
27. 删除策略路由规则 1 ip rule del from <源地址> table <表名>
例如,删除上述策略路由规则:
1 ip rule del from 192.168.6.0/24 table custom
28. 查看路由表的策略路由规则优先级
这将显示策略路由规则的优先级。
29. 添加策略路由规则优先级 1 ip rule add from <源地址> table <表名> priority <优先级>
例如,添加一个策略路由规则,将所有来自 192.168.7.0/24
的流量路由到 custom
表,并设置优先级为 1000
:
1 ip rule add from 192.168.7.0/24 table custom priority 1000
30. 删除策略路由规则优先级 1 ip rule del from <源地址> table <表名> priority <优先级>
例如,删除上述策略路由规则:
1 ip rule del from 192.168.7.0/24 table custom priority 1000
31. 查看路由表的策略路由规则来源
这将显示策略路由规则的来源。
32. 添加策略路由规则来源 1 ip rule add from <源地址> table <表名>
例如,添加一个策略路由规则,将所有来自 192.168.8.0/24
的流量路由到 custom
表:
1 ip rule add from 192.168.8.0/24 table custom
33. 删除策略路由规则来源 1 ip rule del from <源地址> table <表名>
例如,删除上述策略路由规则:
1 ip rule del from 192.168.8.0/24 table custom
34. 查看路由表的策略路由规则目标
这将显示策略路由规则的目标。
35. 添加策略路由规则目标 1 ip rule add to <目标地址> table <表名>
例如,添加一个策略路由规则,将所有到 192.168.9.0/24
的流量路由到 custom
表:
1 ip rule add to 192.168.9.0/24 table custom
36. 删除策略路由规则目标 1 ip rule del to <目标地址> table <表名>
例如,删除上述策略路由规则:
1 ip rule del to 192.168.9.0/24 table custom
37. 查看路由表的策略路由规则接口
这将显示策略路由规则的接口。
38. 添加策略路由规则接口 1 ip rule add dev <网络接口> table <表名>
例如,添加一个策略路由规则,将所有通过 eth0
接口的流量路由到 custom
表:
1 ip rule add dev eth0 table custom
39. 删除策略路由规则接口 1 ip rule del dev <网络接口> table <表名>
例如,删除上述策略路由规则:
1 ip rule del dev eth0 table custom
40. 查看路由表的策略路由规则协议
这将显示策略路由规则的协议。
41. 添加策略路由规则协议 1 ip rule add proto <协议> table <表名>
例如,添加一个策略路由规则,将所有 TCP
协议的流量路由到 custom
表:
1 ip rule add proto tcp table custom
42. 删除策略路由规则协议 1 ip rule del proto <协议> table <表名>
例如,删除上述策略路由规则:
1 ip rule del proto tcp table custom
43. 查看路由表的策略路由规则标记
这将显示策略路由规则的标记。
44. 添加策略路由规则标记 1 ip rule add fwmark <标记> table <表名>
例如,添加一个策略路由规则,将所有标记为 0x1
的流量路由到 custom
表:
1 ip rule add fwmark 0x1 table custom
45. 删除策略路由规则标记 1 ip rule del fwmark <标记> table <表名>
例如,删除上述策略路由规则:
1 ip rule del fwmark 0x1 table custom
46. 查看路由表的策略路由规则优先级
这将显示策略路由规则的优先级。
47. 添加策略路由规则优先级 1 ip rule add priority <优先级> table <表名>
例如,添加一个策略路由规则,将所有优先级为 1000
的流量路由到 custom
表:
1 ip rule add priority 1000 table custom
48. 删除策略路由规则优先级 1 ip rule del priority <优先级> table <表名>
例如,删除上述策略路由规则:
1 ip rule del priority 1000 table custom
49. 查看路由表的策略路由规则来源
这将显示策略路由规则的来源。
50. 添加策略路由规则来源 1 ip rule add from <源地址> table <表名>
例如,添加一个策略路由规则,将所有来自 192.168.10.0/24
的流量路由到 custom
表:
1 ip rule add from 192.168.10.0/24 table custom
51. 删除策略路由规则来源 1 ip rule del from <源地址> table <表名>
例如,删除上述策略路由规则:
1 ip rule del from 192.168.10.0/24 table custom
52. 查看路由表的策略路由规则目标
这将显示策略路由规则的目标。
53. 添加策略路由规则目标 1 ip rule add to <目标地址> table <表名>
例如,添加一个策略路由规则,将所有到 192.168.11.0/24
的流量路由到 custom
表:
1 ip rule add to 192.168.11.0/24 table custom
54. 删除策略路由规则目标 1 ip rule del to <目标地址> table <表名>
例如,删除上述策略路由规则:
1 ip rule del to 192.168.11.0/24 table custom
55. 查看路由表的策略路由规则接口
这将显示策略路由规则的接口。
56. 添加策略路由规则接口 1 ip rule add dev <网络接口> table <表名>
例如,添加一个策略路由规则,将所有通过 eth0
接口的流量路由到 custom
表:
1 ip rule add dev eth0 table custom
57. 删除策略路由规则接口 1 ip rule del dev <网络接口> table <表名>
例如,删除上述策略路由规则:
1 ip rule del dev eth0 table custom
58. 查看路由表的策略路由规则协议
这将显示策略路由规则的协议。
59. 添加策略路由规则协议 1 ip rule add proto <协议> table <表名>
例如,添加一个策略路由规则,将所有 TCP
协议的流量路由到 custom
表:
1 ip rule add proto tcp table custom
60. 删除策略路由规则协议 1 ip rule del proto <协议> table <表名>
例如,删除上述策略路由规则:
1 ip rule del proto tcp table custom
61. 查看路由表的策略路由规则标记
这将显示策略路由规则的标记。
62. 添加策略路由规则标记 1 ip rule add fwmark <标记> table <表名>
例如,添加一个策略路由规则,将所有标记为 0x1
的流量路由到 custom
表:
1 ip rule add fwmark 0x1 table custom
63. 删除策略路由规则标记 1 ip rule del fwmark <标记> table <表名>
例如,删除上述策略路由规则:
1 ip rule del fwmark 0x1 table custom
64. 查看路由表的策略路由规则优先级
这将显示策略路由规则的优先级。
65. 添加策略路由规则优先级 1 ip rule add priority <优先级> table <表名>
例如,添加一个策略路由规则,将所有优先级为 1000
的流量路由到 custom
表:
1 ip rule add priority 1000 table custom
66. 删除策略路由规则优先级 1 ip rule del priority <优先级> table <表名>
例如,删除上述策略路由规则:
1 ip rule del priority 1000 table custom
67. 查看路由表的策略路由规则来源
这将显示策略路由规则的来源。
68. 添加策略路由规则来源 1 ip rule add from <源地址> table <表名>
例如,添加一个策略路由规则,将所有来自 192.168.12.0/24
的流量路由到 custom
表:
1 ip rule add from 192.168.12.0/24 table custom
69. 删除策略路由规则来源 1 ip rule del from <源地址> table <表名>
例如,删除上述策略路由规则:
1 ip rule del from 192.168.12.0/24 table custom
70. 查看路由表的策略路由规则目标
这将显示策略路由规则的目标。
71. 添加策略路由规则目标 1 ip rule add to <目标地址> table <表名>
例如,添加一个策略路由规则,将所有到 192.168.13.0/24
的流量路由到 custom
表:
1 ip rule add to 192.168.13.0/24 table custom
72. 删除策略路由规则目标 1 ip rule del to <目标地址> table <表名>
例如,删除上述策略路由规则:
1 ip rule del to 192.168.13.0/24 table custom
73. 查看路由表的策略路由规则接口
这将显示策略路由规则的接口。
74. 添加策略路由规则接口 1 ip rule add dev <网络接口> table <表名>
例如,添加一个策略路由规则,将所有通过 eth0
接口的流量路由到 custom
表:
1 ip rule add dev eth0 table custom
主机通过2个路由器实现网络互通
搭建4台虚拟机: 2台模拟路由器,2台模拟主机
注意点:
1.HostA 网关指向 RouteA eth0
2.HostB 网关指向 RouteB eth1
3.RouteA/RouteB 通过eth1网卡通信,各端配置eth0网卡当作对端网关(gateway)
4.RouteA/RouteB上须配置ip_forward 支持多网卡建数据包的转发
5.RouteA/RouteB上新增路由,源端下一跳到对端
临时添加验证
sysctl -w net.ipv4.ip_forward=1
sysctl -p
or
写配置文件
tee net.ipv4.ip_forward=1 >> /etc/sysctl.conf
sysctl -p
route add -net 172.24.24.0/24 gw 10.10.0.2 [dev eth1]
route add -net 192.168.24.0/24 gw 10.10.0.1 [dev eth1]
动态路由(自动交换路由寻址)