ควบคุม 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 + ไฟร์วอลล์ เนื่องจากเอนจินทำงานด้วยสิทธิ์ที่ยกระดับและควบคุมทราฟฟิกเครือข่ายทั้งหมดของเครื่อง
การยืนยันตัวตน
ทุกคำขอ (ยกเว้น /v1/healthz) ต้องมี API key ส่งไปใน header คีย์ถูกสร้างด้วย CSPRNG สร้าง/หมุนเวียนคีย์ได้ที่ Settings → Generate การเปรียบเทียบคีย์ใช้เวลาคงที่ (constant time)
X-API-Key: <YOUR_API_KEY>
# hoặc
Authorization: Bearer <YOUR_API_KEY>
เปลี่ยนเส้นทาง — เปลี่ยนพร็อกซีของโปรเซสที่กำลังทำงาน
เลือกโปรเซสด้วย pids, ชื่อ exe, พาธ, แฮชระบุตัวตน หรือชื่อเล่น — แล้วชี้ไปยังพร็อกซีตัวใหม่ ใช้ /preview เพื่อทดลองรันโดยยังไม่นำไปใช้จริง
{ "match": { "nickname": "App 3" }, "proxy": "jp-2" }
→ 200 { "rerouted": 1, "flows_moved": 12 }
พร็อกซี
จัดการพูลต้นทาง (socks5 / http / localnet) การทดสอบจะคืนค่า latency และ IP ขาออกจริง
กฎ
กฎที่บันทึกถาวร แบบตรงก่อนชนะ ใช้กับโปรเซสปัจจุบันและที่จะเกิดขึ้นในอนาคต
โปรเซส
ตรวจดูโปรเซสที่ถูกติดตาม ตั้งชื่อเล่น หรือปิดโปรเซส
สถิติ & เหตุการณ์
อ่านค่าไบต์/flow/การเชื่อมต่อ แยกตามโปรเซสและตามพร็อกซี พร้อม long-poll เหตุการณ์การเกิด/ปิดของโปรเซส
Command line
CLI ห่อหุ้มคำสั่งชุดเดียวกัน เพิ่ม --json เพื่อให้ผลลัพธ์อยู่ในรูปแบบที่เครื่องอ่านได้ ใช้งานได้ขณะที่เอนจินทำงานอยู่
$ 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 ธรรมดา เรียกใช้ได้จากทุกภาษา ตัวอย่างด้านล่างย้ายหนึ่งโปรเซสไปยังพร็อกซีตัวอื่น
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 แล้วเริ่มสั่งงานด้วยโค้ด