Linux(20) Ubuntu 20.04 网络接口自动切换路由配置

简介: Linux(20) Ubuntu 20.04 网络接口自动切换路由配置

当时调试rockchip rk3399 linux ubuntu rootfs遇到的问题 ,  

在Ubuntu 20.04系统中,如果有两个以太网口,例如eth0和eth1,可能会遇到一个问题:

当eth0网线接到eth1后无法上网。可以通过执行以下命令来手动切换路由:

ip route del default via 192.168.1.1 dev eth0

ip route del 192.168.1.0/24 dev eth0

ip route del 192.168.1.0/24 dev eth1

ip route add default via 192.168.1.1 dev eth1


ip route del default via 192.168.1.1 dev eth1

ip route del 192.168.1.0/24 dev eth1

ip route add 192.168.1.0/24 dev eth0

ip route add default via 192.168.1.1 dev eth0

然而,这种方法需要手动执行,不够方便。实际上,可以使用Linux中的网络管理工具,如NetworkManager或systemd-networkd来实现自动切换路由。

使用NetworkManager或systemd-networkd实现自动切换路由

安装并启用NetworkManager或systemd-networkd

sudo apt install network-manager

sudo systemctl enable NetworkManager.service

sudo systemctl start NetworkManager.service

或者

sudo apt install systemd-networkd

sudo systemctl enable systemd-networkd.service

sudo systemctl start systemd-networkd.service

配置网络接口文件 /etc/network/interfaces

在该文件中添加以下内容:

auto eth0

iface eth0 inet dhcp


auto eth1

iface eth1 inet dhcp

配置NetworkManager或systemd-networkd

如果使用NetworkManager,则需要编辑 /etc/NetworkManager/conf.d/10-globally-managed-devices.conf 文件,并将其设置为 false 以确保所有网络设备都由NetworkManager管理。

sudo nano /etc/NetworkManager/conf.d/10-globally-managed-devices.conf


[main]

plugins=keyfile


[keyfile]

unmanaged-devices=interface-name:eth0;interface-name:eth1

如果使用systemd-networkd,则需要创建一个文件 /etc/systemd/network/eth0.network和/etc/systemd/network/eth1.network,内容如下:

/etc/systemd/network/eth0.network:

[Match]

Name=eth0


[Network]

DHCP=yes

Gateway=192.168.1.1

DNS=8.8.8.8

/etc/systemd/network/eth1.network:

[Match]

Name=eth1


[Network]

DHCP=yes

Gateway=192.168.1.1

DNS=8.8.8.8

重启网络服务

sudo systemctl restart NetworkManager.service

或者

sudo systemctl restart systemd-networkd.service

这样配置后,如果一个接口的网络不可用,则系统将自动切换到另一个接口。

设置开机启动

如果希望在Ubuntu 20.04上设置systemd-networkd.service

开机启动,可以按照以下步骤操作:

创建systemd-networkd.service的符号链接

sudo ln -s /lib/systemd/system/systemd-networkd.service /etc/systemd/system/multi-user.target.wants/

启用systemd-networkd.service

sudo systemctl enable systemd-networkd.service

禁用旧的网络服务(如果有)

sudo systemctl disable NetworkManager.service

重新启动系统以应用更改

sudo reboot

这将确保systemd-networkd.service在系统启动时自动启动,并替代其他网络服务。请注意,禁用旧的网络服务可能会导致无法访问互联网。在进行此操作之前,请确保已正确配置systemd-networkd。

相关文章
|
6天前
|
人工智能 数据可视化 安全
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
本文详解如何用阿里云Lighthouse一键部署OpenClaw,结合飞书CLI等工具,让AI真正“动手”——自动群发、生成科研日报、整理知识库。核心理念:未来软件应为AI而生,CLI即AI的“手脚”,实现高效、安全、可控的智能自动化。
16742 10
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
|
17天前
|
人工智能 JSON 机器人
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
本文带你零成本玩转OpenClaw:学生认证白嫖6个月阿里云服务器,手把手配置飞书机器人、接入免费/高性价比AI模型(NVIDIA/通义),并打造微信公众号“全自动分身”——实时抓热榜、AI选题拆解、一键发布草稿,5分钟完成热点→文章全流程!
28300 140
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
|
7天前
|
人工智能 JSON 监控
Claude Code 源码泄露:一份价值亿元的 AI 工程公开课
我以为顶级 AI 产品的护城河是模型。读完这 51.2 万行泄露的源码,我发现自己错了。
4574 20
|
5天前
|
人工智能 API 开发者
阿里云百炼 Coding Plan 售罄、Lite 停售、Pro 抢不到?最新解决方案
阿里云百炼Coding Plan Lite已停售,Pro版每日9:30限量抢购难度大。本文解析原因,并提供两大方案:①掌握技巧抢购Pro版;②直接使用百炼平台按量付费——新用户赠100万Tokens,支持Qwen3.5-Max等满血模型,灵活低成本。
1419 3
阿里云百炼 Coding Plan 售罄、Lite 停售、Pro 抢不到?最新解决方案