我有一台单板计算机,我想连接到我的局域网/互联网连接。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
。)