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中國