diff --git a/README.md b/README.md index e69de29..571e33c 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,73 @@ +# ai-xray + +Scripts and configs for benchmarking Xray proxy configurations to the Juris remote server (`83.99.190.32`). + +## Purpose + +Find the best-performing Xray protocol and transport combination for a VPN tunnel between the local Agap server and the Juris remote server, optimising for latency, throughput, and anti-DPI evasion. + +## What Was Tested + +Compared multiple Xray configurations on the same server pair: + +- **VLESS + TCP + Reality + Vision** (classic Reality setup) +- **VLESS + XHTTP + Reality** (newer HTTP-based transport) +- Various SNI targets for Reality camouflage (`www.delfi.lv`, `www.lmt.lv`, `www.inbox.lv`, `e-klase.lv`) +- Multiple TLS fingerprints (`chrome`, `firefox`, `safari`) + +## Scripts + +| Script | Purpose | +|--------|---------| +| `test_xray_connection.sh` | Basic connectivity test to the remote server | +| `test_sni_configs.sh` | Test latency and throughput across different SNI targets | +| `test_all_configs.sh` | Full benchmark across all protocol/transport combinations | +| `benchmark_improvements.sh` | Iterative improvement benchmark | + +## Results + +See `sni_test_results.md`, `config_test_results.md`, and `improvement_results.md` for full benchmark output. + +**SNI winner**: `www.delfi.lv` (121ms avg latency) — used as both Reality destination and serverName. + +**Protocol winner**: **VLESS + XHTTP + Reality** — lowest latency (142ms avg, 225ms P95), best upload throughput vs TCP+Reality+Vision. + +## Final Configuration + +### Server (Juris — `share.alogins.net:443`) + +Running inside an LXD container (`lxc exec xray`) on the Juris host. + +| Setting | Value | +|---------|-------| +| Protocol | VLESS | +| Transport | XHTTP | +| Security | Reality | +| Reality destination | `www.delfi.lv:443` | +| Allowed SNIs | `www.delfi.lv`, `www.lmt.lv`, `www.inbox.lv`, `e-klase.lv` | +| XHTTP path | `/xt-6036d37d` | +| XHTTP mode | `auto` | +| xmux concurrency | 16-32 streams, 64-128 reuse times | +| Padding | 100-1000 bytes | + +### Client (Agap — local x-ui) + +| Setting | Value | +|---------|-------| +| Outbound tag | `juris-xhttp` (primary) | +| Server | `share.alogins.net:443` | +| Transport | XHTTP, path `/xt-6036d37d` | +| Reality SNI | `www.delfi.lv` | +| TLS fingerprint | `chrome` | +| UUID | `6e422ab5-070a-43f6-8241-38cd56d23d24` | + +A fallback outbound `juris-reality` (VLESS + TCP + Reality + Vision) is also configured but has no routing rules assigned. + +## Infrastructure + +See `xray_config.md` for full server/client configs, credentials, API usage, and routing rules. + +| Role | Host | Details | +|------|------|---------| +| Client | Agap (`95.165.85.65`) | x-ui 2.8.10, Xray 25.10.15 | +| Server | Juris (`83.99.190.32`) | LXD container `xray`, x-ui 2.8.10, Xray 26.2.6 |