FaceBook/atc 環境搭建的總結

一直給自己找藉口不去動手實踐,今天難得抽了個時間,總算把環境給搭建完成了, 雖然可能目前還有點小問題,但是基本的測試時可以保證了,以後一些弱網環境的測試就可以靠你了。

介紹


首先還是得說下什麼是ATC,它的作用是什麼呢?

現在已經是APP時代了,由於手機網絡的特殊性,移動APP需要面臨更加複雜的網絡環境。在設計之初就要考慮如何應對各種網絡環境,比如很高的延遲,經常丟包,頻繁的斷線。特別是手遊,斷線重連機制設計的好壞直接影響到遊戲的體驗。所以,在開發過程中模擬各種網絡環境進行測試變得越來越重要

所以ATC實際上就是用於模擬網絡環境的,那它與其他軟件的區別在哪裏呢?

  • 在手機上通過Web界面就可以隨時切換不同的網絡環境。
  • 多個手機可以連接到同一個WIFI下,相互之間模擬的網絡環境各不影響。

這裏貼一張 ATC的原理圖:

ATC工具的搭建需要分爲兩個部分:wifi熱點以及Atc環境搭建

wifi 熱點的搭建

這裏用的是 水星(Mercury)MW150U 150M無線USB網卡

  1. 首先我們先讓無線USB接入到虛擬機中。
    這裏寫圖片描述

  2. 在終端查看是否已經讀到了我們的無線網卡
    這裏寫圖片描述
    這裏面的 ID f201:5370 就是我們的無線網卡了。

  3. 下來我們就需要創建一個wifi了,那創建wifi的話 也是需要有3個步驟的,

    • DHCP服務器:用來設備連接上來後分配IP地址用的
    • hostapd :用於wifi的認證
    • 數據轉發 : 將終端設備發送過來的數據包轉發到另一個能夠連接到外網的網卡上
  4. 安裝 hostapd以及dhcpd
    sudo apt-get install hostapd isc-dhcp-server

    安裝完後我們可以驗證是否安裝成功
    這裏寫圖片描述

    這裏寫圖片描述

  5. 配置SSID以及認證的信息
    這裏寫圖片描述

    這裏看了很多地方的配置都是 10信道,正常我們的wifi應該是在1,6,11信道上纔是正常無干擾的纔對的。

  6. 配置dhcp地址信息
    這裏寫圖片描述
    這裏的dns的地址直接通過 nmcli dev list iface eth0 | grep IP4 進行查看

  7. 啓動 hostapd

    sudo hostapd -B /etc/hostapd/hostapd.conf

    如果上面的啓動出現失敗的話可以加一條

    sudo rfkill unblock wlan

    來解鎖該無線設備

  8. 設置無線網卡

    sudo ifconfig wlan0 192.168.0.1 netmask 255.255.255.0
  9. 啓動dhcp-server

    sudo dhcpd wlan0 -pf /var/run/dhcp-server/dhcpd.pid
  10. 開啓IP轉發

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

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

以上就完成了wifi熱點的創建了。這個只是第一步而已。下來我們需要搭建ATC的環境了。

ATC環境搭建

最好的參考文檔就是官方的github了。

  1. 通過pip安裝ATC

    pip install atc_thrift atcd django-atc-api django-atc-demo-ui django-atc-profile-storage
  2. 創建一個django的項目,並配置的相應內容。這裏的步驟就不說了

  3. 啓動ATC

    sudo atcd --atcd-wan eth0 --atcd-lan wlan0
  4. 啓動atc profile配置界面

    python manage.py runserver 0.0.0.0:8000

    下來我們就可以通過手機訪問對應的頁面了。

這裏寫圖片描述

不太清楚 爲什麼這個ui比別人的難看多了,不過功能倒是都是正常的,另外我們會發現默認沒有任何的配置模板。所以我們可以導入facebook的2g 3g的網絡模板

使用樣例模板

utils/restore-profiles.sh localhost:8080

要在服務運行的情況下,且不要使用sudo 。

這樣子就做我們的弱網測試了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章