文章参考:
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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。