如何將usb0和usb1介面合併到一個網路中?

如何將usb0和usb1介面合併到一個網路中?

我設定了三台設備,全部運行 Ubuntu 14.04。設定如下:

具有一台主機和兩台設備的網路設定。

我想要的是一種配置,其中兩個設備都可以連接到互聯網,但也可以相互連接。理想情況下,主機 PC 在從任一裝置連接時應具有相同的 IP。我嘗試了兩種可能的配置,但都失敗了。

1:usb0和usb1使用相同的IP和子網

主持人

iface usb0 inet static
    address 10.0.1.1
    netmask 255.255.255.0
    up route add 10.0.1.1 netmask 255.255.255.0

iface usb1 inet static
    address 10.0.1.1
    netmask 255.255.255.0
    up route add 10.0.1.1 netmask 255.255.255.0

設備0

iface usb0 inet static
    address 10.0.1.2
    netmask 255.255.255.0
    route add default gw 10.0.1.1

設備1

auto usb0
iface usb0 inet static
    address 10.0.1.3
    netmask 255.255.255.0
    route add default gw 10.0.1.1

!問題 !

僅設備 0 能夠連接。該設備可以 ping 通,並且可以連接到互聯網,但設備 1 完全無法參與遊戲。因此它也沒有網路連線。

2:usb0和usb1有不同的IP位址

主持人

iface usb0 inet static
    address 10.0.1.1
    netmask 255.255.255.0
    up route add 10.0.1.1 netmask 255.255.255.0

iface usb1 inet static
    address 10.0.2.1
    netmask 255.255.255.0
    up route add 10.0.2.1 netmask 255.255.255.0

設備0

iface usb0 inet static
    address 10.0.1.2
    netmask 255.255.255.0
    route add default gw 10.0.1.1

設備1

auto usb0
iface usb0 inet static
    address 10.0.2.2
    netmask 255.255.255.0
    route add default gw 10.0.2.1

!問題 !

我無法從 1 號設備 ping 通 10.0.1.1。

問題

如何連接兩個 USB 接口,以便形成一個更大的本地網絡,其中理想情況下每台計算機都有一個 IP 地址,連接到互聯網並能夠通過 SSH 訪問其他所有計算機?

答案1

您需要的是配置橋接。橋接的作用基本上是將一堆介面綁在一起,然後讓運行橋接的電腦充當交換器。 IP 位址是在橋接介面本身上配置的,而不是在組成介面上配置的。

基本上有兩種方法可以做到這一點,要么用兩個 USB 接口設置一個橋,然後使用 iptables 和可能的某種 NAT 將機器路由到互聯網,或者也可以只粘兩個 USB 接口作為單個網橋中的實體介面。這樣,您就可以讓 USB 介面直接連接到 LAN 並以這種方式存取網際網路。

您可以選擇哪一種對您的應用程式更有意義。

/etc/network/interfacesUSB 網路介面橋接到主網路的設定的配置 ( ) 可能看起來像這樣,假設您的主網路介面稱為 eth0。

iface eth0 inet manual
iface usb0 inet manual
iface usb1 inet manual

auto br0
iface br0 inet dhcp
  bridge_ports eth0 usb0 usb1

更多詳細資訊可以在Ubuntu 社群幫助維基

在此設定中,您的 USB 網路裝置將從網路中現有的 DHCP 伺服器取得 IP 位址,或在本機 LAN 中設定靜態 IP 位址。您的 PC 也將使用 DHCP 取得 IP。如果您這樣做,請確保您的 USB 連接裝置無法執行 DHCP 伺服器,否則可能會使網路的其他使用者交叉。 :-)

答案2

最終配置如下:

主持人

/etc/網路/接口

auto br0
iface br0 inet static 
    address 10.0.1.1
    netmask 255.255.255.0
    bridge_ports usb0 usb1
    pre-up ip addr flush dev usb1
    pre-up ip addr flush dev usb0

/etc/rc.local

sleep(15)
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward > /dev/null
iptables -P FORWARD ACCEPT
iptables -A POSTROUTING -t nat -j MASQUERADE -s 10.0.1.0/24

設備0

/etc/網路/接口

auto usb0
iface usb0 inet static
    address 10.0.1.2
    netmask 255.255.255.0
    dns-nameserver 8.8.8.8
    up route add default gw 10.0.1.1

設備1

/etc/網路/接口

auto usb0
iface usb0 inet static
    address 10.0.1.3
    netmask 255.255.255.0
    dns-nameserver 8.8.8.8
    up route add default gw 10.0.1.1

相關內容