PHub Admin

Active 0
Disconnected 0
Proxy Users
No proxy users yet

WebTransport

WebTransport runs over HTTP/3 (QUIC). Connect using your browser or any WebTransport client.

Connection URL
https://<username>:<password>@<host>:8080/proxy/

Open a bidirectional stream and send the destination as the first line:

Stream protocol
host:port\n <then pipe raw TCP data in both directions>
Browser test (DevTools console)
const wt = new WebTransport('https://user:pass@host:8080/proxy/'); await wt.ready; const stream = await wt.createBidirectionalStream(); const w = stream.writable.getWriter(); const enc = new TextEncoder(); await w.write(enc.encode('api.ipify.org:80\n')); await w.write(enc.encode('GET / HTTP/1.0\r\nHost: api.ipify.org\r\n\r\n')); const r = stream.readable.getReader(); const { value } = await r.read(); console.log(new TextDecoder().decode(value));

WebTransport — Webpage

Full standalone HTML page that proxies HTTP requests via WebTransport. Browsers require HTTPS and a trusted TLS cert on the proxy host.

webtransport-proxy.html
<!DOCTYPE html> <html><body> <pre id="out">Loading...</pre> <script> async function fetchViaProxy(host, port, httpRequest) { const auth = btoa('user:pass'); const wt = new WebTransport( `https://<host>:8080/proxy/?auth=${encodeURIComponent(auth)}` ); await wt.ready; const stream = await wt.createBidirectionalStream(); const enc = new TextEncoder(); const w = stream.writable.getWriter(); await w.write(enc.encode(`${host}:${port}\n`)); await w.write(enc.encode(httpRequest)); const r = stream.readable.getReader(); const { value } = await r.read(); wt.close(); return new TextDecoder().decode(value); } fetchViaProxy('api.ipify.org', 80, 'GET / HTTP/1.0\r\nHost: api.ipify.org\r\n\r\n' ).then(resp => document.getElementById('out').textContent = resp) .catch(e => document.getElementById('out').textContent = 'Error: ' + e); </script> </body></html>

SOCKS5

Standard SOCKS5 proxy with username/password auth. Works with any SOCKS5-compatible client.

Connection
socks5h://<username>:<password>@<host>:1080
curl
curl -x socks5h://user:pass@host:1080 https://api.ipify.org
PowerShell (7+ built-in / curl.exe)
# PowerShell 7+ $env:ALL_PROXY = 'socks5://user:pass@host:1080' Invoke-WebRequest https://api.ipify.org # curl.exe (bundled with Windows 10+) curl.exe -x socks5h://user:pass@host:1080 https://api.ipify.org
PHP (cURL extension)
<?php $ch = curl_init('https://api.ipify.org'); curl_setopt($ch, CURLOPT_PROXY, 'socks5h://host:1080'); curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:pass'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); echo curl_exec($ch); curl_close($ch);
Python (requests + PySocks)
pip install requests[socks] import requests proxies = {'http': 'socks5h://user:pass@host:1080', 'https': 'socks5h://user:pass@host:1080'} print(requests.get('https://api.ipify.org', proxies=proxies).text)
Delphi / RAD Studio (Indy)
uses IdHTTP, IdSSLOpenSSL, IdSocks, IdIOHandlerStack; var HTTP: TIdHTTP; IOH: TIdIOHandlerStack; Socks: TIdSocksInfo; SSL: TIdSSLIOHandlerSocketOpenSSL; // RAD Studio / Indy 10 only begin // --- plain HTTP via SOCKS5 (Delphi 7 + Indy 9/10) --- HTTP := TIdHTTP.Create(nil); IOH := TIdIOHandlerStack.Create(HTTP); Socks := TIdSocksInfo.Create(IOH); Socks.Host := 'host'; Socks.Port := 1080; Socks.Version := svSocks5; Socks.Username := 'user'; Socks.Password := 'pass'; IOH.SocksInfo := Socks; HTTP.IOHandler := IOH; ShowMessage(HTTP.Get('http://api.ipify.org')); HTTP.Free; // --- HTTPS (RAD Studio / Indy 10 + OpenSSL DLLs) --- HTTP := TIdHTTP.Create(nil); SSL := TIdSSLIOHandlerSocketOpenSSL.Create(HTTP); Socks := TIdSocksInfo.Create(SSL); Socks.Host := 'host'; Socks.Port := 1080; Socks.Version := svSocks5; Socks.Username := 'user'; Socks.Password := 'pass'; SSL.SocksInfo := Socks; HTTP.IOHandler := SSL; ShowMessage(HTTP.Get('https://api.ipify.org')); HTTP.Free; end;

Server

Uptime: