Linux中国

绑定 WiFi 和以太网,以使网络间移动更轻松

有时一个网络接口是不够的。网络绑定允许将多条网络连接与单个逻辑接口一起工作。你可能因为需要给单条连接更多的带宽而这么做,或者你可能希望在有线和无线网络之间来回切换而不会丢失网络连接。

我是后面一种情况。在家工作的好处之一是,当天气晴朗时,在阳光明媚的阳台而不是在室内工作是很愉快的。但每当我这样做时,我都会失去网络连接。IRC、SSH、VPN,一切都断开了,客户端重连至少需要一会。本文介绍了如何在 Fedora 30 笔记本上设置网络绑定,以便从笔记本扩展坞的有线连接无缝切换到 WiFi。

在 Linux 中,接口绑定由内核模块 bonding 处理。默认情况下,Fedora 没有启用此功能,但它包含在 kernel-core 软件包中。这意味着启用接口绑定只需一个命令:

sudo modprobe bonding

请注意,这只会在你重启之前生效。要永久启用接口绑定,请在 /etc/modules-load.d 目录中创建一个名为 bonding.conf 的文件,该文件仅包含单词 bonding

现在你已启用绑定,现在可以创建绑定接口了。首先,你必须获取要绑定的接口的名称。要列出可用的接口,请运行:

sudo nmcli device status

你将看到如下输出:

DEVICE          TYPE      STATE         CONNECTION
enp12s0u1       ethernet  connected     Wired connection 1
tun0            tun       connected     tun0
virbr0          bridge    connected     virbr0
wlp2s0          wifi      disconnected  --
p2p-dev-wlp2s0  wifi-p2p  disconnected  --
enp0s31f6       ethernet  unavailable   --
lo              loopback  unmanaged     --
virbr0-nic      tun       unmanaged     --

在本例中,有两个(有线)以太网接口可用。 enp12s0u1 在笔记本电脑扩展坞上,你可以通过 STATE 列知道它已连接。另一个是 enp0s31f6,是笔记本电脑中的内置端口。还有一个名为 wlp2s0 的 WiFi 连接。 enp12s0u1wlp2s0 是我们在这里感兴趣的两个接口。(请注意,阅读本文无需了解网络设备的命名方式,但如果你感兴趣,可以查看 systemd.net-naming-scheme 手册页。)

第一步是创建绑定接口:

sudo nmcli connection add type bond ifname bond0 con-name bond0

在此示例中,绑定接口名为 bond0con-name bond0 将连接名称设置为 bond0。直接这样做会有一个名为 bond-bond0 的连接。你还可以将连接名设置得更加人性化,例如 “Docking station bond” 或 “Ben”。

下一步是将接口添加到绑定接口:

sudo nmcli connection add type ethernet ifname enp12s0u1 master bond0 con-name bond-ethernet
sudo nmcli connection add type wifi ifname wlp2s0 master bond0 ssid Cotton con-name bond-wifi

如上所示,连接名称被设置为更具描述性。请务必使用系统上相应的接口名称替换 enp12s0u1wlp2s0。对于 WiFi 接口,请使用你自己的网络名称 (SSID)替换我的 “Cotton”。如果你的 WiFi 连接有密码(这当然会有!),你也需要将其添加到配置中。以下假设你使用 WPA2-PSK 身份验证

sudo nmcli connection modify bond-wifi wifi-sec.key-mgmt wpa-psk
sudo nmcli connection edit bond-wif

第二条命令将进入交互式编辑器,你可以在其中输入密码,而无需将其记录在 shell 历史记录中。输入以下内容,将 password 替换为你的实际密码。

set wifi-sec.psk password
save
quit

现在,你可以启动你的绑定接口以及你创建的辅助接口。

sudo nmcli connection up bond0
sudo nmcli connection up bond-ethernet
sudo nmcli connection up bond-wifi

你现在应该能够在不丢失网络连接的情况下断开有线或无线连接。

警告:使用其他 WiFi 网络时

在指定的 WiFi 网络间移动时,此配置很有效,但是当远离此网络时,那么绑定中使用的 SSID 就不可用了。从理论上讲,可以为每个使用的 WiFi 连接添加一个接口,但这似乎并不合理。相反,你可以禁用绑定接口:

sudo nmcli connection down bond0

回到定义的 WiFi 网络时,只需按上述方式启动绑定接口即可。

微调你的绑定

默认情况下,绑定接口使用“ 轮询 round-robin ”模式。这会在接口上平均分配负载。但是,如果你有有线和无线连接,你可能希望更喜欢有线连接。 active-backup 模式能实现此功能。你可以在创建接口时指定模式和主接口,或者之后使用此命令(绑定接口应该关闭):

sudo nmcli connection modify bond0 +bond.options "mode=active-backup,primary=enp12s0u1"

内核文档提供了有关绑定选项的更多信息。

via: https://fedoramagazine.org/bond-wifi-and-ethernet-for-easier-networking-mobility/

作者:Ben Cotton 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出


本文转载来自 Linux 中国: https://github.com/Linux-CN/archive

对这篇文章感觉如何?

太棒了
0
不错
0
爱死了
0
不太好
0
感觉很糟
0
雨落清风。心向阳

    You may also like

    Leave a reply

    您的邮箱地址不会被公开。 必填项已用 * 标注

    这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理

    More in:Linux中国

    Linux中国

    关于Linux防火墙iptables的面试问答

    Nishita Agarwal是Tecmint的用户,她将分享关于她刚刚经历的一家公司(印度的一家私人公司Pune)的面试经验。在面试中她被问及许多不同的问题,但她是iptables方面的专家,因此她想分享这些关于iptables的问题和相应的答案给那些以后可能会进行相关面试的人。 所有的问题和相应的答案都基于Nishita Agarwal的记忆并经过了重写。 嗨,朋友!我叫Nishita Agarwal。我已经取得了理学学士学位,我的专业集中在UNIX和它的变种(BSD,Linux)。它们一直深深的吸引着我。我在存储方面有1年多的经验。我正在寻求职业上的变化,并将供职于印度的P
    Linux中国

    Lets Encrypt 已被所有主流浏览器所信任

    旨在让每个网站都能使用 HTTPS 加密的非赢利组织 Lets Encrypt 已经得了 IdenTrust的交叉签名,这意味着其证书现在已经可以被所有主流的浏览器所信任。从这个里程碑事件开始,访问者访问使用了Lets Encrypt 证书的网站不再需要特别配置就可以得到 HTTPS 安全保护了。 Lets Encrypt 的两个中级证书 ...
    Linux中国

    SSL/TLS 加密新纪元 – Lets Encrypt

    根据 Let's Encrypt 官方博客消息,Let's Encrypt 服务将在下周(11 月 16 日)正式对外开放。 Let's Encrypt 项目是由互联网安全研究小组(ISRG,Internet Security Research Group)主导并开发的一个新型数字证书认证机构(CA,Certificate ...