facebook atc弱网环境搭建和踩坑总结
facebook atc介绍
Augmented Traffic Control(又名atc)是一种模拟网络状况的工具。由facebook开源,是一个允许开发人员控制设备与互联网连接的项目。atc可以模拟不同的网络条件,包括控制带宽,延迟,数据包丢失、数据包损坏、数据包重排序等几个因素都可以由atc来控制。atc运行在网关,可以控制连接到该网络的手机,设备的网络,atc有一个web界面,通过这个界面可以来切换不同的网络情况。atc内部使用了iptables和tc,因此只支持linux平台。
下面介绍facebook atc在 ubuntu 18.04(使用vmware 安装的虚拟机)系统下facebook atc 的安装和使用。
准备环境:
1、用vmware装个ubuntu
2、准备一个无线网卡,建议选择一个linux免驱的无线网卡,不然在开启热点的时候会提示失败。
ubuntu设置wifi热点功能
ubuntu需要利用hostapd和dhcp开启ap热点,首先安装hostapd和dhcp
sudo apt-get install hostapd isc-dhcp-server
然后编辑/etc/hostapd/hostapd.conf文件,内容如下图:
- ssid 为wifi名称
- wpa_passphrase 为wifi密码
接着启动hostapd服务
sudo hostapd /etc/hostapd/hostapd.conf
如果没报错并搜到热点证明启动ap热点成功,如果有报错可以用以下命令解决:
sudo nmcli radio wifi off
sudo rfkill unblock wlan
如果提示hostapd进程已存在,则需要先杀掉进程
sudo killall hostapd
配置dhcp
编辑文件/etc/dhcp/dhcpd.conf, 内容如下图:
- subnet为子网范围,netmask为子网掩码
- range为可分配的IP地址范围
- option router 为配置的网关
- option domain-name-servers 为配置的dns,我用的8.8.8.8,即谷歌的dns服务器
设置无线网卡接口地址
sudo ifconfig wlx00026fb9727b 192.168.179.1 netmask 255.255.255.0
启动dhcp-server服务
sudo dhcpd wlx00026fb9727b -pf /var/run/dhcp-server/dhcpd.pid
若有提示pid或leases文件错误,就按照提示就去创建文件并赋予权限
sudo touch /var/lib/dhcp/dhcpd.leases
chmod a+x /var/lib/dhcp/dhcpd.leases
若开启dhcp服务没有提示报错,则代表开启成功,此时wifi应该可以连上,但是还不可以上网。
设置IP转发
sudo bash -c "echo 1 >/proc/sys/net/ipv4/ip_forward"
设置NAT转发
sudo iptables -t nat -A POSTROUTING -o ens33 -j MASQUERADE
因为设置步骤较多,可以写成2个脚本,ap-start.sh, ap-stop.sh。一切顺利的话,此时wifi应该可以连上了
配置facebook atc
首先安装python2.7和pip,和django
sudo apt-get install python
sudo apt-get install python-pip
sudo apt-get install django
安装atc的组件
pip install atc_thrift atcd django-atc-api django-atc-demo-ui django-atc-profile-storage
创建atc工程
django-admin startproject atcui
cd atcui
配置setting.py 的 INSTALLED_APPS
INSTALLED_APPS = (
...
# Django ATC API
'rest_framework',
'atc_api',
# Django ATC Demo UI
'bootstrap_themes',
'django_static_jquery',
'atc_demo_ui',
# Django ATC Profile Storage
'atc_profile_storage',
)
配置atcui/urls.py
from django.views.generic.base import RedirectView
from django.conf.urls import include urlpatterns = [
...
# Django ATC API
url(r'^api/v1/', include('atc_api.urls')),
# Django ATC Demo UI
url(r'^atc_demo_ui/', include('atc_demo_ui.urls')),
# Django ATC profile storage
url(r'^api/v1/profiles/', include('atc_profile_storage.urls')),
url(r'^$', RedirectView.as_view(url='/atc_demo_ui/', permanent=False)),
]
更新数据库
python manage.py migrate
启动atc
sudo atcd --atcd-wan ens33 --atcd-lan wlx00026fb9727b
不过启动atc的时候我遇到了https://github.com/facebook/augmented-traffic-control/issues/302 这里所说的问题,加上里面说的参数就解决了
--atcd-dont-drop-packets
启动atc web
python manage.py runserver 0.0.0.0:8000
导入facebook默认的几个配置文件
utils/restore-profiles.sh localhost:
这时用手机连上wifi热点,访问 http://192.168.179.1:8000
此时可以看到下图
使用方法为
turn on
select
update shaping
然后就大功告成了,可以试着切换不同的模拟网络试试效果。
参考文章:
https://www.cnblogs.com/coderzh/p/AugmentedTrafficControl.html
https://blog.csdn.net/itfootball/article/details/46763731
facebook atc弱网环境搭建和踩坑总结的更多相关文章
- Facebook ATC弱网环境搭建
用户的网络环境千姿百态,弱网的.高延时的.丢包的.常有用户反馈偶发bug,我们测试人员却始终无法复现,根据用户的描述,开发排查可能是网络不稳定导致的,所以急需建个弱网环境来测试. 弱网工具简介: Au ...
- [转]FaceBook ATC 弱网测试工具环境搭建
工具简介 ATC是FaceBook开源的移动网络测试工具Augmented Traffic Control(ATC),能够方便的让我们模拟各种网络环境进行测试. ATC有两个最吸引人的特点: 在手机上 ...
- Fiddler如何模拟弱网环境进行测试
1.模拟弱网环境 打开Fiddler,Rules->Performance->勾选 Simulate Modem Speeds,勾选之后访问网站会发现网络慢了很多 2.Fiddler弱网的 ...
- App-IOS与Android弱网环境测试
弱网环境下App的功能是否正常使用,是否会发生Crash的等情况? 1.IOS ios系统一般自带弱网环境测试,可以通过设置各种网络环境,模拟弱网环境,如3G,wifi,very bad Networ ...
- Fiddler实战之使用Fiddler模拟弱网环境(限速)
1.模拟弱网环境 打开Fiddler,Rules->Performance->勾选 Simulate Modem Speeds,勾选之后访问网站会发现网络慢了很多 2.Fiddler弱网的 ...
- Linux系统搭建GitLab---阿里云Centos7搭建Gitlab踩坑
一.简介 GitLab,是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目安装. 它拥有与GitHub类似的功能,能 ...
- Opencv环境配置及踩坑
Opencv环境配置及踩坑 1.什么是Opencv OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux.Windows.Android和[ ...
- Pytorch及Yolov5环境配置及踩坑
Pytorch及Yolov5环境配置及踩坑 1.何为Yolov5 yolo是计算机视觉方面用来进行目标检测的一个十分出名的开源框架,我搜不到官方的对此概括性的定义,但实际上也没什么必要,更重要的是会使 ...
- Charles-模拟弱网环境
在做弱网测试时,经常需要模拟各种网络环境,Charles恰好也提供了网络限制的功能,我们可以在"Proxy->Throttle Settings"路径下找到它,如下图所示. ...
随机推荐
- Ubuntu 14.04远程登录服务器
本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/51285545 本文讲述在Ubuntu ...
- [下载]Oracle LOB字段编辑工具
OraLobEditor 是Oracle LOB (CLOB, BLOB) 字段编辑工具. 查看.编辑LOB (CLOB, BLOB)字段(plain text, RTF, image, hex, h ...
- WinRTXamlToolkit在Win8.1实现统计图
[注1]WinRTXamlToolkit是免费控件,不过很久不更新了,而且网上的资源很少.后来我发现syncfusion控件有免费的community版本,并且有详细文档,所以就转过去使用syncfu ...
- 0823关于整理MySQL死锁
-- 更多的是需要理解 http://hedengcheng.com/?p=577 -- 何登成 关于WHERE的提取http://www.cnblogs.com/metoy/p/5545580.ht ...
- jQuery中的closest()和parents()的差别
jQuery中的closest()和parents()的差别 jQuery中closest()和parents()的作用非常类似,都是向上寻找符合选择器条件的元素,可是他们之间有一些细微的差别,官网也 ...
- MX2怎样利用Fiddler进行网络数据抓包
首先须要保证PC与手机在同一局域网内或有独立公网IP, 下面以在同一局域网为例(保证手机能訪问到这台PC机器): 1. PC端配置 1). 安装Fiddler 2). 开启Fiddler下面功能: ...
- [深入理解Android卷一全文-第七章]深入理解Audio系统
由于<深入理解Android 卷一>和<深入理解Android卷二>不再出版,而知识的传播不应该由于纸质媒介的问题而中断,所以我将在CSDN博客中全文转发这两本书的全部内容. ...
- UVa 572 - Oil Deposits (简单dfs)
Description GeoSurvComp地质调查公司负责探測地下石油储藏. GeoSurvComp如今在一块矩形区域探測石油.并把这个大区域分成了非常多小块.他们通过专业设备.来分析每一个小块中 ...
- 轻快的VIM(五):复制
操作相同文本的时候复制尤其有效,在Windows中我们都习惯了先用鼠标选择文本 而Vim下则不用那么麻烦,你甚至可以使用可视模式操作,但这里先略过 我在这一节主要说说命令模式下的复制 在讲复制之前我要 ...
- 国外物联网平台初探(四):Ayla Networks
定位 Ayla企业软件解决方案为全球部署互联产品提供强大的工具 功能 Ayla的IoT平台包含3个主要组成部分: (1) Ayla嵌入式代理Ayla Embedded Agents (2) Ayla云 ...