Docs & API

Điều khiển WhaleProxy bằng code.

Một control plane chạy ngay trên máy bạn: REST ở cổng 8091, JSON-RPC qua named pipe, và CLI. Cả ba xài chung một bộ lệnh với giao diện app — quen chỗ nào dùng chỗ đó.

Tổng quan

API là cách để máy nói chuyện với engine định tuyến. Base URL mặc định http://127.0.0.1:8091/v1, gửi JSON vào, nhận JSON ra. Bật nó trong tab Settings là chạy.

Mặc định API chỉ nghe loopback (127.0.0.1). Muốn điều khiển từ xa thì bind ra IP mạng — nhưng nhớ đặt sau TLS và firewall, vì engine chạy với quyền cao và điều khiển toàn bộ luồng mạng của máy.

Đáng chú ý: WhaleProxy đổi proxy cho tiến trình đang chạy ngay giữa chừng — mấy proxifier per-process khác chịu, không làm nổi.

Xác thực

Mọi request đều cần API key gắn ở header, trừ /v1/healthz. Key sinh bằng CSPRNG; tạo hoặc đổi ở Settings → Generate. Lúc so key, WhaleProxy dùng constant-time để chống dò theo thời gian.

http
X-API-Key: <YOUR_API_KEY>
# hoặc
Authorization: Bearer <YOUR_API_KEY>

Reroute — đổi proxy khi app đang chạy

Nhắm tiến trình theo pids, tên exe, đường dẫn, hash danh tính hay biệt danh — rồi trỏ sang proxy mới. Chưa chắc thì gọi /preview xem thử, chưa đụng gì cả.

POST/v1/rerouteĐổi proxy cho app đang chạy
POST/v1/reroute/previewThử xem khớp trúng PID nào
POST/v1/reroute/clearBỏ reroute, trả về theo rule
POST /v1/reroute
{ "match": { "nickname": "Acc 3" }, "proxy": "jp-2" }

→ 200 { "rerouted": 1, "flows_moved": 12 }

Proxies

Quản lý pool proxy upstream (socks5 / http / localnet). Test một phát là biết độ trễ và IP thoát thật.

GET/v1/proxiesXem danh sách proxy + trạng thái
POST/v1/proxiesThêm proxy — một cái hoặc cả list
POST/v1/proxies/{alias}:testTest → độ trễ + IP thoát
DELETE/v1/proxies/{alias}Xoá, tự cân bằng lại

Rules

Rule lưu lại lâu dài, chạy first-match-wins, áp cho cả app đang chạy lẫn app mở sau này.

GET/v1/rulesXem chuỗi rule
POST/v1/rulesThêm rule
POST/v1/rules/reorderSắp lại thứ tự ưu tiên
POST/v1/config/reloadNạp lại config, áp liền

Processes

Xem những tiến trình đang theo dõi, đặt biệt danh, hoặc tắt thẳng tay.

GET/v1/processesDanh sách tiến trình live
GET/v1/processes/{pid}Chi tiết một PID
POST/v1/processes/{pid}/nicknameĐặt biệt danh
POST/v1/processes/{pid}/killTắt tiến trình

Stats & events

Đọc byte, luồng, kết nối theo từng tiến trình và từng proxy. Long-poll để bắt sự kiện spawn/exit.

GET/v1/statsTổng hợp toàn hệ thống
GET/v1/stats/per-proxyTheo từng proxy
GET/v1/events/pollLong-poll sự kiện

Command line

CLI xài chung bộ lệnh đó. Thêm --json là ra dữ liệu cho máy đọc. Nhớ để engine chạy sẵn.

cmd
$ whaleproxy proxies list --json
$ whaleproxy reroute --name chrome.exe --to jp-2
$ whaleproxy pin --nickname "Acc 3" --proxy us-1
$ whaleproxy stats --json

Ví dụ — gọi từ Python

API là HTTP thuần nên gọi từ ngôn ngữ nào cũng được. Ví dụ dưới đây đẩy một acc sang proxy khác.

python
import requests

API = "http://127.0.0.1:8091/v1"
H   = { "X-API-Key": "YOUR_KEY" }

# Đổi proxy của "Acc 3" sang jp-2, ngay khi đang chạy
r = requests.post(f"{API}/reroute", headers=H, json={
    "match": { "nickname": "Acc 3" },
    "proxy": "jp-2"
})
print(r.json())  # {'rerouted': 1, 'flows_moved': 12}
Tự động hoá cả farm

Script một lần, reroute cả loạt acc

Tải WhaleProxy, bật API trong Settings, rồi điều khiển tất cả bằng code.