코드로 WhaleProxy를 제어하세요.
로컬 컨트롤 플레인: 포트 8091의 REST, 명명된 파이프의 JSON-RPC, 그리고 CLI — GUI 아래에서 동작하는 동일한 명령 집합입니다.
개요
이 API는 라우팅 엔진에 대한 머신 간(machine-to-machine) 인터페이스입니다. 기본 베이스 URL은 http://127.0.0.1:8091/v1이며, 입출력은 JSON입니다. Settings 탭에서 활성화하세요.
기본적으로 루프백(127.0.0.1)에서만 수신합니다. 원격 제어를 위해 네트워크 IP에 바인딩할 수도 있지만, 엔진이 권한 상승 상태로 실행되며 PC의 모든 네트워크 트래픽을 제어하므로 TLS와 방화벽 뒤에 두세요.
인증
/v1/healthz를 제외한 모든 요청에는 헤더로 전송되는 API 키가 필요합니다. 키는 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)을 관리하세요. 테스트는 지연 시간과 실제 출구 IP를 반환합니다.
규칙
현재와 이후의 프로세스에 적용되는 영구적인 첫 매칭 우선 규칙입니다.
프로세스
추적 중인 프로세스를 확인하고, 닉네임을 지정하거나, 종료할 수 있습니다.
통계 & 이벤트
프로세스별·프록시별 바이트/연결 흐름/연결 수를 읽고, 시작/종료 이벤트를 롱폴링하세요.
명령줄
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를 받아 Settings에서 API를 활성화하고, 코드로 조작을 시작하세요.