您好,登錄后才能下訂單哦!
文章參考:
http://blog.csdn.net/itfootball/article/details/46763731
http://www.cnblogs.com/coderzh/p/AugmentedTrafficControl.html
硬件準備:水星(Mercury)MW150U 150M無線USB網卡(別問為什么,要是你用別的可以支持ap模式且有驅動也是可以的,我之前用Ralink和360wifi配置得要死)
系統版本:ubuntu 14.04 LTS 桌面版(新系統設置root密碼:sudo passwd)
分兩部分:配置ubuntu下wifi和配置ATC項目
一、配置ubuntu下wifi
1.查看無線網卡是否連接:lsusb
如果顯示f201:5370就是我們的無線網卡的信息,說明我們識別出我們的usb無線網卡
2.安裝hostapd 和 dhcp
hostapd: 通過Hostapd可以將無線網卡切換為AP/Master模式,通過修改配置文件,可以建立一個開放式的(不加密)的,WEP,WPA或WPA2的無線網絡
dhcp:簡單的說ip管理
安裝:apt-get install hostapd isc-dhcp-server
驗證是否安裝成功:分別敲入hostapd和dhcpd,顯示命令詳解則為成功
3.配置hostapd
vi /etc/hostapd/hostapd.conf
hostapd.conf#####################################
interface=wlan0
driver=nl80211
ssid=autotest //wifi名字
channel=10
hw_mode=g
macaaddr_acl=0
auth_algs=3
wpa=2
wpa_passphrase=12345678 //密碼
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
rsn_pariwise=TKIP CCMP
####################################################
4.運行hostapd(可以直接跳到第5步,第四步是踩的坑)
執行:hostapd -B /etc/hostapd/hostapd.conf
報錯:nl80211: Could not configure driver mode
nl80211 driver initialization faile
解決辦法:nmcli nm wifi off
rfkill unblock wlan
5.運行hostapd
執行:nmcli nm wifi off
rfkill unblock wlan
killall hostapd
hostapd -B /etc/hostapd/hostapd.conf(-B后臺運行)
或者
hostapd -d /etc/hostapd/hostapd.conf(-d直接運行)
6.查詢DNS,第7步用
執行:nmcli dev list iface eth0 | grep IP4
root@lufukeng:/# nmcli dev list iface eth0 | grep IP4
IP4.ADDRESS[1]: ip = 192.168.200.131/24, gw = 192.168.200.2
IP4.DNS[1]: 192.168.200.2
IP4.DOMAIN[1]: localdomain
IP4.WINS[1]: 192.168.200.2
7.配置dhcpd
vi /etc/dhcp/dhcpd.conf
#####################################################
subnet 192.168.0.0 netmask 255.255.255.0
{
range 192.168.0.2 192.168.0.10;
option routers 192.168.0.1;
option domain-name-servers 192.168.200.2;//查詢的DNS,前面不用改
}
######################################################
8.設置wlan0
ifconfig wlan0 192.168.0.1 netmask 255.255.255.0
9.啟動dhcp-server
touch /var/run/dhcp-server/dhcpd.pid
chmod 777 /var/run/dhcp-server/dhcpd.pid
dhcpd wlan0 -pf /var/run/dhcp-server/dhcpd.pid
10.IP轉發
bash -c "echo 1 >/proc/sys/net/ipv4/ip_forward"
11.設置NAT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
到這里,如果手機連接wifi,并正常上網則說明成功。
二、下載配置ATC
1.安裝pip
終端輸入:sudo apt-get install python-pip
通過pip安裝ATC需要的django組件:
pip install atc_thrift atcd django-atc-api django-atc-demo-ui django-atc-profile-storage
2.創建一個django工程以便使用ATC服務端app
django-admin startproject atcui
3.修改ATC配置
cd atcui/atcui
vi settings.py
在INSTALLED_APPS里添加如下內容,
'rest_framework',
'atc_api',
'bootstrap_themes',
'django_static_jquery',
'atc_demo_ui',
'atc_profile_storage',
vi urls.py
將urlpatterns 內容改為一下內容:
from django.views.generic.base import RedirectView
from django.conf.urls import include
urlpatterns = [
url(r'^admin/',admin.site.urls),
url(r'^api/v1/',include('atc_api.urls')),
url(r'^atc_demo_ui/',include('atc_demo_ui.urls')),
url(r'^api/v1/profiles/',include('atc_profile_storage.urls')),
url(r'^$',RedirectView.as_view(url='/atc_demo_ui/', permanent=False)),
]
cd atcui //切換到manage.py所在目錄
更新django數據庫:python manage.py migrate
4.配置完成然后可以運行了,這里使用網卡eth0作為公網連接,wlan0作為內網連接,啟動時通過參數指定
sudo atcd --atcd-wan eth0 --atcd-lan wlan0
5.運行ATC UI
python manage.py runserver 0.0.0.0:8000
這時通過手機瀏覽器訪問192.168.0.1:8000,會顯示沒有配置過任何profile的網頁,下面提供Facebook已經配置好的文件配置。
6.facebook已經在自己的工程中為我們配置了常見網絡的配置,可以通過如下方式添加
apt-get install git
git clone https://github.com/facebook/augmented-traffic-control.git
apt-get install curl
cd augmented-traffic-control
utils/restore-profiles.sh localhost:8000
7.ATC使用
turn on //打開
select //選擇
update Shaping //更新,選擇網絡之后,點擊更新
turn off //關閉
最后附上一份網絡參數配置(僅供參考):
網絡帶寬(bandwidth)
延遲(latency)
丟包率(packet loss)
錯包率(corrupted packets)
亂序率(packets ordering)
Name Latency Bandwidth Packet-loss
GPRS (good) 500 50 2
EDGE (good) 300 250 1.5
3G/HSDPA (good) 250 750 1.5
DIAL-UP (good) 185 40 2
DSL (poor) 70 2000 2
DSL (good) 40 8000 0.5
WIFI (good) 40 30000 0.2
Satellite 1500 - 0.2
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。