zoukankan      html  css  js  c++  java
  • ATC 环境搭建

    弱网络

    工具简介

    ATC是FaceBook开源的移动网络测试工具Augmented Traffic Control(ATC),能够方便 的让我们模拟各种网络环境进行测试。ATC-Git传送门

    ATC有两个最吸引人的特点:

    在手机上通过Web界面就可以随时切换不同的网络环境。 多个手机可以连接到同一个WIFI下,相互之间模拟的网络环境各不影响。 。

    环境要求

    Linux: 仅支持Linux.
    Python 2.7: 仅支持 2.7+ 版本,python3也不支持 Django 1.10: 仅支持1.10+版本

    安装linux虚拟机 这里不再接受虚拟机怎么装了,直接查看教程

    环境准备 更新服务器

    1. sudo apt-get update

    2. sudo apt-get upgrade

    python2.7安装

    python 安装

    1. sudo apt-get install python

    看到上图提示输入 y 回车。
    安装完成后输入 python -V 确认是否安装成功

    显示如图说明安装成功。

    pip 安装

    1. sudo apt-get install python-pip python-dev build-essential 安装完成后输入 pip -V 进行验证,显示

    - 升级pip

    1. sudo pip install --upgrade pip

    Wifi热点搭建

    安装是使用的是腾达(Tenda)U12遵循IEEE 802.11ac, IEEE 802.11a IEEE 802.11n, IEEE 802.11g, IEEE 802.11b协议。需要安装驱动,支持ap。选择无线网卡的时候需要支持Linux, 支持ap, 最好是免驱。

    添加usb到虚拟机 点击usb图标

    勾选无线网卡

    查看无线网卡信息 lsusb

    安装驱动 下载驱动

    1. # 下载驱动   2. wget

    http://down.tenda.com.cn/uploadfile/2017/Drive/U12_linux_v5.1.5_19247.201 60830.rar

    下载成功后查看

    如果机器没有rar解压工具使用如下命令安装

    1. sudo apt-get install rar 解压

    1. rar x U12_linux_v5.1.5_19247.20160830.rar #解压 解压后查看

    添加设备信息到 usb_intf.c

    1. cd U12_linux_v5.1.5_19247.20160830/driver/rtl8812AU_linux_v5.1.5_19247. 20160830/os_dep/linux

    2. sudo vi usb_intf.c

    添加腾达U12的设备信息

    1. {USB_DEVICE(0x2604, 0x0012), .driver_info = RTL8812}, /* Tenda U12 */

    安装 返回到安装目录

    进行安装

    1. sudo sh install.sh 安装完成后插拔网卡,输入 iwconfig 显示如下信息

    安装驱动参考文章

    Tenda U12 Linux驱动安装    在Linux下安装Tenda U12驱动

    安装hostapd和dhcpd

    1. sudo apt-get install hostapd isc-dhcp-server 安装完成后进行验证,输入 hostapd

    输入 dhcpd

    创建hostapd.conf

    在/etc/hostapd目录下新建 hostapd.conf ,文件内容如下:

    1. interface=wlan0   #使用的无线网卡接口名称

    2. driver=nl80211    #这里基本是固定的,是驱动接口

    3. ssid=ATC    #设置热点的名称

    4. hw_mode=g

    5. channel=10

    6. macaddr_acl=0

    7. auth_algs=3

    8. wpa=2     #从这开始都是用来设置认证的,如果去掉这些设置,热点就是没有密码的

    9. wpa_passphrase=11111111

    10. wpa_key_mgmt=WPA-PSK

    11. wpa_pairwise=TKIP CCMP

    12. rsn_pairwise=TKIP CCMP

    创建成功后,验证是否有效果

    1. sudo hostapd -B /etc/hostapd/hostapd.conf #-B为在后台执行 执行成功后的显示如下

    如果启动时出现如下报错信息

    执行如下命令

    1. sudo rfkill unblock wlan 正常情况下就可以启动hostapd了

    1. sudo hostapd -B /etc/hostapd/hostapd.conf 但是如果是重新开启热点的话还是会报错

    原因是hostapd进程占用了这个网卡,关闭这个进程就好了

    1. sudo killall hostapd 然后启动hostapdj就可以了

    1. sudo hostapd -B /etc/hostapd/hostapd.conf 一切搞定后可以使用手机搜索下WIFI,就可以看到ATC了。

    创建dhcpd.conf
    在/etc/dhcp/dhcpd.conf 在文件最后添加如下信息

    1. 2. 3. 4. 5. 6. 

    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 8.8.8.8;

    # 根据本机dns进行行修改

    }

    使用nmcli dev list iface eth0 | grep IP4查看本机dns信息

    所以我的 dhcpd.conf 应该是这样的

    1. subnet 192.168.0.0 netmask 255.255.255.0

    2. 3. 4. 5. 6.

    {
    range 192.168.0.2 192.168.0.10;
    option routers 192.168.0.1;
    option domain-name-servers 114.114.114.114;

    }

    设置无线网卡 设置并启动无线网卡

    1. sudo ifconfig wlan0 192.168.0.1 netmask 255.255.255.0 输入执行完成输入 ifconfig 查看,会显示wlan0

    开启IP内核转发

    1. sudo bash -c "echo 1 >/proc/sys/net/ipv4/ip_forward" 设置NAT

    1. sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE        启动dhcp-server

    1. sudo dhcpd wlan0 -pf /var/run/dhcp-server/dhcpd.pid   如果出现如下问题,说明 dhcpd.pid 文件不存在。

    进入 /var/run/dhcp-server/       创建 dhcpd.pid ,创建完成后在启动一次 dhcp-server

    设置完后后,使用手机连接ATC,可以愉快的访问网络了。

    ATC安装 安装包

    1. sudo pip install atc_thrift atcd django-atc-api django-atc-demo-ui dja ngo-atc-profile-storage

    如果安装过程中出现 Cannot uninstall 'six' 安装命令后加 --ignore-installed six

    1. sudo pip install atc_thrift atcd django-atc-api django-atc-demo-ui dja ngo-atc-profile-storage --ignore-installed six

    安装完毕后查看django版本,如果版本大于1.10,需要卸载重新装

    1. sudo pip list #查看已安装的包

    2. sudo pip uninstall Django #卸载Django

    3. sudo pip isntall Django==1.10.8

    创建一个django工程以便使用ATC服务端app

    1. sudo django-admin startproject atcui

    2. cd atcui

    进入到atcui目录后编辑 settings.py ALLOWED_HOSTS = [] 大括号内加'*'

    在INSTALLED_APPS里添加如下内容,

    1.

    # 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',

    编辑 urls.py 文件,文件开始导入
    1. from django.views.generic.base import RedirectView

    1. # 导入include

    2. from from django.conf.urls import url, 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)),

    返回到上一级目录,跟新django数据库

    1. cd..
    2. sudo python manage.py migrate

    配置完成然后可以运行了,这里使用网卡eth0作为公网连接,wlan0作为内网连接,启动时通 过参数指定

    1. sudo atcd --atcd-wan eth0 --atcd-lan wlan0

    新建一个终端运行ATC UI

    1. sudo python manage.py runserver 0.0.0.0:8000

    手机端输入 192.168.0.1:8000 就可以访问了。 添加配置

    facebook已经在自己的工程中为我们配置了常见网络的配置,可以通过如下方式添加

    1. git clone https://github.com/facebook/augmented-traffic-control.git 克隆完成后执行添加命令

    1. cd augmented-traffic-control

    2. sudo utils/restore-profiles.sh localhost:8080

    执行完成后手机刷新界面

  • 相关阅读:
    第五周作业
    第四周编程总结
    第六周作业
    2019春第五周作业
    2019年春季学期第四周作业
    2019年春季学期第三周作业
    求最大值及其下标
    7-1
    第十周课程总结
    第九周课程总结&实验报告(七)
  • 原文地址:https://www.cnblogs.com/hhwu/p/13539738.html
Copyright © 2011-2022 走看看