多网卡时设置网络优先级以及添加静态路由

2022-10-25 17:06:10 浏览数 (3)

前言#

在工作中需要连接公司内网(有线,不可联网),访问外网时需要连接无线

同时接入这两个网络时,内网访问正常,外网无法访问。

此时可以通过调整网络优先级及配置路由实现内外网同时访问

一般来说,内网的网段数量较少,我们可以配置使默认路由走外网,走内网时通过配置的静态路由

centos8#

在 linux 系统中网络优先级是通过 metric 控制的,值越小,优先级越高,通过route -n 查看路由

可以通过修改配置文件实现,在网卡配置文件中添加或者修改 IPV4_ROUTE_METRIC=100 参数实现,之后重启网络服务

代码语言:javascript复制
# network
systemctl restart network

# NetworkManager
nmcli c reload
nmcli c down enp3s0
nmcli c up enp3s0

route -n

添加路由#

临时添加静态路由命令如下(重启服务器或者重启网络服务后消失)

代码语言:javascript复制
route add -net 192.168.45.0  netmask 255.255.255.0 dev enp4s0 metric 3

永久添加静态路由

参照 /etc/init.d/network 中对 /etc/sysconfig/static-routes 是如何处理的

/etc/sysconfig/static-routes 文件不存在的话,创建一个即可

代码语言:javascript复制
 # 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

则,如果添加一条静态路由的路由如下

代码语言:javascript复制
route add -net 192.168.45.0  netmask 255.255.255.0 dev enp4s0 metric 3

那么,在 /etc/sysconfig/static-routes 中对应的则应该写为

代码语言:javascript复制
any -net 192.168.45.0  netmask 255.255.255.0 dev enp4s0 metric 3

win10#

调整网络优先级#

查看默认路由

代码语言:javascript复制
route print 0.0.0.0

这两个路由分别是内网和外网的默认路由,绝大部分情况网络都是走的默认路由,但这里有两条默认路由,默认路由的优先级是按照跃点数的多少决定的,跃点数越少,优先级越高

将外网无线的跃点数调小

route print可以看到跃点数修改成功了,此时外网无线的跃点数更小,优先级更高

配置路由#

配置路由需要以管理员权限运行powershell或者cmd

配置路由后,内网访问也没有问题了

代码语言:javascript复制
route add 172.16.2.0 mask 255.255.255.0 172.30.4.254 metric 3
route add 172.16.3.0 mask 255.255.255.0 172.30.4.254 metric 3
route add 172.16.4.0 mask 255.255.255.0 172.30.4.254 metric 3

这里配置的路由重启系统后会消失,加 -p选项设置为永久路由

代码语言:javascript复制
route add -p 172.16.2.0 mask 255.255.255.0 172.30.4.254 metric 3

0 人点赞