歡迎光臨
每天分享高質量文章

如何在 Linux 裡使用 nmcli 新增網橋 | Linux 中國

為了使用網橋而關閉桌面 Linux 上的 NetworkManager 顯然是不明智的。nmcli 可以建立一個永久的網橋而不需要編輯任何檔案。
— Vivek Gite


致謝
編譯自 | https://www.cyberciti.biz/faq/how-to-add-network-bridge-with-nmcli-networkmanager-on-linux/ 
 作者 | Vivek Gite
 譯者 | kennethXia ? 共計翻譯:1 篇 貢獻時間:3 天

Q:我正在電腦上使用 Debian Linux 9 “stretch”。 我想用 NetworkManager 來建網橋。但是根本就沒有新增 br0的選項。我該如何在 Linux 裡使用 nmcli 來為 NetworkManager 建立或者新增網橋呢?

網橋沒什麼特別的,只是把兩個網路連在一起。它工作在資料鏈路層,即 OSI 模型的第二層。網橋經常用在虛擬機器或別的一些軟體中。為了使用網橋而關閉桌面 Linux 上的 NetworkManager 顯然是不明智的。nmcli 可以建立一個永久的網橋而不需要編輯任何檔案。

本文將展示如何使用 NetworkManager 的命令列工具 nmcli 來建立網橋。

如何使用 nmcli 來建立/新增網橋

使用 NetworkManager 在 Linux 上新增網橋介面的步驟如下:

☉ 開啟終端
☉ 獲取當前連線狀態: nmcli con show
☉ 新增新的網橋: nmcli con add type bridge ifname br0
☉ 建立子網絡卡: nmcli con add type bridge-slave ifname eno1 master br0
☉ 開啟 br0: nmcli con up br0

讓我們從細節層面看看如何建立一個名為 br0 的網橋。

獲取當前網路配置

你可以透過 NetworkManager 的 GUI 來瞭解本機的網路連線:

Getting Network Info on Linux

也可以使用如下命令列來檢視:

  1. $ nmcli con show

  2. $ nmcli connection show --active

View the connections with nmcli

我有一個使用網絡卡 eno1 的 “有線連線”。我的系統還有一個 VPN 介面。我將要建立一個名為 br0 的網橋,並連線到 eno1

如何建立一個名為 br0 的網橋

  1. $ sudo nmcli con add ifname br0 type bridge con-name br0

  2. $ sudo nmcli con add type bridge-slave ifname eno1 master br0

  3. $ nmcli connection show

Create bridge interface using nmcli on Linux

你也可以禁用 STP:

  1. $ sudo nmcli con modify br0 bridge.stp no

  2. $ nmcli con show

  3. $ nmcli -f bridge con show br0

最後一條命令展示了禁用 STP 後的網橋引數:

  1. bridge.mac-address:                     --

  2. bridge.stp:                             no

  3. bridge.priority:                        32768

  4. bridge.forward-delay:                   15

  5. bridge.hello-time:                      2

  6. bridge.max-age:                         20

  7. bridge.ageing-time:                     300

  8. bridge.multicast-snooping:              yes

如何開啟網橋

你必須先關閉 Wired connection 1 ,然後開啟 br0

  1. $ sudo nmcli con down "Wired connection 1"

  2. $ sudo nmcli con up br0

  3. $ nmcli con show

使用 ip 命令[1] 來檢視 IP 資訊:

  1. $ ip a s

  2. $ ip a s br0

Build a network bridge with nmcli on Linux

附錄: 如何在 KVM 上使用 br0

現在你可以使用 KVM/VirtualBox/VMware workstation 建立的 VM(虛擬機器)來直接連線網路而非透過 NAT。使用 vi 或者 cat 命令[2]為虛擬機器建立一個名為 br0.xml 的檔案:

  1. $ cat /tmp/br0.xml

新增以下程式碼:

  1.  br0

  •   mode="bridge"/>

  •   name="br0" />

  • 如下所示執行 virsh命令:

    1. # virsh net-define /tmp/br0.xml

    2. # virsh net-start br0

    3. # virsh net-autostart br0

    4. # virsh net-list --all

    輸出:

    1. Name State Autostart Persistent

    2. ----------------------------------------------------------

    3. br0 active yes yes

    4. default inactive no yes

    閱讀 man 頁面獲取更多資訊:

    1. $ man ip

    2. $ man nmcli

    關於作者

    作者是 nixCraft 的建立者、老練的系統管理員和一個 Linux/Unix shell 指令碼程式設計培訓師。他為全球客戶和各種公司工作,包括 IT,教育,國防,空間研究以及非營利組織。 他的聯絡方式 Twitter[3]、 Facebook[4]、 Google+[5]


    via: https://www.cyberciti.biz/faq/how-to-add-network-bridge-with-nmcli-networkmanager-on-linux/

    作者:Vivek Gite[7] 譯者:kennethXia 校對:wxy

    本文由 LCTT 原創編譯,Linux中國 榮譽推出

    贊(0)

    分享創造快樂