假设我们有两个网络,分别是0网段和2网段。路由器1位于0网段,而路由器2连接到路由器1,从而形成了2网段。如果在2网段中的一台主机想要与0网段中的一台主机进行通信,就需要通过路由器2进行转发。
在Linux系统中,我们可以通过route命令来添加和删除路由规则。route命令的基本格式如下:
``` route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If] ```
其中,add用于添加一条路由规则,del用于删除一条路由规则。-net表示目的地址是一个网络,-host表示目的地址是一个主机。target是目的的网络或主机,netmask是目的地址的网络掩码,gw是路由数据包通过的网关,dev是为路由指定的网络接口。
例如,如果我们想在2网段中的一台主机上添加一条路由规则,使其能够访问0网段中的一台主机,我们可以使用以下命令:
``` route add -host 192.168.0.8 gw 192.168.2.1 dev eth0 ```
这条命令的意思是,所有访问192.168.0.8主机的信息都会从192.168.2.1网关转发。
如果我们想删除这条路由规则,只需要执行以下命令:
``` route del 192.168.0.8 ```
如果我们想访问0网段中的所有主机,我们可以添加一条网络路由规则。例如,我们可以在2网段中的一台主机上添加一条到0网段的网络路由,命令如下:
``` route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.2.1 dev eth0 ```
这条命令的意思是,所有访问0网段的消息都会从192.168.2.1网关转发。
如果我们想删除这条网络路由规则,只需要执行以下命令:
``` route del -net 192.168.0.0/24 gw 192.168.2.1 ```
如果我们想在2网段中的主机访问其他所有网段的网络,我们可以添加一条默认路由规则。例如,我们可以在2网段中的一台主机上添加一条默认路由规则,命令如下:
``` route add default gw 192.168.2.1 dev eth0 ```
这条命令的意思是,所有访问非2网段的信息都会从192.168.2.1转发。
如果我们想删除这条默认路由规则,只需要执行以下命令:
``` route del default ```
以上就是在Linux系统中如何添加和删除路由规则的基本方法。通过合理地设置路由规则,我们可以有效地管理网络中的数据流量,提高网络通信的效率。
如下图所示有两个网络,分别是0网段和2网段,路由器1组成0网段,路由器2从路由器一种分出一个2网段
如果要在不同网段直接通讯,需要添加路由,linux添加路由命令如下:
route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
add : 添加一条路由规则
del : 删除一条路由规则
-net : 目的地址是一个网络
-host : 目的地址是一个主机
target : 目的网络或主机
netmask : 目的地址的网络掩码
gw : 路由数据包通过的网关
dev : 为路由指定的网络接口
1、添加主机路由
如果想192.168.2.10主机 ping通192.168.0.8主机,则需要经过路由器2,就要在192.168.2.10的主机上添加一条到192.168.0.8的路由,添加命令如下:
route add -host 192.168.0.8 gw 192.168.2.1 dev eth0
这条命令的意思是访问192.168.0.8的主机消息都从192.168.2.1端口转发。用route命令查看一下添加的路由
DestiNATion | 目标网络或目标主机。Destination 为 default(0.0.0.0)时,表示这个是默认网关,所有数据都发到这个网关(这里是10.139.128.1) |
Gateway | 网关地址,0.0.0.0表示当前记录对应的 Destination 跟本机在同一个网段,通信时不需要经过网关(同一个局域网内2台主机通信不需要经过网关) |
Genmask | Destination 字段的网络掩码,Destination 是主机时需要设置为255.255.255.255,是默认路由时会设置为0.0.0.0 |
Flags | 标志 U - Up表示有效 G - Gateway表示连接路由,若无这个字段表示直连目的地址 H - Host表示目标是具体主机,而不是网段 R 恢复动态路由产生的表项 D 由路由的后台程序动态地安装 M 由路由的后台程序修改 ! 拒绝路由 |
Metric | 路由距离,到达指定网络所需的中转数,是大型局域网和广域网设置所必需的 (不在Linux内核中使用。) |
Ref | 路由项引用次数 (不在Linux内核中使用。) |
Use | 此路由项被路由软件查找的次数 |
Iface | 网卡名字,例如eth0;要去往这个网段需要使用哪一个网络接口。也就是eth0这张网卡 |
第一条路由信息的意思就是访问主机192.168.0.8的信息都从192.168.2.1网关转发。
若要删除这条路由只需执行:route del 192.168.0.8
2、添加网络路由
第一种添加主机路由的方式只能访问到一台目录主机,如果192.168.2.10要访问0网段的所有主机的话把0网段主机都添加一遍显然很麻烦,通过添加网络路由的方式,只要在192.168.0.10主机上添加一条0网段的网络路由即可,添加命令如下:
route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.2.1 dev eth0
这个目标是网络,所以需要设置子网掩码,用route命令查看一下添加的网络路由
这条路由表示访问0网段的消息都从192.168.2.1网关转发
删除网络路由:route del -net 192.168.0.0/24 gw 192.168.2.1
3、添加默认路由
如果2网段主机想访问其他所以网段的网络,只需要添加默认路由即可:route add default gw 192.168.2.1 dev eth0
默认路由的意思是所有访问非2网段的信息都从192.168.2.1转发
删除默认路由:route del default
链接:https://www.cnblogs.com/YYFaGe/p/16599675.html