Khi vận hành Box Phone Farm với 20–100+ máy, việc vào từng máy để cài proxy WiFi thủ công tốn cực nhiều thời gian. Nếu proxy hết hạn hoặc cần đổi IP, bạn phải lặp lại toàn bộ quy trình. Python + ADB là giải pháp tự động hóa hoàn toàn việc này – gán proxy cho hàng chục máy chỉ trong vài giây.
Python dùng thư viện pure-python-adb hoặc subprocess để gọi lệnh ADB điều khiển từng thiết bị
Script đọc file proxy.txt hoặc từ API nhà cung cấp, tự động gán 1 proxy/1 máy
Dùng lệnh settings put global http_proxy để cài proxy trực tiếp không cần thao tác tay
Script kiểm tra IP sau khi gán, log lại máy nào thành công / thất bại
# auto_proxy.py – Tự động gán proxy cho Box Phone Farm # Cài thư viện: pip install pure-python-adb import subprocess, time, sys # ── CẤU HÌNH ────────────────────────────── PROXY_FILE = "proxy.txt" # 1 proxy/dòng: ip:port ADB_PATH = "adb" # hoặc đường dẫn đầy đủ DELAY = 1 # giây chờ giữa mỗi máy # ────────────────────────────────────────── def get_devices(): result = subprocess.run([ADB_PATH, "devices"], capture_output=True, text=True) devices = [] for line in result.stdout.strip().split(" ")[1:]: if " device" in line: devices.append(line.split(" ")[0].strip()) return devices def set_proxy(device_id, proxy): host, port = proxy.split(":") cmd = [ADB_PATH, "-s", device_id, "shell", "settings put global http_proxy", f"{host}:{port}"] r = subprocess.run(cmd, capture_output=True, text=True) return r.returncode == 0 def clear_proxy(device_id): subprocess.run([ADB_PATH, "-s", device_id, "shell", "settings put global http_proxy :0"]) def main(): devices = get_devices() with open(PROXY_FILE) as f: proxies = [l.strip() for l in f if l.strip()] print(f"📱 Tìm thấy {len(devices)} thiết bị") print(f"🌐 Có {len(proxies)} proxy ") for i, device in enumerate(devices): if i >= len(proxies): print(f"⚠️ [{device}] Không đủ proxy!") continue proxy = proxies[i] ok = set_proxy(device, proxy) status = "✅" if ok else "❌" print(f"{status} [{device}] → {proxy}") time.sleep(DELAY) print(" 🎉 Hoàn tất gán proxy!") if __name__ == "__main__": main()
# proxy.txt – Mỗi dòng 1 proxy, định dạng ip:port 103.45.67.89:8080 118.70.12.34:3128 14.248.78.90:8080 # Có user:pass thì dùng: ip:port:user:pass
| Lệnh | Chức năng |
|---|---|
adb shell settings put global http_proxy ip:port | Cài HTTP proxy cho toàn thiết bị |
adb shell settings put global http_proxy :0 | Xóa proxy (reset về không proxy) |
adb shell settings get global http_proxy | Kiểm tra proxy hiện tại |
adb -s DEVICE_ID shell ... | Chỉ định thiết bị cụ thể khi nhiều máy |
proxy.txt chứa danh sách proxy, mỗi dòng 1 proxypython auto_proxy.pyschedule library trong Python) để tự động đổi proxy theo giờ – ví dụ mỗi 30 phút đổi 1 lần mà không cần can thiệp thủ công.settings put global http_proxy chỉ cài HTTP proxy, không phải SOCKS5. Nếu cần SOCKS5, dùng app SocksDroid hoặc College Proxy trên điện thoại kết hợp với ADB để bật/tắt.import schedule, time, subprocess def rotate_proxies(): # Gọi lại script gán proxy subprocess.run(["python", "auto_proxy.py"]) print("🔄 Đã đổi proxy xong!") # Tự động đổi proxy mỗi 30 phút schedule.every(30).minutes.do(rotate_proxies) while True: schedule.run_pending() time.sleep(1)
Cần hỗ trợ viết script tùy chỉnh theo farm của bạn? Liên hệ Zalo 094 678 2234 – đội ngũ kỹ thuật sẽ hỗ trợ setup từ xa miễn phí.
Hỗ trợ từ xa miễn phí – Zalo / TeamViewer / AnyDesk