我有一台单板计算机,我想将其连接到局域网/互联网连接。SBC 没有以太网端口,只有一个嵌入式无线芯片,目前无法工作。但它有 USB,我认为应该可以通过 USB 上的以太网将其连接到我的工作站,然后进行某种桥接/转发。我使用 Beagle Bone Black Wireless 和(目前)Arch Linux ARM am33x 作为“客户端”。工作站是 Fedora 23。USB 上的以太网正在工作,我可以通过 SSH 进入 SBC。但是我没能从 SBC 进入我的本地网络或互联网。
我已经尝试过的事情列表:
附件一:
这使得我可以通过 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
才能重新获得工作站的互联网访问权限。我也在 beaglebone 上这样做了,但也没有成功。我不确定,但据我了解,网桥应该表现得像我刚刚将设备连接到以太网交换机一样(即网络成员可以像没有网桥一样进行通信;但它显然需要一个单独的 IP,所以我有点困惑,请给我提示)。
核心问题:
是否需要一些手动路由来将 Beaglebone 集成到局域网并获得互联网访问或其他什么?感谢您的任何提示!我也希望有 hackarounds,因为我正在寻找一个临时解决方案。
答案1
你有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
。)