欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[ATC]Facebook开源弱网模拟工具

程序员文章站 2022-05-10 18:39:01
...

需要注意如下:1.笔者使用了linux USB网卡,是让手机去链接制定开启服务的LinuxServer,2.在启动服务的时候需要制定内网网卡名和外网网卡名,这样手机选择内网网卡的时候速度被被限制影响,外网网卡还可以继续访问否则会提示ATC is not running。 3.笔者在自己的H5服务器上成功的搭建了ATC这套系统,中间解决了include问题,queue找不到的问题,页面样式丢失等问题。

 

在我们之前的网络测试中,主要是限制网速来模拟弱网络环境,而实际中弱网络时,网络延时,丢包率都会有变化,所以使用网速+丢包率+延时来定义一种网络环境更加合理

本篇文章介绍ATC工具环境的搭建和使用,搭建方法来自Facebook官方github中的说明,https://github.com/facebook/augmented-traffic-control,这里做一些翻译和补充

 

1、要使用ATC,首先需要在linux下创建热点,方法可以参照《在Virtualbox的Ubuntu上创建无线(WiFi)热点》。

2、安装pip,终端输入sudo apt-get install python-pip

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

pip install atc_thrift atcd django-atc-api django-atc-demo-ui django-atc-profile-storage

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

 

django-admin startproject atcui
cd atcui
5、进入atcui目录,注意这里有两层目录哦,编辑settings.py

 

[ATC]Facebook开源弱网模拟工具
            
    
    博客分类: android atc弱网facebook 

在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',
我的最终填完是这样的,

 

[ATC]Facebook开源弱网模拟工具
            
    
    博客分类: android atc弱网facebook 

6、编辑urls.py,导入

from django.views.generic.base import RedirectView
在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)),
我这最终是这样,与官网格式有点不同,这里是个数组

 

[ATC]Facebook开源弱网模拟工具
            
    
    博客分类: android atc弱网facebook 

7、 跟新django数据库,

 

python manage.py migrate
8、配置完成然后可以运行了,这里使用网卡eth0作为公网连接,wlan0作为内网连接,启动时通过参数指定

 

 

sudo atcd --atcd-wan eth0 --atcd-lan wlan0
9、运行ATC UI 

 

 

python manage.py runserver 0.0.0.0:8000
10、这时通过手机浏览器访问192.168.0.1:8000(热点的网关设置的是192.168.0.1的话)就能看到控制页面了,

 

 Note:我用了4台手机去打开,结果只有谷歌的儿子们可以正常打开,这可能是由于其他rom没有谷歌服务框架导致的,我尝试在其他手机装chrome却无法启动

11、facebook已经在自己的工程中为我们配置了常见网络的配置,可以通过如下方式添加

    

git clone https://github.com/facebook/augmented-traffic-control.git
下载代码完成后运行
utils/restore-profiles.sh localhost:8000
再刷新手机浏览器页面,就能看到预制的网络配置了
[ATC]Facebook开源弱网模拟工具
            
    
    博客分类: android atc弱网facebook 
如果要切换配置,只需点击配置旁边的“Select”按钮,在点击上方的“Update Shaping”按钮即可
[ATC]Facebook开源弱网模拟工具
            
    
    博客分类: android atc弱网facebook 
实测了一下,网速确实有变化,但是丢包率和延时这两个参数通过外围不好观察是不是生效