在Ubuntu 20.04中,我们经常面临同时连接多个网络接口的情况。为了确保数据流量通过首选接口进行传输,我们可以设置网络接口的优先级。本文将介绍如何在Ubuntu 20.04中设置网络接口优先级,并验证当前使用的接口。
设置网络接口优先级
以下是在Ubuntu 20.04中设置网络接口优先级的步骤:
- 打开终端并以管理员身份登录到系统。
- 使用适当的文本编辑器(例如nano或vi)打开NetworkManager的配置文件。配置文件通常位于
/etc/NetworkManager/conf.d/
目录中。 - 在配置文件中,为每个网络接口设置优先级。可以使用
interface-name
选项指定接口名称,并使用autoconnect-priority
选项设置优先级。较小的数值表示较高的优先级。
vi /etc/NetworkManager/conf.d/10-globally-managed-devices.conf
- 示例配置文件内容如下:
[device] interface-name=usb0 autoconnect-priority=10 [device] interface-name=eth0 autoconnect-priority=20 [device] interface-name=eth1 autoconnect-priority=30
设置usb0(4G)优先级最高, 其次是eth0和eth1。
- 保存并关闭文件。
- 重新启动NetworkManager服务,以使更改生效。在终端中执行以下命令:
sudo systemctl restart NetworkManager
验证当前使用的网络接口
要验证当前使用的网络接口,可以执行以下步骤:
- 打开终端并以管理员身份登录到系统。
- 使用
ip addr
命令或ifconfig
命令来查看网络接口的详细信息。例如:
ip addr 或者 ifconfig xxx
- 在命令输出结果中,查找带有有效IP地址和活动连接状态的接口。通常,该接口是当前用于网络连接的接口。
假设我们设置eth0优先(重复设置网络接口优先级的步骤), usb0和eth1是其次 , 我们在执行ping www.baidu.com
的时候可以执行ifconfig eth0
可以观察到只有eth0的RX packets
和TX packet
数据包在变化 其他网络接口没有变化。
# ifconfig eth0 eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.27 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::ccd0:72a6:d5b6:28c4 prefixlen 64 scopeid 0x20<link> ether fe:a5:5e:9b:f5:30 txqueuelen 1000 (Ethernet) RX packets 8113 bytes 927198 (927.1 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 148 bytes 15166 (15.1 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 38
同理 , 假设我们设置usb0优先(重复设置网络接口优先级的步骤), eth0和eth1是其次 , 我们在执行ping www.baidu.com
的时候可以执行ifconfig usb0
可以观察到只有usb0的RX packets
和TX packet
数据包在变化 其他网络接口没有变化。
# ifconfig usb0 usb0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.5.245.146 netmask 255.0.0.0 broadcast 10.255.255.255 inet6 fe80::ac0c:29ff:fea3:9b6d prefixlen 64 scopeid 0x20<link> ether ae:0c:29:a3:9b:6d txqueuelen 1000 (Ethernet) RX packets 162 bytes 17128 (17.1 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 202 bytes 26349 (26.3 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
请注意,根据网络配置和路由规则,系统可能会动态选择网络接口进行通信。因此,实际使用的接口可能会根据目标IP地址和路由表的规则而有所变化。
总结
通过设置网络接口的优先级,我们可以确保数据流量通过首选接口进行传输,提高网络连接的可靠性和灵活性。在Ubuntu 20.04中,我们可以通过编辑NetworkManager的配置文件来设置网络接口的优先级,并使用命令行工具验证当前使用的接口。