FaceBook ATC 弱网测试工具环境搭建

工具简介

ATC是FaceBook开源的移动网络测试工具Augmented Traffic Control(ATC),能够方便的让我们模拟各种网络环境进行测试。

ATC有两个最吸引人的特点:

  • 在手机上通过Web界面就可以随时切换不同的网络环境。
  • 多个手机可以连接到同一个WIFI下,相互之间模拟的网络环境各不影响。

搭建步骤

一、基础准备

1. 硬件准备

我这里用的是水星(Mercury)MW150U 150M无线USB网卡(别问为什么,要是你用别的网卡可以支持ap模式且有驱动也是可以的,我之前用Ralink和360wifi因为驱动和网卡本身不支持ap模式踩的坑非常多),还有,如果有树莓派玩一玩就更好了

2. 系统

ubuntu 14.04 LTS 桌面版

二、配置ubuntu下wifi

1. 检查无线网卡连接情况

我的ubuntu是安装vmware下,所以要先点击右键连接到虚拟机上(右下角的USB图标)

图片1.png

连接上之后,在命令行输入:lsusb
如果显示f201:5370就是我们的无线网卡的信息,说明我们识别出我们的usb无线网卡

2. 安装hostapd 和 dhcp

简单的概念解释下:

  • hostapd
    通过Hostapd可以将无线网卡切换为AP/Master模式,通过修改配置文件,可以建立一个开放式的(不加密)的,WEP,WPA或WPA2的无线网络
  • dhcp
    简单的说ip管理
  • 安装
    apt-get install hostapd isc-dhcp-server
  • 验证是否安装成功
    分别敲入hostapd和dhcpd,显示命令详解则为成功
图片6.png

3. 配置hostapd

创建并编辑配置文件 ,在terminal中输入命令:

root@lufukeng:/#vi /etc/hostapd/hostapd.conf

配置内容如下:

interface=wlan0
driver=nl80211
ssid=autotest  //wifi名字
channel=10
hw_mode=g
macaddr_acl=0
auth_algs=3
wpa=2
wpa_passphrase=12345678 //密码
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
rsn_pairwise=TKIP CCMP

PS:除了wifi名字和密码,其他都可以一样,然后记得注释的反斜杠和内容要删掉

4.运行hostapd

terminal中输入以下命令:

root@lufukeng:/#nmcli nm wifi off
root@lufukeng:/#rfkill unblock wlan
root@lufukeng:/#killall hostapd
root@lufukeng:/#hostapd -B /etc/hostapd/hostapd.conf

hostapd -B是后台运行,-d是前台运行

图片7.png

5. 查询DNS,下一步备用

 root@lufukeng:/# nmcli dev list iface eth0 | grep IP4
 IP4.ADDRESS[1]:                         ip = 192.168.200.131/24, gw = 192.168.200.2
 IP4.DNS[1]:                             192.168.200.2
 IP4.DOMAIN[1]:                          localdomain
 IP4.WINS[1]:                            192.168.200.2

查询结果,DNS:192.168.200.2

6.配置dhcpd

root@lufukeng:/#vi /etc/dhcp/dhcpd.conf

输入以下内容:

subnet 192.168.0.0 netmask 255.255.255.0
    {
        range 192.168.0.2 192.168.0.10;
        option routers 192.168.0.1;
        option domain-name-servers 192.168.200.2;//查询的DNS,前面不用改
    }

7.设置wlan0

root@lufukeng:/#ifconfig wlan0 192.168.0.1 netmask 255.255.255.0

8.启动dhcp-server

root@lufukeng:/# touch /var/run/dhcp-server/dhcpd.pid
root@lufukeng:/# chmod 777 /var/run/dhcp-server/dhcpd.pid
root@lufukeng:/# dhcpd wlan0 -pf /var/run/dhcp-server/dhcpd.pid
图片8.png

9.IP转发

root@lufukeng:/#bash -c "echo 1 >/proc/sys/net/ipv4/ip_forward"

10.设置NAT

root@lufukeng:/#iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

到这里,如果手机连接wifi,并正常上网则说明成功。

三、下载并配置ATC

1.安装pip

root@lufukeng:/#apt-get install python-pip

