ubuntu使用Facebook的ATC模擬不同的網絡類型

原文鏈接:https://www.jianshu.com/p/09193f19653e

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章