Beaglebone Black 利用Ubuntu上网
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
复制代码
于是,大功告成了!
|