新手区 docker 搭建 弱网测试环境 ATC

在路上 · 2018年08月13日 · 最后由 在路上 回复于 2020年10月26日 · 5185 次阅读
本帖已被设为精华帖!

前言

完成效果图:

我的环境: Ubuntu16.04 64bit、Python 2.7.12、Django1.8.7

环境要求
  Python2.7+
    查看当前 python 版本:python --version
  Django1.7+
    查看 Django 版本:
      命令行中先输入 python,
      然后依次输入 import django
            django.VERSION
        然后回车即可看到版本号,Ctrol + D 退出编辑。
     这里写图片描述

  注意:千万不要卸载 Python3.4!!!

     千万不要卸载 Python3.4!!!

     千万不要卸载 Python3.4!!!

      由于很多软件关联了 python 如果卸载了,其他软件也会被自动卸载!!!!

1、软件环境准备

a) 安装 pip

    sudo apt-get install python-pip python-dev build-essential   
    sudo pip install --upgrade pip   

b) 然后通过 pip 安装 ATC,必须使用 sudo

sudo pip install atc_thrift atcd django-atc-api django-atc-demo-ui django-atc-profiorage

c) 安装 Django1.8.7,一定要使用 sudo

sudo pip install Django==1.8.7

2、安装并启动 ATC docker 镜像

备注:如果安装过程中,因为部分软件版本过旧导致安装失败,可以先运行 sudo apt-get dist-upgrade,更新所有的软件:
会提示你要下载多少软件,已经多少 M 大小,你回车选择是,之后就自动安装了。
最后更新完成了。
如果想要安装相应的软件,自需输入 sudo apt-get install 软件名

docker run -it --privileged --net=host --rm atcd/atc

会自动检查,如果本地存在,会直接启动,如果本地没有就会从云端下载。

启动完成后,即可访问:http://localhost:8000/ ,进入 ATC 界面

3、准备无线网卡

别浪费时间,直接买一个免驱动的无线网卡

推荐使用 linux 免驱动的无线网卡(普通无线网卡需要手动安装驱动,可能会碰到很多问题)

改网卡的相关设置,这两个命令运行完可以 ctrol + C 强制结束(wan 为有线网卡名称,lan 为无线网卡名称 )

sudo atcd --atcd-lan wlx00026fb96d31  --atcd-wan enp3s0

wlx00026fb96d31 为无线网卡名,enp3s0 为有限网卡名

网卡名来自于 ifconfig -a

4、导入 facebook 的网络配置

apt-get install git

git clone https://github.com/facebook/augmented-traffic-control.git

apt-get install curl

cd augmented-traffic-control

# 将网络配置文件加载到指定 ATC 服务中

utils/restore-profiles.sh 0.0.0.0:8000

加载后的 ATC profiles 如下图所示:

5、创建 wifi

ubuntu18.04 设置方式:https://blog.csdn.net/u012491646/article/details/80219973

以下为 ubuntu16.04 设置方式:

(1)新建 wifi

ubuntu16.04 打开方式如下:

点击:“编辑连接”

(2)配置 wifi




设置 mode=ap

(3)使 wifi 生效



6、ATC 环境 ok 了,可以使用了

至此,可用其他手机连接 wifi,并访问http://ATC_IP:8000/atc_demo_ui/进行网络配置了

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 31 条回复 时间 点赞
0x88 回复

好吧

@zailushang 哈哈 千万不要卸载 Python3.4!!! ubuntu 和 mac 类 linux 环境 系统默认带的 Py2 Py3 都尽量不要动.动了 你就知道有多少依赖了. 你重复说了三遍, 我感受到了深深的怨念.

恒温 将本帖设为了精华贴 08月13日 18:52
在路上 回复

怕啥,apt–get 有自动补全功能,删了大不了重新装一次,我看谁不爽就删谁。

之前一直想玩,但没玩动。如果 2G/3G/4G 能有一套国内运营商的配置就好了。😂

spring-ssh 回复

配置都是可以自定义的,可以自己调研一眼国内的网络环境,然后配置使用

