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选项,进入如下界面:

ubuntu使用Facebook的ATC模拟不同的网络类型_第1张图片

点击Add,进入如下界面:

ubuntu使用Facebook的ATC模拟不同的网络类型_第2张图片

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

ubuntu使用Facebook的ATC模拟不同的网络类型_第3张图片

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

ubuntu使用Facebook的ATC模拟不同的网络类型_第4张图片

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

ubuntu使用Facebook的ATC模拟不同的网络类型_第5张图片

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

ubuntu使用Facebook的ATC模拟不同的网络类型_第6张图片

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

2.1 使用无线热点

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

ubuntu使用Facebook的ATC模拟不同的网络类型_第7张图片

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

你可能感兴趣的:(ubuntu使用Facebook的ATC模拟不同的网络类型)