ubuntu使用Facebook的ATC模拟不同的网络类型

1 安装Ubuntu16系统

使用U盘安转Ubuntu 16 或者以上系统,该系统默认支持热点分享功能。安装教程:http://www.linuxidc.com/Linux/2016-04/130520.htm

2 创建无线热点

两种方式:

1. ubuntu利用系统自带的Wi-Fi热点GUI创建界面创建。

2. 其他linux系统如树莓派等使用命令行进行创建。

方式2请参考官方文档:https://www.raspberrypi.org/documentation/configuration/wireless/access-point.md

方式1请参考如下。

首先点击右上角的网络图标,然后拉到最下面,点击Edit Connections选项,进入如下界面:

点击Add,进入如下界面:

选择Wi-Fi,点击Create,进入如下界面:

填写Connection name,SSID,Mode选择Hotspot,其他值如上图所示。切换到Wi-Fi Security,如下图所示:

Security选择WPA &WPA2 Personal,设置热点的Password,切换到IPV4 Setting,如下图所示:

按照上图设置,切换到IPv6 Settings,如下图所示:

按照上图设置之后,点击Save。

2.1 使用无线热点

先让电脑连接有线网络,然后点击右上角的网络图标,再点击Connect to Hidden Wi-Fi Network(连接到隐藏网络选项),如下图所示:

Connection选择刚刚创建的Hotspot,点击Connect。

使用手机,如果能够搜索并连接到Hotspot,输入密码之后,如果能够正常上网,说明成功创建无线热点。

3 配置Facebook的ATC工具

3.1 安装pip命令行工具。

在terminal执行如下命令

sudo apt-get update  //更新软件源,否则执行下面的命令可能报错,Unable to locate package
sudo apt-get install python-pip python-dev build-essential
sudo pip install --upgrade pip

3.2 安装ATC相关的软件

在terminal执行如下命令

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

3.3 使用Django创建一个Web应用

1 在terminal执行如下命令

django-admin startproject Hotspot
cd Hotspot  //注意,以后所有操作目录都是Hotspot

2 打开Hotspot/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',
)

为了能在手机浏览器访问该Django Web应用,在ALLOWED_HOSTS后面添加如下内容:

ALLOWED_HOSTS = ['localhost','192.168.1.55'] //192.168.1.55是对应打开网页进行限速的IP地址,可以通过ifconfig命令获取或通过网络管理工具查看

允许所有终端访问可使用

ALLOWED_HOSTS = ['*'] 

3 打开Hotspot/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)),
]

4 更新Django数据库
在terminal执行如下命令

python manage.py migrate

3.4 添加常用网络类型的速度配置

ATC包含了常用的2G,3G,DSL等网络类型的速度配置,可以通过如下的方式添加到上节创建的Django Web应用。

1 安装git和curl

sudo apt-get install git
sudo apt-get install curl

2 下载ATC代码

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

3 添加facebook提供的通用的网络配置

cd augmented-traffic-control
utils/restore-profiles.sh localhost:8000

4 使用ATC和Django,在手机上模拟不同的网络

4.1 手机连接到无线热点

参考第2.1节,手机连接到无线热点,并且能够正常上网

4.2 运行ATC

在电脑的terminal执行如下命令。

sudo atcd --atcd-wan enp0s25 --atcd-lan wlp3s0

在Ubuntu 16上,enp0s25是有线网卡名称,wlp3s0是无线网卡名称,具体可以使用ifconfig命令查询。

成功运行ATC程序之后,Terminal上会出现Debug信息。

4.3 运行Django应用

新打开一个Terminal,进入Django Web应用(上节创建的Hotspot)所在的目录,启动Django应用,执行下面的命令

python manage.py runserver 0.0.0.0:8000

在电脑上的浏览器如果能够正常访问http://localhost:8000/,说明成功运行了Django应用。

在手机浏览器上,如果能够正常访问http://192.168.1.55:8000/(192.168.1.55是电脑的ip地址),就能通过该页面设置该手机使用不同类型的网络了。

 

ATC缺点:不能针对其他IP地址设置限速设置,没有整体进行限速设置的方式。

设置其他IP的限速如无网页浏览器的Wi-Fi智能设备等,需要手动修改/var/lib/atcd.db

可以使用sqllite3等命令行工具,或GUI的数据库工具sqliteman、sqlitebrowser来进行配置。

 

参考文章

https://www.jianshu.com/p/09193f19653e

http://blog.csdn.net/hualusiyu/article/details/49332303:查看硬件
http://forum.ubuntu.org.cn/viewtopic.php?t=468943:支持Hotspot的网卡

创建热点
http://blog.csdn.net/ac_dao_di/article/details/71908444

ATC
https://yq.aliyun.com/articles/20452
http://blog.csdn.net/piscesq329a/article/details/50092633
http://blog.csdn.net/w263044840/article/details/46469285
http://blog.csdn.net/itfootball/article/details/46763731
https://www.cnblogs.com/coderzh/p/AugmentedTrafficControl.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值