一個網絡接口可能還不夠。網絡綁定允許多個網絡連接在單個邏輯接口上工作。我們這樣做是因為我們需要比單個連接處理更多的帶寬。或者,您可能希望在不丟失網絡連接的情況下在有線和無線網絡之間切換。
後者對我有用。在家工作的好處之一是,當天氣晴朗時,在陽光明媚的甲板上而不是在室內工作會很有趣。但是每次我這樣做時,我都會失去互聯網連接。 IRC、SSH、VPN——當至少有一些客戶端重新連接時,一切都消失了。本文介紹如何在您的 Fedora 30 筆記本電腦上設置網絡綁定,以將您的筆記本電腦擴展塢從有線連接無縫傳輸到 WiFi 連接。
在 Linux 上,接口綁定由綁定內核模塊處理。 Fedora 默認不啟用此功能,但它包含在 kernel-core 包中。這意味著啟用接口綁定只是一個命令。
sudo modprobe bonding
請注意,這只會在您重新啟動之前生效。要永久啟用接口綁定,請在 /etc/module-load.d 目錄中創建一個名為 bond.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 連接。 enp12s0u1 和 wlp2s0 是這裡感興趣的兩個接口。 (本練習中您不需要知道網絡設備的名稱,但如果您有興趣可以查看。 systemd.net-naming-scheme 手冊頁.. )
第一步是創建綁定接口。
sudo nmcli connection add type bond ifname bond0 con-name bond0
在本例中,連接接口的名稱是bond0。 “Con-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
如上,連接名稱指定為 更具描述性.. 請務必將 enp12s0u1 和 wlp2s0 替換為系統上相應的接口名稱。 為 WiFi 接口使用您自己的網絡名稱 (SSID)。我用“棉花”。 如果您的 WiFi 連接有密碼(當然有!),您需要將其添加到您的配置中。以下假設您正在使用 WPA2-PSK 確認
sudo nmcli connection modify bond-wifi wifi-sec.key-mgmt wpa-psk
sudo nmcli connection edit bond-wif
第二個命令將您帶到一個交互式編輯器,您可以在其中輸入密碼而無需登錄到 shell 歷史記錄。在下面鍵入以將密碼替換為實際密碼
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 網絡後,只需按上述方式啟動綁定接口。
微調債券
默認情況下,綁定接口使用“循環”模式。這會在接口之間均勻分配負載。但是,如果您同時擁有有線和無線連接,我們建議您使用有線連接。主動備份模式使這成為可能。您可以在創建接口時指定模式和主接口,也可以稍後使用此命令(綁定接口必須關閉)。
sudo nmcli connection modify bond0 +bond.options "mode=active-backup,primary=enp12s0u1"
這個 內核文檔 有更多關於綁定選項的信息。