Ubuntu双网卡配置:轻松实现内外网同时访问

需求简介

Ubuntu主机通过有线网卡与无线网卡同时连接,有线用于访问内部的服务器设备,无线用于访问外部互联网。现需要主机能够同时访问互联网与内网服务器。

注:路由交换配置部分略,如有需要可在后台回复【双网卡】获取工程文件

Ubuntu双网卡配置:轻松实现内外网同时访问
主机默认路由表如下,可以看到两条默认路由,网关为192.168.1.254的默认路由优先级较高,导致所有流量都通过该网卡发送
Ubuntu双网卡配置:轻松实现内外网同时访问
此时访问内网正常,外网无法访问
Ubuntu双网卡配置:轻松实现内外网同时访问

解决方法

删除去往内网的默认路由,重新添加一条明细路由

ip route del default via 192.168.1.254
#添加去内网的明细路由
ip route add 192.168.101.0/24 via 192.168.1.254 dev ens33
Ubuntu双网卡配置:轻松实现内外网同时访问

访问测试

此时已经能够正常访问互联网与内网服务器了
Ubuntu双网卡配置:轻松实现内外网同时访问

路由追踪查看,可以看到访问流量分别通过不同的网关发送出去

Ubuntu双网卡配置:轻松实现内外网同时访问

路由持久化配置

手动添加的路由在系统重启后会丢失,导致路由失效。如需实现永久有效,将其写入到开机自启文件内执行即可。

注:在最新的Ubuntu中使用systemd来管理开机自启

编写systemd文件,文件存放路径:

/etc/systemd/system

[Unit]
Description=routeadd
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/routeadd.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target
文件名命名规则xx.service,赋予文件可执行权限
chmod +x /etc/systemd/system/routeadd.service
Ubuntu双网卡配置:轻松实现内外网同时访问

将添加路由的命令写入到脚本,脚本存放路径为:

/usr/local/bin/routeadd.sh

注:添加路由命令根据实际环境进行修改。

#!/usr/bin/env bash
sudo ip route del default via 192.168.1.254
sudo ip route add 192.168.101.0/24 via 192.168.1.254 dev ens33
赋予可执行权限
chmod +x /usr/local/bin/routeadd.sh
Ubuntu双网卡配置:轻松实现内外网同时访问
修改/etc/sudoers配置文件,使普通用户可以使用sudo免密执行以下命令
#test用户使用其他命令时需要输入密码
test  ALL=(ALL:ALL) ALL
#test用户可以免密执行ip和systemctl命令
test  ALL=(ALL:ALL)  NOPASSWD:/usr/sbin/ip,/usr/bin/systemctl
Ubuntu双网卡配置:轻松实现内外网同时访问
将脚本设置为开机自启
systemctl enable routeadd.service
#查看开机自启服务
systemctl list-unit-files --type=service --state=enabled

可以看到,我们自定义的服务已经设置为自启动了

Ubuntu双网卡配置:轻松实现内外网同时访问
重启系统就可以看到路由自动添加进来了,从而实现了路由的持久化配置
Ubuntu双网卡配置:轻松实现内外网同时访问

▽往期推荐△










原文始发于微信公众号(青菜浪人):

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/308371.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!