一、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 口作为交换机进行扩展。


↙↙↙阅读原文可查看相关链接,并与作者交流