0 前言
在工作中需要连接公司内网(有线,不可联网),访问外网时需要连接无线
同时接入这两个网络时,内网访问正常,外网无法访问。
此时可以通过调整网络优先级及配置路由实现内外网同时访问
一般来说,内网的网段数量较少,我们可以配置使默认路由走外网,走内网时通过配置的静态路由
1 centos8
在 linux 系统中网络优先级是通过 metric
控制的,值越小,优先级越高,通过 route -n
查看路由
可以通过修改配置文件实现,在网卡配置文件中添加或者修改 IPV4_ROUTE_METRIC=100
参数实现,之后重启网络服务
# network
systemctl restart network
# NetworkManager
nmcli c reload
nmcli c down enp3s0
nmcli c up enp3s0
route -n
1.1 添加路由
临时添加静态路由命令如下(重启服务器或者重启网络服务后消失)
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 文件不存在的话,创建一个即可
# 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
则,如果添加一条静态路由的路由如下
route add -net 192.168.45.0 netmask 255.255.255.0 dev enp4s0 metric 3
那么,在 /etc/sysconfig/static-routes
中对应的则应该写为
any -net 192.168.45.0 netmask 255.255.255.0 dev enp4s0 metric 3
2 win10
2.1 调整网络优先级
查看默认路由
route print 0.0.0.0
这两个路由分别是内网和外网的默认路由,绝大部分情况网络都是走的默认路由,但这里有两条默认路由,默认路由的优先级是按照跃点数的多少决定的,跃点数越少,优先级越高
将外网无线的跃点数调小
route print 可以看到跃点数修改成功了,此时外网无线的跃点数更小,优先级更高
2.2 配置路由
配置路由需要以管理员权限运行 powershell 或者 cmd
配置路由后,内网访问也没有问题了
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
选项设置为永久路由
route add -p 172.16.2.0 mask 255.255.255.0 172.30.4.254 metric 3
以上