通过pip安装ATC需要的django组件:

root@lufukeng:/#pip install atc_thrift atcd django-atc-api django-atc-demo-ui django-atc-profile-storage

2. 创建一个django工程以便使用ATC服务端app

root@lufukeng:/#django-admin startproject atcui

此时会在当前路径生成actui项目

3.修改ATC配置

切换到项目路径下,编辑配置文件

cd atcui/atcui
vi settings.py

在INSTALLED_APPS里添加如下内容:

'rest_framework',
'atc_api',
'bootstrap_themes',
'django_static_jquery',
'atc_demo_ui',
'atc_profile_storage',
图片5.png
 vi urls.py

将urlpatterns 内容改为一下内容:

from django.views.generic.base import RedirectView
from django.conf.urls import include

urlpatterns = [
        url(r'^admin/',admin.site.urls),
        url(r'^api/v1/',include('atc_api.urls')),
        url(r'^atc_demo_ui/',include('atc_demo_ui.urls')),
        url(r'^api/v1/profiles/',include('atc_profile_storage.urls')),
        url(r'^$',RedirectView.as_view(url='/atc_demo_ui/', permanent=False)),
    ]
图片4.png

最后切换到manage.py所在目录,更新django数据库,执行以下命令:

python manage.py migrate
图片3.png

4.设置网卡

配置完成然后可以运行了,这里使用网卡eth0作为公网连接,wlan0作为内网连接,启动时通过参数指定,执行以下命令:

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

5.运行ATC UI

执行启动命令:

python manage.py runserver 0.0.0.0:8000

这时通过手机浏览器访问192.168.0.1:8000,会显示没有配置过任何profile的网页,下面提供Facebook已经配置好的文件配置。

6.使用facebook已经配置好的网络配置文件

获取方式如下:

apt-get install git
git clone https://github.com/facebook/augmented-traffic-control.git
apt-get install curl
cd augmented-traffic-control
utils/restore-profiles.sh localhost:8000

好了,这个时候再次在手机浏览器上访问192.168.0.1:8000,就可以看到如下界面:

IMG_1313.JPG
IMG_1314.JPG

基本使用如下:

turn on   //打开
select   //选择
update Shaping  //更新,选择网络之后,点击更新
turn off  //关闭

7.启动脚本

为了方便,把以上操作步骤写在shell脚本中,每次开机之后,只要执行脚本就可以启动项目和wifi,暂时没有配置成开机启动脚本
start-up.sh

#!/bin/bash
nmcli nm wifi off
sudo rfkill unblock wlan
sudo killall hostapd
sleep 2
sudo hostapd -B /etc/hostapd/hostapd.conf
sleep 3
sudo ifconfig wlan0 192.168.0.1 netmask 255.255.255.0
sleep 1
sudo touch /var/run/dhcp-server/dhcpd.pid
sudo chmod 777 /var/run/dhcp-server/dhcpd.pid
sudo dhcpd wlan0 -pf /var/run/dhcp-server/dhcpd.pid
sleep 3
sudo bash -c "echo 1 >/proc/sys/net/ipv4/ip_forward"
sleep 1
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sleep 1
cd /home/lufukeng/Desktop/atcui/
nohup sh atcd.sh >atcd.log &
sleep 3
nohup sh start-atcserver.sh >atcserver.log &
sleep 3

atcd.sh

#!/bin/bash
atcd --atcd-wan eth0 --atcd-lan wlan0

start-atcserver.sh

#!/bin/bash
python manage.py runserver 0.0.0.0:8000

8.最后附上一份网络参数配置

Name (网络名称) 延迟(latency) 网络带宽(bandwidth) 丢包率(packet loss)
GPRS (good) 500 50 2
EDGE (good) 300 250 1.5
3G/HSDPA (good) 250 750 1.5
DIAL-UP (good) 185 40 2
DSL (poor) 70 2000 2
DSL (good) 40 8000 0.5
WIFI (good) 40 30000 0.2
Satellite 1500 - 0.2

可以根据自己的需要进行配置
至此,搭建结束,童鞋们可以根据自己的需要进行使用了。

参考文献

Facebook网络模拟测试工具ATC使用
Facebook/atc环境搭建总结

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容