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