Networking

如何通過 USB 連接將乙太網連接到主機網路?

  • February 14, 2017

我有一台單板電腦,我想連接到我的區域網路/網際網路連接。SBC 沒有乙太網埠,只有一個目前無法工作的嵌入式無線晶片。但它確實有 USB,我認為應該可以通過 USB 上的乙太網將它連接到我的工作站,然後進行某種橋接/轉發。我正在使用 Beagle Bone Black Wireless 和(目前)Arch Linux ARM am33x 作為“客戶端”。工作站是 Fedora 23。USB 上的乙太網正在工作,我可以通過 SSH 連接到 SBC。但是,我沒有設法從 SBC 連接到我的本地網路或 Internet。

我已經嘗試過的事情清單:

展品一:

這允許我通過 SSH 連接到客戶端。

客戶端上的配置/命令:

modprobe g_ether

netctl 配置:

Description='USB ethernet connection'

Interface=usb0

Connection=ethernet

IP=static

Address=('192.168.7.2/24')

DNS=('8.8.8.8')

#Gateway=('192.168.1.1')

## For IPv6 autoconfiguration

IP6=stateless

工作站上的配置:

ifconfig enp0s29u1u2 192.168.7.1

展品 b:

我厭倦了連接兩個介面(enp0s29u1u2是通過usb端的Eth介面,enp6s0面向我的本地網路和網際網路);以下程式碼在工作站上執行。我在這裡找到了這個:Linux 上兩個網路之間的路由?

echo 1 >> /proc/sys/net/ipv4/ip_forward
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i enp0s29u1u2 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o enp6s0 -j MASQUERADE
iptables --append FORWARD -i enp6s0 -o enp0s29u1u2 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables --append FORWARD -i enp0s29u1u2 -o enp6s0 -j ACCEPT       

首先,我保留了192.168.1.0/24LAN 和192.168.7.0/24USB 乙太網的 IP 地址。但是我無法到達我的網關或工作站下方的任何東西。我還嘗試給 Beagle Bone 一個192.168.1.*地址,但也沒有用。我可能在這裡遺漏了一些東西。路由可能?

展品 c:

我還嘗試在介面之間架起一座橋樑。

beaglebone 上的 Netctl 配置設置為如下所示:

描述=‘USB 乙太網連接’

Interface=usb0

Connection=ethernet

IP=static

Address=('192.168.1.210/24')

DNS=('8.8.8.8')

Gateway=('192.168.1.1')

## For IPv6 autoconfiguration

IP6=stateless

命令(工作站):

brctl addbr br0
brctl addif br0 enp6s0 enp0s29u1u2
ifconfig br0 192.168.1.202 (or some random free address)

我必須這樣做route add default gw 192.168.1.1才能在我的工作站上重新獲得 Internet 訪問權限。我也在 beaglebone 上做過,但也沒有成功。我不確定,但當我理解網橋時,它的行為應該就像我剛剛將設備連接到乙太網交換機(即網路成員可以像網橋不存在一樣進行通信;但它顯然需要一個單獨的ip所以我有點困惑,請給我提示)。

核心問題:

是否需要一些手動路由才能將 Beaglebone 集成到區域網路中並獲得 Internet 訪問權限或其他可能?感謝您的任何提示!當我正在尋找臨時解決方案時,Hackarounds 也很受歡迎。

你有echo 1 >> /proc/sys/net/ipv4/ip_forward

但應該是echo 1 > /proc/sys/net/ipv4/ip_forward

#Gateway=('192.168.1.1')網關在您的選項之一中被註釋掉。

您需要ip route add default via 192.168.1.1在單板電腦上執行此操作,以便它知道將網際網路流量發送到哪裡。192.168.1.1(打開的設備的IP在哪裡ip_forward。)

引用自:https://serverfault.com/questions/821245