我的编程空间,编程开发者的网络收藏夹
学习永远不晚

facebook atc弱网环境搭建和踩

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

facebook atc弱网环境搭建和踩

facebook atc介绍

Augmented Traffic Control(又名atc)是一种模拟网络状况的工具。由facebook开源,是一个允许开发人员控制设备与互联网连接的项目。atc可以模拟不同的网络条件,包括控制带宽,延迟,数据包丢失、数据包损坏、数据包重排序等几个因素都可以由atc来控制。atc运行在网关,可以控制连接到该网络的手机,设备的网络,atc有一个web界面,通过这个界面可以来切换不同的网络情况。atc内部使用了iptables和tc,因此只支持linux平台。

 

下面介绍facebook atc在 ubuntu 18.04(使用vmware 安装的虚拟机)系统下facebook atc 的安装和使用。

准备环境:

1、用vmware装个ubuntu
2、准备一个无线网卡,建议选择一个linux免驱的无线网卡,不然在开启热点的时候会提示失败。

 

ubuntu需要利用hostapd和dhcp开启ap热点,首先安装hostapd和dhcp

sudo apt-get install hostapd isc-dhcp-server

 

然后编辑/etc/hostapd/hostapd.conf文件,内容如下图:

 

  • ssid 为wifi名称
  • wpa_passphrase 为wifi密码

 

接着启动hostapd服务

sudo hostapd /etc/hostapd/hostapd.conf 

 

如果没报错并搜到热点证明启动ap热点成功,如果有报错可以用以下命令解决:

sudo nmcli radio wifi off
sudo rfkill unblock wlan

 

如果提示hostapd进程已存在,则需要先杀掉进程

sudo killall hostapd

 

配置dhcp

编辑文件/etc/dhcp/dhcpd.conf, 内容如下图:

 

  • subnet为子网范围,netmask为子网掩码
  • range为可分配的IP地址范围
  • option router 为配置的网关
  • option domain-name-servers 为配置的dns,我用的8.8.8.8,即谷歌的dns服务器

 

设置无线网卡接口地址

sudo ifconfig wlx00026fb9727b 192.168.179.1 netmask 255.255.255.0

 

启动dhcp-server服务

sudo dhcpd wlx00026fb9727b -pf /var/run/dhcp-server/dhcpd.pid

 

若有提示pid或leases文件错误,就按照提示就去创建文件并赋予权限

sudo touch /var/lib/dhcp/dhcpd.leases
chmod a+x /var/lib/dhcp/dhcpd.leases

 

若开启dhcp服务没有提示报错,则代表开启成功,此时wifi应该可以连上,但是还不可以上网。

 

设置IP转发

sudo bash -c "echo 1 >/proc/sys/net/ipv4/ip_forward"

 

设置NAT转发

sudo iptables -t nat -A POSTROUTING -o ens33 -j MASQUERADE

 

因为设置步骤较多,可以写成2个脚本,ap-start.sh, ap-stop.sh。一切顺利的话,此时wifi应该可以连上了

 

配置facebook atc 

首先安装python2.7和pip,和django

sudo apt-get install python
sudo apt-get install python-pip
sudo apt-get install django

 

安装atc的组件

pip install atc_thrift atcd django-atc-api django-atc-demo-ui django-atc-profile-storage

 

创建atc工程

django-admin startproject atcui
cd atcui

 

配置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',
)

 

配置atcui/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)),
]

 

更新数据库

python manage.py migrate

 

启动atc

sudo atcd --atcd-wan ens33 --atcd-lan wlx00026fb9727b

 

不过启动atc的时候我遇到了https://github.com/facebook/augmented-traffic-control/issues/302 这里所说的问题,加上里面说的参数就解决了

--atcd-dont-drop-packets

 

启动atc web

python manage.py runserver 0.0.0.0:8000

 

导入facebook默认的几个配置文件

utils/restore-profiles.sh localhost:8000

 

这时用手机连上wifi热点,访问 http://192.168.179.1:8000

此时可以看到下图

 

使用方法为

turn on
select
update shaping

 

然后就大功告成了,可以试着切换不同的模拟网络试试效果。

 

 

 参考文章:

 https://www.cnblogs.com/coderzh/p/AugmentedTrafficControl.html

 https://blog.csdn.net/itfootball/article/details/46763731

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

facebook atc弱网环境搭建和踩

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

facebook atc弱网环境搭建和踩

facebook atc介绍Augmented Traffic Control(又名atc)是一种模拟网络状况的工具。由facebook开源,是一个允许开发人员控制设备与互联网连接的项目。atc可以模拟不同的网络条件,包括控制带宽,延迟,数
2023-01-30

内网环境下搭建Nexus混合源仓库(yum源和apt源)

记录一下搭建Nexus混合源仓库的操作流程。通过Nexus搭建一个混合源仓库(如可配置x86架构和arm64架构的yum源、x86架构和arm64架构的apt源等多种仓库)。在内网环境下,只需要在服务器端配置好混合源仓库,那么客户端需要
2023-08-18

Win10 IIS WEB服务器(本地网站环境搭建)安装和配置详解

在Windows 10操作系统上搭建本地网站环境可以使用IIS(Internet Information Services)作为WEB服务器。以下是安装和配置IIS的详细步骤:1. 打开控制面板:点击开始菜单,然后在搜索栏中输入“控制面板”
2023-09-16

打造高性能网站:使用 nginx、MySQL 和 PHP 编译,搭建 LNMP 环境并安装 WordPress实战

前言 🏠个人主页:我是沐风晓月 🧑个人简介:大家好,我是沐风晓月,阿里云社区博客专家😉😉 💕 座右铭: 先努力成长自己,再帮助更多的人 ,一起加油进步
2023-08-21

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录