เอกสาร & API

ควบคุม WhaleProxy ด้วยโค้ด

ระบบควบคุมในเครื่อง: REST ที่พอร์ต 8091, JSON-RPC ผ่าน named pipe และ CLI — ชุดคำสั่งเดียวกันกับที่อยู่เบื้องหลัง GUI

ภาพรวม

API คืออินเทอร์เฟซแบบเครื่องต่อเครื่องที่เชื่อมกับเอนจินจัดเส้นทาง โดยมี base URL เริ่มต้นคือ http://127.0.0.1:8091/v1 รับส่งข้อมูลเป็น JSON และเปิดใช้งานได้ในแท็บ Settings

โดยค่าเริ่มต้นจะรับฟังเฉพาะบน loopback (127.0.0.1) เท่านั้น คุณสามารถผูกกับ IP เครือข่ายเพื่อควบคุมจากระยะไกลได้ — ควรวางไว้หลัง TLS + ไฟร์วอลล์ เนื่องจากเอนจินทำงานด้วยสิทธิ์ที่ยกระดับและควบคุมทราฟฟิกเครือข่ายทั้งหมดของเครื่อง

ไฮไลต์: WhaleProxy เปลี่ยนพร็อกซีของโปรเซสที่ กำลังทำงาน ได้ — สิ่งที่โปรแกรมพร็อกซีแยกตามโปรเซสตัวอื่นทำไม่ได้

การยืนยันตัวตน

ทุกคำขอ (ยกเว้น /v1/healthz) ต้องมี API key ส่งไปใน header คีย์ถูกสร้างด้วย CSPRNG สร้าง/หมุนเวียนคีย์ได้ที่ Settings → Generate การเปรียบเทียบคีย์ใช้เวลาคงที่ (constant time)

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

เปลี่ยนเส้นทาง — เปลี่ยนพร็อกซีของโปรเซสที่กำลังทำงาน

เลือกโปรเซสด้วย pids, ชื่อ exe, พาธ, แฮชระบุตัวตน หรือชื่อเล่น — แล้วชี้ไปยังพร็อกซีตัวใหม่ ใช้ /preview เพื่อทดลองรันโดยยังไม่นำไปใช้จริง

POST/v1/rerouteเปลี่ยนเส้นทางโปรเซสที่กำลังทำงาน
POST/v1/reroute/previewดูตัวอย่างว่า PID ใดจะตรงบ้าง
POST/v1/reroute/clearล้างการเปลี่ยนเส้นทาง กลับไปใช้กฎเดิม
POST /v1/reroute
{ "match": { "nickname": "App 3" }, "proxy": "jp-2" }

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

พร็อกซี

จัดการพูลต้นทาง (socks5 / http / localnet) การทดสอบจะคืนค่า latency และ IP ขาออกจริง

GET/v1/proxiesแสดงรายการพร็อกซี + สถานะ
POST/v1/proxiesเพิ่ม (ทีละตัว / ทีละชุด)
POST/v1/proxies/{alias}:testทดสอบ → latency + IP ขาออก
DELETE/v1/proxies/{alias}ลบ + ปรับสมดุลอัตโนมัติ

กฎ

กฎที่บันทึกถาวร แบบตรงก่อนชนะ ใช้กับโปรเซสปัจจุบันและที่จะเกิดขึ้นในอนาคต

GET/v1/rulesแสดงลำดับกฎทั้งหมด
POST/v1/rulesเพิ่มกฎ
POST/v1/rules/reorderจัดลำดับความสำคัญใหม่
POST/v1/config/reloadรีโหลดการตั้งค่า มีผลทันที

โปรเซส

ตรวจดูโปรเซสที่ถูกติดตาม ตั้งชื่อเล่น หรือปิดโปรเซส

GET/v1/processesรายการโปรเซสแบบเรียลไทม์
GET/v1/processes/{pid}รายละเอียดของ PID เดียว
POST/v1/processes/{pid}/nicknameตั้งชื่อเล่น
POST/v1/processes/{pid}/killปิดโปรเซส

สถิติ & เหตุการณ์

อ่านค่าไบต์/flow/การเชื่อมต่อ แยกตามโปรเซสและตามพร็อกซี พร้อม long-poll เหตุการณ์การเกิด/ปิดของโปรเซส

GET/v1/statsยอดรวมทั้งระบบ
GET/v1/stats/per-proxyแยกตามพร็อกซี
GET/v1/events/polllong-poll เหตุการณ์

Command line

CLI ห่อหุ้มคำสั่งชุดเดียวกัน เพิ่ม --json เพื่อให้ผลลัพธ์อยู่ในรูปแบบที่เครื่องอ่านได้ ใช้งานได้ขณะที่เอนจินทำงานอยู่

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

ตัวอย่าง — เรียกใช้จาก Python

API เป็น HTTP ธรรมดา เรียกใช้ได้จากทุกภาษา ตัวอย่างด้านล่างย้ายหนึ่งโปรเซสไปยังพร็อกซีตัวอื่น

python
import requests

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

# Đổi proxy của "App 3" sang jp-2, ngay khi đang chạy
r = requests.post(f"{API}/reroute", headers=H, json={
    "match": { "nickname": "App 3" },
    "proxy": "jp-2"
})
print(r.json())  # {'rerouted': 1, 'flows_moved': 12}
ทำงานอัตโนมัติด้วยสคริปต์

เปลี่ยนเส้นทางโปรเซสหลายตัวพร้อมกันด้วยสคริปต์

ดาวน์โหลด WhaleProxy เปิดใช้งาน API ใน Settings แล้วเริ่มสั่งงานด้วยโค้ด