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。

相关文章
|
4月前
|
负载均衡 网络协议 算法
|
13天前
|
缓存 Ubuntu Linux
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
通过本文,我们详细了解了 `yum`、`rpm`、`apt-get`和 `wget`的区别、常用命令以及在CentOS和Ubuntu中安装 `wget`的方法。`yum`和 `apt-get`是高层次的包管理器,分别用于RPM系和Debian系发行版,能够自动解决依赖问题;而 `rpm`是低层次的包管理工具,适合处理单个包;`wget`则是一个功能强大的下载工具,适用于各种下载任务。在实际使用中,根据系统类型和任务需求选择合适的工具,可以大大提高工作效率和系统管理的便利性。
80 25
|
18天前
|
Ubuntu Linux
Ubuntu Linux
背景 Ubuntu起源于南非,其名称“Ubuntu”来源于非洲南部祖鲁语或豪萨语,意为“人性”、“我的存在是因为大家的存在”,这体现了非洲传统的一种价值观。Ubuntu由南非计算机科学家马克·沙特尔沃斯(Mark Shuttleworth)创办,他创立了Canonical公司来推动Ubuntu的发展。Ubuntu的第一个版本于2004年发布,至今已经走过了近20个年头,成为了Linux发行版中的佼佼者。
28 4
Ubuntu Linux
|
2月前
|
Ubuntu Linux 开发者
Ubuntu20.04搭建嵌入式linux网络加载内核、设备树和根文件系统
使用上述U-Boot命令配置并启动嵌入式设备。如果配置正确,设备将通过TFTP加载内核和设备树,并通过NFS挂载根文件系统。
125 15
|
3月前
|
负载均衡 Ubuntu 应用服务中间件
nginx修改网站默认根目录及发布(linux、centos、ubuntu)openEuler软件源repo站点
通过合理配置 Nginx,我们可以高效地管理和发布软件源,为用户提供稳定可靠的服务。
235 13
|
4月前
|
存储 缓存 Ubuntu
Ubuntu Linux目录结构
理解Ubuntu Linux的目录结构对系统管理、维护和故障排除至关重要。每个目录都有其特定的用途和存放内容,通过了解这些目录,可以更高效地管理系统文件,确保系统的稳定运行。希望本文对你深入理解Ubuntu的目录结构有所帮助。
127 1
|
4月前
|
Ubuntu Linux 网络安全
linux系统ubuntu中在命令行中打开图形界面的文件夹
在Ubuntu系统中,通过命令行打开图形界面的文件夹是一个高效且实用的操作。无论是使用Nautilus、Dolphin还是Thunar,都可以根据具体桌面环境选择合适的文件管理器。通过上述命令和方法,可以简化日常工作,提高效率。同时,解决权限问题和图形界面问题也能确保操作的顺利进行。掌握这些技巧,可以使Linux操作更加便捷和灵活。
125 3
|
4月前
|
监控 负载均衡 网络协议
OSPF在大型网络中的应用:高效路由与可扩展性
OSPF在大型网络中的应用:高效路由与可扩展性
435 1
|
4月前
|
存储 网络协议 定位技术
OSPF路由汇总:优化网络的强大工具
OSPF路由汇总:优化网络的强大工具
110 1
|
5月前
|
Ubuntu Linux 测试技术
Linux系统之Ubuntu安装cockpit管理工具
【10月更文挑战第13天】Linux系统之Ubuntu安装cockpit管理工具
397 4
Linux系统之Ubuntu安装cockpit管理工具