linux的路由?linux 添加路由
这篇文章给大家聊聊关于linux的路由,以及linux 添加路由对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。
详解linux 路由 route 命令
route命令是 Linux操作系统中用于管理路由表的工具,它允许用户添加、删除、修改路由表条目,以确保数据包能够正确传输到目标计算机。以下是一些route命令的常用选项及其用途:
显示当前路由表可以通过执行“route-n”命令实现。在输出中,每行的首字符代表路由类型及状态,例如“UG”表示默认网关,并可用;“UGH”表示主机路由,并作为默认网关且可用。
添加路由可以通过“route add”命令进行,需要指定网关(使用-gw选项)或网络设备(使用-dev选项),两者可同时使用。具体选项包括:
2.1添加至网络的路由:用于添加指向特定网络的静态路由。
2.2添加至主机的路由:用于添加指向特定主机的静态路由。
2.3添加持久路由:使用“-persist”选项将静态路由添加到系统启动时的路由表中,确保重启后路由仍然存在。
2.4添加路由时指定接口:允许指定特定网络接口,确保路由仅通过该接口传输。
删除路由时,只需将“add”命令替换为“del”,并执行对应操作即可实现。选项包括:
3.1删除至网络的路由:与添加至网络的路由类似。
3.2删除至主机的路由:与添加至主机的路由类似。
3.3删除持久路由:无需使用“-persist”选项,命令与常规删除命令相同。
3.4删除指定接口路由:允许删除特定接口的路由。
更改路由表中一条路由的方式为更改其网关或指定接口,通过“route add”命令实现,选项包括:
4.1更改至网络的路由网关:更改路由目标网络的默认网关。
4.2更改至主机的路由网关:更改路由目标主机的默认网关。
4.3更改持久路由网关:更改保存在启动时路由表中的静态路由的默认网关。
4.4更改路由指定接口:更改通过特定网络接口传输数据包的路由。
清空路由表可通过执行“route flush”命令实现,这会删除所有当前定义的路由。执行此操作前应确保备份路由表,以免数据丢失。
使用 route命令进行路由管理时,应谨慎操作,确保网络连接稳定且数据传输正确。正确使用这些命令可以帮助优化网络性能并确保数据安全传输。
如何使用route命令查看 Linux内核路由表
使用下面的 route命令可以查看 Linux内核路由表。
# route
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0* 255.255.255.0 U 0 0 0 eth0
169.254.0.0* 255.255.0.0 U 0 0 0 eth0
default 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
route命令的输出项说明
输出项
说明
Destination
目标网段或者主机
Gateway
网关地址,”*”表示目标是本主机所属的网络,不需要路由
Genmask
网络掩码
Flags
标记。一些可能的标记如下:
U—路由是活动的
H—目标是一个主机
G—路由指向网关
R—恢复动态路由产生的表项
D—由路由的后台程序动态地安装
M—由路由的后台程序修改
!—拒绝路由
Metric
路由距离,到达指定网络所需的中转数(linux内核中没有使用)
Ref
路由项引用次数(linux内核中没有使用)
Use
此路由项被路由软件查找的次数
Iface
该路由表项对应的输出接口
3种路由类型
主机路由
主机路由是路由选择表中指向单个IP地址或主机名的路由记录。主机路由的Flags字段为H。例如,在下面的示例中,本地主机通过IP地址192.168.1.1的路由器到达IP地址为10.0.0.10的主机。
Destination Gateway Genmask Flags Metric Ref Use Iface-----------------------------------------------10.0.0.10 192.168.1.1 255.255.255.255 UH 0 0 0 eth0网络路由
网络路由是代表主机可以到达的网络。网络路由的Flags字段为N。例如,在下面的示例中,本地主机将发送到网络192.19.12的数据包转发到IP地址为192.168.1.1的路由器。
Destination Gateway Genmask Flags Metric Ref Use Iface----------------------------------------------192.19.12 192.168.1.1 255.255.255.0 UN 0 0 0 eth0默认路由
当主机不能在路由表中查找到目标主机的IP地址或网络路由时,数据包就被发送到默认路由(默认网关)上。默认路由的Flags字段为G。例如,在下面的示例中,默认路由是IP地址为192.168.1.1的路由器。
Destination Gateway Genmask Flags Metric Ref Use Iface-----------------------------------------------default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
配置静态路由
route命令
设置和查看路由表都可以用 route命令,设置内核路由表的命令格式是:
# route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]其中:
add:添加一条路由规则
del:删除一条路由规则
-net:目的地址是一个网络
-host:目的地址是一个主机
target:目的网络或主机
netmask:目的地址的网络掩码
gw:路由数据包通过的网关
dev:为路由指定的网络接口
route命令使用举例
添加到主机的路由
# route add-host 192.168.1.2 dev eth0:0# route add-host 10.20.30.148 gw 10.20.30.40
添加到网络的路由
# route add-net 10.20.30.40 netmask 255.255.255.248 eth0
# route add-net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41# route add-net 192.168.1.0/24 eth1添加默认路由
# route add default gw 192.168.1.1
删除路由
# route del-host 192.168.1.2 dev eth0:0
# route del-host 10.20.30.148 gw 10.20.30.40
# route del-net 10.20.30.40 netmask 255.255.255.248 eth0
# route del-net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
# route del-net 192.168.1.0/24 eth1# route del default gw 192.168.1.1
设置包转发
在 CentOS中默认的内核配置已经包含了路由功能,但默认并没有在系统启动时启用此功能。开启 Linux的路由功能可以通过调整内核的网络参数来实现。要配置和调整内核参数可以使用 sysctl命令。例如:要开启 Linux内核的数据包转发功能可以使用如下的命令。
# sysctl-w net.ipv4.ip_forward=1这样设置之后,当前系统就能实现包转发,但下次启动计算机时将失效。为了使在下次启动计算机时仍然有效,需要将下面的行写入配置文件/etc/sysctl.conf。
# vi/etc/sysctl.confnet.ipv4.ip_forward= 1用户还可以使用如下的命令查看当前系统是否支持包转发。
# sysctl net.ipv4.ip_forward
在linux中如何查看路由表
查看路由器的路由表,主要依赖于所使用的操作系统和路由器的具体型号。在Linux系统中,有多种命令可以用来查看路由表,包括`route`、`ip route`和`netstat-r`等。
1.**route命令**:这是最基本的用于查看和操作路由表的命令。使用`route-n`命令可以查看当前系统的路由表,它会以数字形式显示所有的路由信息,包括目标网络、网关、子网掩码和接口等。这个命令对于大多数Linux发行版都是通用的。
2.**ip route命令**:这是另一个常用的查看路由表的命令。与route命令相比,ip route命令提供了更多的功能和选项,可以显示更详细的路由信息。使用`ip route show`命令可以查看当前系统的路由表信息,包括目标网络、网关、子网掩码、接口和路由类型等。
3.**netstat-r命令**:这个命令同样可以显示当前系统的路由表信息,包括目标网络、网关、子网掩码和接口等。它是netstat命令的一个子命令,专门用于显示路由表。
需要注意的是,在路由器设备上(特别是基于Cisco、Juniper等硬件的路由器),查看路由表的命令可能与Linux系统有所不同。例如,在Cisco路由器上,通常使用`show ip route`命令来查看路由表。而在不同的硬件和软件平台上,命令的具体语法和可用性可能会有所差异。
因此,在查看路由器的路由表时,建议首先了解路由器的具体型号和操作系统,然后根据相应的文档或手册来确定正确的命令。对于大多数基于Linux的路由器或服务器而言,上述提到的`route`、`ip route`和`netstat-r`命令是查看路由表的常用选择。