使用的设备是树莓派3b+,本身自带一个无线网卡,如果你树莓派没有显示器,一般是要通过ssh来进行登录控制,所以我们需要每台有两个无线网卡:
1.一个用来连接wifi,通过设备远程ssh控制树莓派
2.一个用来与其他树莓派进行组网。
树莓派自带一个网卡,那么需要再购置一个usb网卡。
可以买带天线或者不带的,区别不大,带天线的只是信号好一些,一般插上就能用,不需要安装驱动。
设备准备好之后
假设你已经配好了ssh连接
我们登录树莓派
sudo vim /etc/wpa_supplicant/wpa_supplicant.conf
打开wifi连接配置文件
这里主要是由于我一个路由器有两个接口,所以配了两条,有的时候其中某条会不好使,这样写可以让他自动选择可以用的。
接下来,配置接口文件
sudo vim /etc/network/interfaces
添加如下内容:
auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.1.249
netmask 255.255.255.0
gateway 192.168.1.1
wpa_conf /etc/wpa_supplicant/wpa_supplicant.conf
auto wlan1
iface wlan1 inet static
address 10.0.0.1
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.0.0.255
wireless-channel 3
wireless-essid mypi
wireless-mode ad-hoc
wlan0 我们用来连接wifi,这里我们使用static 固定ip地址,方便ssh连接
wlan1 我们用来组网
几台树莓派地址要设置在一个子网内,例如 10.0.0.1/24 10.0.0.2/24 10.0.0.3/24 。。 。。
并且需要注意 多台树莓派的wireless-essid要保持一致,才可以进行组网,这相当于adhoc网络的标识
wireless-mode设置为ad-hoc
完成配置后重启树莓派,使配置生效。
输入以下命令确认配置是否生效
sudo ifconfig
sudo iwconfig
注意,如果设置的wireless essid 是一样的,不出意外,每台树莓派iwconfig中的cell会一样,就可以进行组网了
此时如果还并不能ping通
我个人的理解是,adhoc网络是无中心网络,arp协议有可能运转不起来,所以也就无法确定物理地址,也就ping不通了
我们可以配置一下arp表
首先查看arp表 arp -v 看看是否缺少表项
配置的命令为
sudo arp -s 10.0.0.3(目的主机ip) xx:xx:xx:xx:xx:xx(目的主机的物理地址)
在两端都配置上,这样应该就可以ping通了