Facebook Augmented Traffic Control (ATC) 环境搭建指南
augmented-traffic-control 项目地址: https://gitcode.com/gh_mirrors/aug/augmented-traffic-control
项目概述
Facebook Augmented Traffic Control (ATC) 是一个强大的网络模拟工具,允许开发者在受控环境中模拟各种网络条件。通过ATC,可以精确控制网络带宽、延迟、丢包率等参数,这对于移动应用开发和测试尤为重要。
系统要求
操作系统要求
ATC 基于 Linux 内核开发,需要以下支持:
- 必须运行在 Linux 系统上
- 依赖 iproute2 工具包进行网络流量控制
- 建议使用较新的 Linux 发行版(如 Ubuntu 16.04+ 或 CentOS 7+)
网络环境要求
理想部署环境:
- 需要作为网络网关部署
- 通常需要两个物理网络接口(WAN 和 LAN)
- 也可以通过虚拟网络接口(如 VLAN)模拟双网卡环境
软件依赖
必须组件:
- Python 2.7(注意:ATC 目前不支持 Python 3)
- pip 包管理工具
- 强烈建议使用 virtualenv 创建隔离的 Python 环境
安装步骤
1. 创建虚拟环境
建议在虚拟环境中安装 ATC,以避免与其他 Python 项目产生依赖冲突:
mkdir -p ~/atc
virtualenv ~/atc/venv
source ~/atc/venv/bin/activate
2. 安装 ATC 守护进程 (atcd)
pip install atcd
安装完成后,需要以 root 权限运行守护进程:
sudo atcd --atcd-lan eth0 --atcd-wan eth1
注意:
eth0
和eth1
应根据实际网络接口名称调整- 如果使用单网卡模拟环境,可考虑使用虚拟接口
3. 安装 Web 界面组件
ATC 提供了基于 Django 的 Web 管理界面,需要安装以下组件:
pip install django-atc-api django-atc-demo-ui django-atc-profile-storage
4. 配置 Django 项目
创建 Django 项目
cd ~/atc
django-admin startproject atcui
配置 settings.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',
)
配置 urls.py
添加 URL 路由配置:
from django.views.generic.base import RedirectView
urlpatterns = [
...
# Django ATC API
path('api/v1/', include('atc_api.urls')),
# Django ATC Demo UI
path('atc_demo_ui/', include('atc_demo_ui.urls')),
# Django ATC profile storage
path('api/v1/profiles/', include('atc_profile_storage.urls')),
path('', RedirectView.as_view(url='/atc_demo_ui/', permanent=False)),
]
数据库迁移
python manage.py migrate
启动开发服务器
python manage.py runserver 0.0.0.0:8080
验证安装
完成上述步骤后,可以通过以下方式验证安装是否成功:
- 访问
http://<服务器IP>:8080
应该能看到 ATC 的 Web 界面 - 检查 atcd 守护进程是否正常运行
- 尝试创建简单的网络限制规则,验证是否生效
常见问题解决
-
权限问题:
- atcd 需要 root 权限运行
- 确保防火墙允许 8080 端口访问
-
网络接口配置错误:
- 确认 --atcd-lan 和 --atcd-wan 参数指定的接口正确
- 使用
ip addr
命令查看可用网络接口
-
Python 环境问题:
- 确保在 virtualenv 激活状态下安装所有组件
- 检查 Python 版本是否为 2.7
-
Django 依赖冲突:
- 如果遇到依赖冲突,尝试创建全新的 virtualenv
- 确保安装的 Django 版本与 ATC 组件兼容
生产环境建议
对于生产环境部署,建议考虑:
- 使用 uWSGI 或 Gunicorn 替代开发服务器
- 配置 Nginx 作为反向代理
- 设置系统服务管理 atcd 进程
- 考虑使用 HTTPS 加密 Web 界面通信
- 将 ATC 安装到系统目录而非用户目录
通过以上步骤,您应该能够成功搭建 Facebook ATC 环境,并开始模拟各种网络条件进行开发和测试工作。
augmented-traffic-control 项目地址: https://gitcode.com/gh_mirrors/aug/augmented-traffic-control
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考