写在前面
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下的网络分享,网友已经总结得很好了,图文并茂,我就直接引用过来,大家有需要的直接按图操作即可。
2.Ubuntu下分享网络
参考地址:https://elementztechblog.wordpress.com/2014/12/22/sharing-internet-using-network-over-usb-in-beaglebone-black/
我按自己的操作步骤画了一个图来加深理解:
BBB上的操作(以root登录BBB):
ssh 192.168.7.2 -l root
route add default gw 192.168.7.1
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
echo "nameserver 180.76.76.76" >> /etc/resolv.conf
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下,这里的nameserver是通过插入网线,右上角的网络信息查看到的,primary DNS
其他参考:
开启远程桌面
sudo apt-get install tightvncserver
vim ~/.vnc/xstartup
删除#x-terminal-emulator那行的井号
vncserver :1
宿主机上vncviewer 192.168.7.2:1
关闭远程桌面vncserver -kill :1