树莓派搭建弱网测试环境全纪录(2)

2,322 阅读3分钟

再接着上一篇树莓派搭建弱网测试环境全纪录(1)今天讲讲如何将树莓派设置成具有发射AP热点的能力以及如何在树莓派上安装ATC。

将树莓派设置成具有发射AP热点的能力

手动配置AP的步骤比较繁琐,可以使用rPi3-ap-setup.sh脚本进行自动化配置,执行以下命令,打码的两个参数分别对应热点密码和热点名称。

完成以上操作后,正常情况下就可以搜索到热点 ,但热点可能无法连接,或者提示密码错误,那么可以执行以下命令:

此时设置热点AP已完成,但连接后无法上网,所以还需要配置热点AP使用有线网卡的网络,如下图命令所示:

以上的规则需要设置为重启时自动配置,可以执行:

此时AP配置完成,可以通过连接树莓派的热点来上网了!

安装ATC

这里开始几乎可以说是一步一个坑……

以上AP设置完成后,可以开始部署ATC,步骤参考官方文档 Augmented Traffic Control https://github.com/facebook/augmented-traffic-control

下面主要说说遇到的各种坑和解决方案:

一、树莓派下载Django库——报错为TypeError: unsupported operand types for -=: 'Retry' and 'int'的问题

在尝试了各种方式后终于找到了原因:

树莓派自带的Linux系统附带了一个来自前寒武纪的pip版本,如果你不想花费数小时来调试与pip相关的问题,那么就必须升级它。

使用如下命令(记得要加sudo):

二、还会出现下图的这个问题

cd到atcui目录文件下找到settings.py文件并打开。

sudo nano settings.py 找到ALLOWED_HOSTS = [''] 在这里请求的host添加* 改为如下: ALLOWED_HOSTS = ['*'],如下图:

三、安装ATC依赖库出错

直接执行官网文档中的安装命令可能会出错:

如果安装过程中有报错,可以一个一个的安装:

四、atc is not running:ATC和最新版django-rest-framework不兼容

重新安装djangorestframework:

sudo pip install djangorestframework==3.4

五、atc not running:atcd启动时没有设置正确的网卡

执行完sudo python manage.py runserver 0.0.0.0:8000后打开http://localhost:8000页面上提示atc not running

可以看到eth0是网线,wlan0是AP无线热点,所以这里使用—atcd-wan和—atcd-lan来指定: 

sudo atcd --atcd-wan eth0 --atcd-lan wlan0 

执行成功会显示: 

DEBUG:AtcdVService:All tasks started 

DEBUG:AtcdVService:VService Active. Awaiting graceful shutdown. 

然后新再开启一个终端窗口执行: 

sudo python manage.py runserver 0.0.0.0:8000 

最后打开地址即可: 

http://localhost:8000/

最终效果(具体配置参考APP网络性能测试白皮书 这篇文章中的说明):

推荐阅读:

树莓派搭建弱网测试环境全纪录(1)

APP网络性能测试白皮书

APP耗电量测试白皮书

想要明白些道理,遇见些有趣的事 —— 离岛