以前用树莓派搭过

da-pengTT 回复

niubility

da-pengTT 回复

用树莓派效果咋样?好玩吗?

效果可以:写过博文:http://www.suwan.club/2018/07/26/raspberry/raspberry-weak-network/;开发测试都可用

排版不是太好~主要看这个吧:http://www.eeboard.com/bbs/thread-99776-1-1.html

da-pengTT 回复

树莓派设备在某宝买的吗? 有链接吗?:grinning

https://item.jd.com/16326961928.html 你要准备 1.树莓派 3+(这个集成了 Wi-Fi) 2. usb 转串口 3.内存卡 然后 1.烧录系统 2.usb 转串口 系统设置 3. ssh 连接设置 4.Ap ATC 环境安装(从 0 开始,大概半天时间吧;看着难~实际操作起来还行)

da-pengTT 回复

多谢哈,我玩玩

在路上 回复

尴尬了,哈哈哈,一直没有多大长进。多谢啦

楼主,因为我们现在已经没有有线网络了,如果使用两个无线网卡,一个用于连外网,一个用于建 AP 网络,这样可行么。您文章中的脚本需要改哪些地方呢?

剪烛 回复

只需要修改这里,网卡号修改一下。

顺便说一下,剪烛同学,我是 15 年听小道消息认识的你,那是你还在迅雷。

在路上 有没有什么比较好的弱网测试工具? 中提及了此贴 12月05日 11:25

@da-pengTT 您好,打扰一下,我在树莓派上搭建 atc,在修改 atc 的网络方案后,再随便访问一个网路,必定会造成系统整个卡死,日志停留在这里。请问您遇见过么?有没有可能的原因?多谢多谢。

simple 专栏文章:[精华帖] 社区历年精华帖分类归总 中提及了此贴 12月13日 14:44
simple [精彩盘点] TesterHome 社区 2018 年 度精华帖 中提及了此贴 01月07日 12:08

ATC 可以搭建在 Mac mini(自带无线网卡)+docker 吗

阿三 回复

可以啊

在路上 回复

我目前搭建情况:Mac mini 已经搭建好 docker+ATC ,可以访问到 ATC 网站. 卡在安装 pip 那一步,是在 Mac mini 安装 pip(Mac 没有 apt-get 命令),还是在 ATC 容器安装 pip 等操作?

阿三 回复

在系统安装 pip,安装 pip 是为了安装 TAC 的前端代码

在路上 回复

那 Mac mini 安装 pip(Mac 没有 apt-get 命令) 或者 Mac 要使用 apt-get 非常麻烦.试了下没成功,果断放弃了

阿三 回复

问问题之前,可以先搜索一下,谢谢

阿三 回复

一定要学会搜索,搜索尝试几套方案不成功之后,再问别人,这样效率高一些,成长快一些

在路上 实时音视频质量评估方案 中提及了此贴 08月14日 19:29

你们能部署成功?
Could not find a version that satisfies the requirement django-atc-profiorage (from versions: )
No matching distribution found for django-atc-profiorage
现在 django-atc-profiorage 改名叫 django-atc-profile-storage 了,而 django-atc-profile-storage 的 This version of Django REST Framework requires Python 3.5, but you're trying
to install it on Python 2.7.
djangorestframework 又不支持 python2.7,你用 python3 装了吧,在运行 docker run -it --privileged --net=host --rm atcd/atc 的时候,dacd 这个又是 python2.7 环境,这不是扯犊子吗?

我用 python2 安装的,去年安装成功并使用过一段时间

在路上 回复

嗯,现在鹅厂出的那个 QNET 感觉更加便捷了

对,那个更好用

Authorize 应该是未授权把
无法用过浏览器访问,可以试试scrcpy

老马 回复

哈哈,是啊,如果动了,就是一步一个坑,提示一个错误,解决一个错误,安装一个软件

大佬,ATC 里的 Authorize 是干啥用的?另外针对一些无法通过浏览器访问的设备,有方法可以控制吗?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册