其他测试框架 用路由器搭建 facebook ATC

blueshark · 发布于 2017年09月26日 · 最后由 Innocence 回复于 2017年10月10日 · 725 次阅读
本帖已被设为精华帖!

一、ATC简单介绍

Augmented Traffic Control(ATC)是facebook的开源移动网络测试工具,可以用来控制手机所连接的wifi的网络速率等参数,从来模拟移动弱网环境。

只要搜索facebook ATC就可以找到很多关于ATC环境搭建的文章,比如说FaceBook ATC 弱网测试工具环境搭建,我总结了一下,主要分以下几个步骤:

  1. 安装hostap。hostap的主要作用是将无线网卡作为一个分享的热点。
  2. 安装isc-dhcp-server。这是一个dhcp服务器,连上热点的手机通过dhcp服务器获取ip,进而才能通过网关上网。
  3. 设置NAT转发。简单来说就是把一个可以上网的网卡流量转发到分享热点的网络。
  4. 安装ATC。这是控制网速的主要部件,具体原理我了解的也不是很深。
  5. 安装python web服务器。这是供用户设置网速的界面,我想ATC用python web原因可能是python操作系统的东西更擅长些,虽然python在web方面没有什么优势。

二、抛弃无线网卡,用无线路由器分享无线网络

我看到网上很多ATC教程把用无线网卡分享热点这部分写的非常详细,而且问题非常多,主要如下:

  1. hostap搭建成功率比较低。这是因为无线网上在linux上的驱动问题,与操作系统的无线网卡的品牌有关。
  2. 热点不稳定。主要表现在长时间运行或者连接的设备数量比较多的时候就会出现断线等问题。
  3. 热点传输的距离有限。无线网卡的功率比较小,传输的距离很短。

实际上,如果深入了解一下ATC的原理和一些路由知识就会明白,用无线网卡分享热点的目的就是提供一个可以接入的无线网(其实就是一个独立的局域网),而路由器完全是为了这个用途而生,我们完全可以用路由器代替无线网卡,搭建一个稳定可靠的ATC环境。

搭建步骤如下:

1、首先确认你的路由器可以把DHCP功能关掉。普通路由器其实具备路由器交换机两种功能,只要把DHCP服务器关掉就可以当作交换机用。下面以TP-LINK路由器为例说明如果关掉DHCP。如下图所示,打开tplink路由器的设备界面,在右边栏中展示DHCP服务器节点,可以看到有启用和不启用两个选项,选中不启用,点击保存就可以关闭路由器的DHCP服务器功能。

为了避免和网关重复,应该在LAN设置中把IP地址改成一个非网关的地址,不要在使用192.168.1.1这种的,比如说改成192.168.1.254,管理的时候要输设置的LAN IP。

2、需要你的电脑具有两个网卡。如果没有,可以买一个最便宜的USB有线网卡。确保其中一个网卡可以正常上网(一般是电脑自带网卡)。

3、将要分享网络的网卡连接到路由器的LAN口,注意,是LAN口而不是WAN口!路由器后面有标示的。

4、用ifconfig命令找到USB网卡的名称,把这个网卡配置成固定的IP当作网关,例如可以配置成192.168.1.1。然后再配置dhcp服务器(isc-dhcp-server),配置完成以后就可以用手机连接无线或者用电脑连接其他的LAN口看看能不能获取到192.168.1.x网段的ip,如果能获取到,差不多就完成了。

5、把USB网卡当成网上其他教程中的无线网卡,进行其他配置。

二、用无线路由器的优点

  1. 信号强,可以覆盖相当大的空间。
  2. 非常稳定。无线路由器是专业的热点,肯定稳定。
  3. 如果你愿意,可以再拿一个无线路由器插在前一个路由器的LAN口作为交换机进行扩展。
共收到 8 条回复
1484

👍
学习一下,之前用的无线网卡

104 seveniruby 将本帖设为了精华贴 09月27日 14:44
3165

收藏!

1522fe

去年也是一样的方案搭建了一套。USB网卡受环境限制较多。

5462
blueshark · #7 · 2017年09月29日 作者
1522fecay 回复

USB网卡也受环境限制?

12235

问个问题,如果只是需要限制网速的话,很多路由器都自带这个功能,不止对mac地址,还可以对指定ip限速,为什么不直接用呢?

167d23
122359688e 回复

路由器自带的模拟环境过于简单 只能限制单一的网速
而网络环境包含网速、延迟、丢包等多种复杂情况组合
(其实我没用过这个工具,从我自己理解和使用谷歌自带的network conditions总结的)

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册