如何通過 USB 連接將乙太網連接到主機網路?
我有一台單板電腦,我想連接到我的區域網路/網際網路連接。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/24
LAN 和192.168.7.0/24
USB 乙太網的 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
。)