本帖最后由 651927693 于 2013-11-2 00:25 编辑
参考了很多人的方案,不过最后还是靠自己完成了!
曲折,有时觉得自己特慢热,学东西特慢! 不过最后的最后, 我成功地完成了!
好了,言归正传。
Beaglebone Black 本身就是一个DHCP服务器,网络地址为192.168.7.0/30, 整个网络只有192.168.7.0、192.168.7.1、192.168.7.2、192.168.7.3。其中,第一个和第四个不能用,分别是网络号和广播的地址,剩下的192.168.7.2是Beaglebone Black自己的地址(熟悉BBB的朋友都应该很熟悉这个地址,这个地址就是你第一次在浏览器里键入,用以打开BBB的IDE地址)。所以,只有一个192.168.7.1是分配给我的电脑的。(当然了,这些都是可以更改的)
我的主机是Ubuntu 12.04 LTS, 有两张有线网卡eth0、eth1。平时我上网是都是用路由器登陆学校里的***,然后在通过路由器上网。但是只要我插上BBB,我就不能上网了,也无法操作BBB。很头疼。也正是为了解决这个问题,我才开始折腾的。
打开Network Manager, 发现两个网卡的地址竟然是同一个!!!不知道为什么。于是我就打算不用这个软件,直接设置文件系统里的相关文件来上网,顺便让我的BBB也可以享一下福。
首先,我们要做的就是为两张网卡分别设置静态地址:
在终端中键入:
sudo vim /etc/network/interfaces
在打开的文件中输入:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.8.2
gateway 192.168.8.1
netmask 255.255.255.0
auto eth1
iface eth1 inet static
address 192.168.7.1
netmask 255.255.255.252
broadcast 192.168.7.3
其中,192.168.8.0/24是我的路由器的LAN口网络,192.168.8.1是直接和我的电脑相连的那个interface的网络地址,192.168.8.2是我的eth0的网络地址。
192.168.7.0/30是我的BBB所在的网络,其他的几个地址之前都已经提到过了。
当然了,既然已经放弃了Network Manager, 就需要配置DNS服务:
在终端中键入:
sudo vim /etc/resolv.conf
然后添加我最近的一个DNS服务器:
不过,为了防止重启之后,DNS的信息被重置,还需要新建一个文件:
vim /etc/resolvconf/resolv.conf.d/tail
文件里添加
这样,Ubuntu应该就可以同时连接BBB和Internet了。
为了能够让BBB通过Ubuntu上网,还需要做以下设置:
设置Ubuntu的ipv4包转发规则
设置BBB的网关为Ubuntu,并设置DNS
首先设置Ubuntu的ipv4包转发规则:
打开/etc/sysctl.conf,找到net.ipv4.ip_forward=1,去掉前面的注释;
键入一下命令是改动生效:
通过iptables实现包转发:
sudo iptables -A POSTROUTING -t nat -j MASQUERADE
可能还需要以下命令:
echo 1>/proc/sys/net/ipv4/ip_forward
这样,Ubuntu的部分就设置好了。
接着我们设置BBB,比较简单,键入:
在打开的文件末尾添加:
/usr/sbin/route add default gw 192.168.7.1
echo "nameserver 10.10.0.21" >> /etc/resolv.conf
于是,大功告成了!
|