首頁 > 軟體

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

2020-06-16 16:53:18

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

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

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

 

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

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

  1. 開啟終端
  2. 獲取當前連線狀態: nmcli con show
  3. 新增新的網橋: nmcli con add type bridge ifname br0
  4. 建立子網絡卡: nmcli con add type bridge-slave ifname eno1 master br0
  5. 開啟 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 命令 來檢視 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 命令為虛擬機器建立一個名為 br0.xml 的檔案:

  1. $ cat/tmp/br0.xml

新增以下程式碼:

  1. <network>
  2. <name>br0</name>
  3. <forwardmode="bridge"/>
  4. <bridgename="br0"/>
  5. </network>

如下所示執行 virsh命令:

  1. # virsh net-define/tmp/br0.xml
  2. # virsh net-start br0
  3. # virsh net-autostart br0
  4. # virsh net-list--all

輸出:

  1. NameStateAutostartPersistent
  2. ----------------------------------------------------------
  3. br0 active yesyes
  4. default inactive noyes

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

  1. $ manip
  2. $ man nmcli

 

關於作者

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

本文永久更新連結地址https://www.linuxidc.com/Linux/2018-04/151736.htm


IT145.com E-mail:sddin#qq.com