Linux

使用 bridge utils 通過 Linux 連接兩台電腦

  • March 18, 2019

我以前一直在使用橋接工具將我的網路連接電腦連接到我的 Linux 電腦上的單個介面。我遇到的問題是,當我安裝新的 Linux(使用 Slackware)時,兩台連接的電腦甚至無法相互 ping 通。基本上,電腦連接為:

client - server - client
          |
      [Internet]

所以我試圖讓兩個客戶端相互連接。兩者都可以訪問網際網路,測試時兩個客戶端都關閉了防火牆。

網際網路在 eth0 上,我有一個網橋設置為

bridge name     interfaces
br0             eth1, eth2

ip addr br0ip route show分別展示

inet 10.0.0.1/24 brd 10.0.0.255
10.0.0.0/24 dev br0  proto kernel  scope link  src 10.0.0.1

所以在我看來,來自我的客戶的呼叫應該直接路由到我的 br0 介面,這應該是正確的。

如何配置我的 Slackware 發行版以路由連接兩台網線的電腦以便能夠看到彼此,最好使用橋接工具?

伺服器上的防火牆是否禁用?可能有一些防火牆規則阻止了數據包。查看 iptables 的輸出(必須以 root 身份執行),如果您看到 ACCEPT 規則/策略以外的任何內容,那麼它們可能會阻止某些事情。

iptables -L

iptables -t nat -L

如果兩個設備無法相互 ping 通,則表明網橋設置不正確。網橋中不涉及 ip 協議路由。brctl show的輸出是什麼?那應該顯示類似

$ brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.003018a46079       no              eth1
                                                       eth2

如果兩個介面都沒有在此處列出,則需要更正。

您可能還想嘗試該brctl showmacs br0命令以及是否在該命令上方啟用了 STP(生成樹協議)brctl showstp br0。前者應該顯示兩個設備的 MAC 地址,而後者應該確保每個埠都處於轉發狀態

鑑於您說每個人都可以訪問網際網路,我假設所有介面都已啟動。如果不是以下應該這樣做。

ip link set br0 up
ip link set eth0 up
ip link set eth1 up
ip link set eth2 up

引用自:https://unix.stackexchange.com/questions/2696