Linux(22) Linux设置网络优先级顺序

简介: Linux(22) Linux设置网络优先级顺序

Ubuntu 20.04中,我们经常面临同时连接多个网络接口的情况。为了确保数据流量通过首选接口进行传输,我们可以设置网络接口的优先级。本文将介绍如何在Ubuntu 20.04中设置网络接口优先级,并验证当前使用的接口。

设置网络接口优先级

以下是在Ubuntu 20.04中设置网络接口优先级的步骤:

  1. 打开终端并以管理员身份登录到系统。
  2. 使用适当的文本编辑器(例如nano或vi)打开NetworkManager的配置文件。配置文件通常位于/etc/NetworkManager/conf.d/目录中。
  3. 在配置文件中,为每个网络接口设置优先级。可以使用interface-name选项指定接口名称,并使用autoconnect-priority选项设置优先级。较小的数值表示较高的优先级。
vi /etc/NetworkManager/conf.d/10-globally-managed-devices.conf
  1. 示例配置文件内容如下:
[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。

  1. 保存并关闭文件。
  2. 重新启动NetworkManager服务,以使更改生效。在终端中执行以下命令:
sudo systemctl restart NetworkManager

验证当前使用的网络接口

要验证当前使用的网络接口,可以执行以下步骤:

  1. 打开终端并以管理员身份登录到系统。
  2. 使用ip addr命令或ifconfig命令来查看网络接口的详细信息。例如:
ip addr 
或者 
ifconfig xxx
  1. 在命令输出结果中,查找带有有效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的配置文件来设置网络接口的优先级,并使用命令行工具验证当前使用的接口。

相关文章
|
7天前
|
安全 Linux 网络安全
Web安全-Linux网络协议
Web安全-Linux网络协议
23 4
|
12天前
|
网络协议 算法 网络性能优化
C语言 网络编程(十五)套接字选项设置
`setsockopt()`函数用于设置套接字选项,如重复使用地址(`SO_REUSEADDR`)、端口(`SO_REUSEPORT`)及超时时间(`SO_RCVTIMEO`)。其参数包括套接字描述符、协议级别、选项名称、选项值及其长度。成功返回0,失败返回-1并设置`errno`。示例展示了如何创建TCP服务器并设置相关选项。配套的`getsockopt()`函数用于获取这些选项的值。
|
7天前
|
机器学习/深度学习 安全 网络协议
Web安全-Linux网络命令
Web安全-Linux网络命令
10 1
|
12天前
|
NoSQL Linux Redis
Linux Redis 服务设置开机自启动
【9月更文挑战第2天】在 Linux 系统中,可使用两种方法设置 Redis 开机自启动:一是通过创建 `redis.service` 文件并利用 systemd 进行管理,包括定义服务参数和启动脚本;二是编辑 `/etc/rc.local` 文件,在其中添加启动命令。推荐使用 systemd 方法,因为它更符合现代 Linux 系统的设计理念。设置完成后,可通过 `sudo systemctl status redis.service` 检查服务状态。
|
3天前
|
网络协议 Linux
Linux 网络配置
了解基本命令与权限后,如何让Linux系统联网?可通过编辑`/etc/sysconfig/network-scripts/`下的`ifcfg-ethX`文件配置网卡,其中`ethX`代表第X块网卡。对于DHCP自动获取或静态IP,需设置`BOOTPROTO`参数,并指定IP、子网掩码和网关等。配置完成后,运行`/etc/init.d/network restart`重启网络。DNS可在`/etc/resolv.conf`中设置,添加`nameserver`行即可,无需重启网卡。配置好后,可用`ifconfig`查看IP信息,并通过远程工具如SecureCRT连接服务器。
13 0
|
10天前
|
域名解析 负载均衡 网络协议
Linux网络接口配置不当所带来的影响
总而言之,Linux网络接口的恰当配置是保证网络稳定性、性能和安全性的基础。通过遵循最佳实践和定期维护,可以最大程度地减少配置错误带来的负面影响。
35 0
|
13天前
|
网络协议
网络优先级cgroup 【ChatGPT】
网络优先级cgroup 【ChatGPT】
|
14天前
|
Linux 调度
linux中几种任务的优先级
linux中几种任务的优先级
|
15天前
|
Linux
linux内核执行fork时对写时复制的设置
linux内核执行fork时对写时复制的设置
|
23天前
|
存储 Linux 网络安全
【Azure 存储服务】如何把开启NFS 3.0协议的Azure Blob挂载在Linux VM中呢?(NFS: Network File System 网络文件系统)
【Azure 存储服务】如何把开启NFS 3.0协议的Azure Blob挂载在Linux VM中呢?(NFS: Network File System 网络文件系统)