# windows静态路由 ### **1、**查看路由: ``` route print route 命令的常用参数包括: -n:不使用主机名,而是以 IP 地址显示目标和网关。 -v:显示详细的输出。 -A:指定地址族,如 -A inet 或 -A inet6。 -C:显示缓存的路由信息。 -e:以扩展格式显示路由信息。 -F:清除所有的路由缓存信息。 -h:显示帮助信息。 -n:不解析 IP 地址和主机名。 -v:显示详细的输出。 ``` ### **2、**配置默认路由 ``` route add <目标网络地址> mask <子网掩码> <网关地址> [metric <跃点数>] route -p delete 0.0.0.0 //删除旧的默认路由 route -p add 0.0.0.0 mask 0.0.0.0 192.168.0.99 //将默认路由设置为192.168.0.99 具体参数的含义为: -p:可选参数,表示以永久方式添加路由。 add:表示添加一条路由。 0.0.0.0:目标网络地址,表示所有的 IP 地址都匹配该路由。 mask 0.0.0.0:子网掩码,表示所有的 IP 地址都匹配该路由。 192.168.0.99:网关地址,即将所有目标 IP 地址转发到该地址上。 [metric 1]:可选参数,表示该路由的跃点数为 1。 ``` 上面的-p为可选项,路由将出现在route print的“永久路由”里面,表示永久保存(/删除)路由; 如果不用,则只出现在route print的“活动路由”里面,重启后该路由丢失。 活动路由的metric(跃点数)值比永久路由的metric值大10。 ### **3、**配置普通静态路由 ``` route [-p] add 192.168.1.0 mask 255.255.255.0 192.168.1.254 [metric 5] ``` ### 4、删除某条静态路由 ``` route delete <目标网络地址> ``` 在 Windows 操作系统中,`metric` 参数用来指定路由的跃点数,它会影响数据包的路由选择。当多个路由路径可用时,系统会优先选择跃点数最小的路由路径,因为这样可以使数据包到达目标设备的速度更快。 默认情况下,Windows 中添加的静态路由的跃点数为 1,也就是直接连接到目标设备。如果需要通过中间设备转发数据包,可以指定较大的跃点数,以便在多条路由路径可用时优先选择其他路由路径。 # centos静态路由 ## 一、加入静态路由 网段192.168.0.0/24 IP地址:192.168.0.11 添加路由 ``` route add -net 10.0.0.0/24 gw 192.168.0.12 ``` 主机C即可识别主机A所在的10.0.0.0/24网段 ## 二、在 Linux 中添加永久路由的 ### 1. 默认网关 (1)写入 ifcfg 文件(推荐) ``` vi /etc/sysconfig/network-scripts/ifcfg-eth0 ``` 在配置 ip 地址的时候直接将 GATEWAY 的配置写入 ifcfg 文件。形式:GATEWAY=gw-ip 适合加入默认路由 (2)在 `/etc/sysconfig/network` 里加入到文件末尾,格式例如以下: GATEWAY=gw-ip 或者 GATEWAY=gw-dev ### 2. 写入 `/etc/rc.loacl`(不推荐) (注意:CentOS 7 必须执行 `chmod +x /etc/rc.d/rc.local` 来确保确保这个脚本在引导时执行。) 能够将上面提到的命令写入 `/etc/rc.local` 文件里,这样在系统启动的时候会自己主动增加相关的路由设置。 只是这样的方法有一个缺点:假设某个系统服务,比方说是 NFS 服务,这个服务是在启动 network 服务之后,在运行 rc.local 之前,假设你设置的有自己主动挂载的 nfs。那么,这里链路的不通畅。会造成挂载的失败。另外一个就是假设你重新启动了网络 server,那么路由就失效了,这个时候你不得不又一次载入这个文件,可是假设你是远程操作的呢?所以,这种方法不推荐。 方法: 编辑 `/etc/rc.local`,使用 route 命令语法添加 ```shell route add -net 192.168.3.0/24 dev eth0 route add -net 192.168.2.0/24 gw 192.168.3.254 route add -net 172.16.0.0 netmask 255.255.0.0 gw 192.168.1.100 dev eth0 ``` 修改过的文件 `/etc/rc.d/rc.local` 文件示例 ```shell #!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff. touch /var/lock/subsys/local route add -net 192.168.3.0/24 dev eth0 route add -net 192.168.2.0/24 gw 192.168.3.254 route add -net 172.16.0.0 netmask 255.255.0.0 gw 192.168.1.100 dev eth0 ``` ### 3. 写入 `/etc/sysconfig/static-routes` 文件 默认在 `/etc/sysconifg` 文件夹中是没有这个文件的,须要我们手工创建。对这个文件的调用在以下: ```shell cat /etc/init.d/network # Add non interface-specific static-routes. if [-f /etc/sysconfig/static-routes]; then if [-x /sbin/route]; then grep "^any" /etc/sysconfig/static-routes | while read ignore args ; do /sbin/route add -$args done else net_log $"Legacy static-route support not available: /sbin/route not found" fi fi ``` 添加操作如下: ```shell vi /etc/sysconfig/static-routes any net 192.168.1.0/24 gw 192.168.1.1 any net 192.168.2.0 netmask 255.255.255.0 gw 192.168.2.1 any host 10.19.190.11/32 gw 10.19.177.10 any host 10.19.190.12 gw 10.19.177.10 ``` 这样的方式的话,和 rc.local 相比,比较有用。还比方 nfs,这个路由的生效时间是在网络服务 network 启动的时候生效的,而其它的一些网络相关服务都是在网络服务启动成功之后再启动的,所以可以保证网络链路的通畅。并且,假设我重新启动了网络服务,这个脚本是在网络服务启动里面的脚本调用。因此,也增加了自己主动上设置的相关路线。 > 该方式在 CentOS 8 默认安装时无效。 > > 在 CentOS 8 中默认使用 nmcli 管理网络,可以通过 `yum install network-scripts` 来安装传统的 network.service,恢复用这种方式配置静态路由。 ### 4. 创建 `/etc/sysconfig/network-scripts/route-eth0`(推荐) ```shell # 在 `/etc/sysconfig/network-scripts/` 目录下创建名为 route-eth0 的文件 vi /etc/sysconfig/network-scripts/route-eth0 # 在此文件添加如下格式的内容 192.168.1.0/24 via 192.168.0.1 # 重启网络验证有效 systemctl restart network ``` 最后修改:2023 年 05 月 23 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 1 如果觉得我的文章对你有用,请随意赞赏
2 条评论
首尾呼应,主题鲜明,收束有力。
作者以简洁明了的语言,传达了深刻的思想和情感。