Linux
使用 bridge utils 通過 Linux 連接兩台電腦
我以前一直在使用橋接工具將我的網路連接電腦連接到我的 Linux 電腦上的單個介面。我遇到的問題是,當我安裝新的 Linux(使用 Slackware)時,兩台連接的電腦甚至無法相互 ping 通。基本上,電腦連接為:
client - server - client | [Internet]
所以我試圖讓兩個客戶端相互連接。兩者都可以訪問網際網路,測試時兩個客戶端都關閉了防火牆。
網際網路在 eth0 上,我有一個網橋設置為
bridge name interfaces br0 eth1, eth2
ip addr br0
並ip 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