BBB(二):Windows或Ubuntu主机通过USB分享网络给BBB
2016-02-23 23:00
756 查看
写在前面
Windows下通过ssh、串口等的连接,做一些基本操作还是可以的。后面安装、编译Image、文件共享等可能就要在Linux下了。因此就有了这样一篇总结性的文章。”Beaglebone Black 本身就是一个DHCP服务器,网络地址为192.168.7.0/30, 整个网络只有192.168.7.0、192.168.7.1、192.168.7.2、192.168.7.3。其中,第一个和第四个不能用,分别是网络号(Network)192.168.7.0和广播的地址(Broadcast)192.168.7.3,剩下的192.168.7.2是Beaglebone Black自己的地址(熟悉BBB的朋友都应该很熟悉这个地址,这个地址就是你第一次在浏览器里键入,用以打开BBB的IDE地址)。所以,只有一个192.168.7.1是分配给我的电脑的。(当然了,这些都是可以更改的)。“
关于网络这块,我找了鸟哥的网站的一些文章加强自己对IP地址、子网掩码Netmask、网关Gateway和DNS这四个我们常常见到的参数的理解,这里也做个笔记,以后方便查看。
http://linux.vbird.org/linux_server/0110network_basic.php#loopback
Class A : 0.xx.xx.xx ~ 127.xx.xx.xx Class B : 128.xx.xx.xx ~ 191.xx.xx.xx Class C : 192.xx.xx.xx ~ 223.xx.xx.xx
私有IP(局域网IP) Class A:10.0.0.0 - 10.255.255.255 Class B:172.16.0.0 - 172.31.255.255 Class C:192.168.0.0 - 192.168.255.255
192.168.0.0~192.168.0.255 這個 C Class 的 Netmask 說明, Netmask里面的为1的都是NetID 第一個 IP: 11000000.10101000.00000000.00000000 最後一個 : 11000000.10101000.00000000.11111111 |----------Net_ID---------|-host--| Netmask : 11111111.11111111.11111111.00000000 <== Netmask 二進位 : 255 . 255 . 255 . 0 <== Netmask 十進位 特別注意喔,netmask 也是 32 位元,在數值上,位於 Net_ID 的為 1 而 Host_ID 為
Netmask: 255.255.255.0 <==網域定義中,最重要的參數 Network: 192.168.0.0 <==第一個 IP Broadcast: 192.168.0.255 <==最後一個 IP(终止位,HostID全为1时) 可用以設定成為主機的 IP 數: 192.168.0.1 ~ 192.168.0.254
當 Host_ID 全部為 0 以及全部為 1 的時後該 IP 是不可以使用的,因為 Host_ID 全部為 0 的時後,表示 IP 是該網段的 Network ,至於全部為 1 的時後就表示該網段最後一個 IP ,也稱為 Broadcast.Netmask作用就是用来确定Net_ID和Host的位置,进而确定网络被分为几段, Network表示第一个IP(不可用), Broadcast表示最后一个IP(不可用)。
Net_ID 使用了 25 bits 時,划分成兩個子網路之後的 Net_ID 與 Host_ID 為何? 11000000.10101000.00000000.0 0000000 多了一個 Net_ID 了, 為 0 (第一個子網) 11000000.10101000.00000000.1 0000000 多了一個 Net_ID 了, 為 1 (第二個子網) |----------Net_ID-----------|-host--| 第一個子網路 Network: 11000000.10101000.00000000.0 0000000 192.168.0.0 Broadcast: 11000000.10101000.00000000.0 1111111 192.168.0.127 |----------Net_ID-----------|-host-| Netmask: 11111111.11111111.11111111.1 0000000 255.255.255.128 第二個子網路 Network: 11000000.10101000.00000000.1 0000000 192.168.0.128 Broadcast: 11000000.10101000.00000000.1 1111111 192.168.0.255 |----------Net_ID-----------|-host-| Netmask: 11111111.11111111.11111111.1 0000000 255.255.255.128
[root@www ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 192.168.0.254 0.0.0.0 UG 0 0 0 eth0 # 上面輸出的資料共有八個欄位,你需要注意的有幾個地方: # Destination :其實就是 Network 的意思; # Gateway :就是与該接口连接的中转者的 IP 啦!若為 0.0.0.0 表示不需要額外的 IP; # Genmask :就是 Netmask 啦!與 Destination 組合成為一部主機或網域; # Flags :共有多個旗標可以來表示該網域或主機代表的意義: # U:代表該路由可用; # G:代表該網域需要經由 Gateway 來幫忙轉遞; # H:代表該行路由為一部主機,而非一整個網域; # Iface :就是 Interface (网卡) 的意思。
在linux主机上查看
在BBB中的terminal下的操作
上面的usb0就是BBB的网络信息,Mask最后的252代表1111 1100这里的Host ID就只有2位,而Broadcast(终止IP)为192.168.7.3,所以Network(起始IP)为192.168.7.0,这点也可以从route的destination中看出来。可用IP为:192.168.7.1和192.168.7.2。由于BBB已经被分配了192.168.7.2,所以为了让主机和它通讯,我们需要让它们在同一个网段下,因此这里的eth4就被分配了192.68.7.1这个IP。
1. Windows下分享网络
Windows下的网络分享,网友已经总结得很好了,图文并茂,我就直接引用过来,大家有需要的直接按图操作即可。一线通系列:/article/10909387.html
/article/1817567.html 一线通+troubleshooting
http://lanceme.blogspot.com/2013/06/windows-7-internet-sharing-for.html
2.Ubuntu下分享网络
参考地址:https://elementztechblog.wordpress.com/2014/12/22/sharing-internet-using-network-over-usb-in-beaglebone-black/我按自己的操作步骤画了一个图来加深理解:
BBB上的操作(以root登录BBB):
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"></span><pre name="code" class="plain">ssh 192.168.7.2 -l root ifconfig usb0 192.168.7.2 route add default gw 192.168.7.1 vim /etc/resolv.conf nameserver 8.8.8.8 nameserver 180.76.76.76
8.8.8.8是谷歌的DNS域名服务器,180.76.76.76是百度的DNS域名服务器。主要作用是将平时常常见到的网址,转化为IP地址。
另开一个terminal设置主机的网络。我这里是设置通过主机eth0分享网络给BBB的eth1来上网(根据个人情况修改)
sudo su iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE iptables --append FORWARD --in-interface eth1 -j ACCEPT echo 1 > /proc/sys/net/ipv4/ip_forward
然后进入到BBB下的terminal。这里的nameserver是通过插入网线,右上角的网络信息看到的,primary DNS
其他参考:
http://bbs.eeworld.com.cn/thread-431507-1-1.html
http://lanceme.blogspot.com/2013/06/windows-7-internet-sharing-for.html 脚本
https://github.com/IEEERobotics/bot/wiki/BBB-Setup
http://shallowsky.com/blog/hardware/talking-to-beaglebone.html
相关文章推荐
- 基于TCP实现的最简单RPC demo
- httpd-2.2.22安装
- tcp接收队列
- 详解GIT网络传递数据的加密解密过程
- 伪造http的ip地址,突破ip限制的投票程序
- TCP连接状态
- MATLAB BP神经网络中仿真结果与手工计算不符合的解决办法
- BZOJ1491 [NOI2007] 社交网络
- bitmap 获取网络图片
- 通过HttpURLConnection获得服务器的数据简单模型
- vim简单配置(cp:http://www.linuxidc.com/Linux/2014-02/96396.htm)
- libcurl库进行http通讯-一些基本的函数
- libcurl库进行http通讯-一些基本的函数
- 【跨站关】网络信息安全攻防学习平台跨站过关的彩蛋
- https://projecteuler.net/problem=6
- 深入探讨 Java 类加载器 https://www.ibm.com/developerworks/cn/java/j-lo-classloader/
- 网络编程3---常用服务器编程模型
- 《python核心编程》读书笔记--第16章 网络编程
- https://projecteuler.net/problem=5
- B树、B-树、B+树、B*树的特点 及其性能比较 http://blog.csdn.net/panghuizl/article/details/6921631