ostp/ostp-gui
ospab 1e9111ab9f feat(client): auto-calibrate TTL-desync by measuring hops to the server
Adds a tiny built-in probe (ttl_probe) that measures the hop distance to the
server, so the TTL-desync decoys are aimed automatically instead of by a
hand-guessed number — without pulling in the whole ostp-prober and without any
new server endpoint or exposed port.

How it works, and why it needs no prober-server: the OSTP server answers only a
valid handshake and silently drops everything else, so the client sends the real
handshake with a rising IP TTL and watches for the first TTL that draws a reply.
Datagrams whose TTL is too low die on a router before the server and create no
state there; the first responding TTL is the server distance. Decoys are then
stamped at hops-1, so they clear the DPI (which sits far closer than the server)
yet expire before the server. This is inherently key-gated — no key, no valid
handshake, no reply, so an unauthenticated caller learns nothing — and rides the
existing UDP port, which is exactly the "works for key holders, no prober-server,
no ports exposed to the internet" property that was asked for.

Config: transport.ttl_desync_auto (on by default). When on and desync is
enabled, the measured value overrides ttl_desync_ttl; measurement runs once and
is cached, cleared on a config change. On measurement failure it falls back to
the configured fixed TTL rather than skipping desync. The whole path is gated
behind ttl_desync (off by default), so a normal connection never runs it.

The probe logic is unit-tested (measures against a local responder; decoy-TTL
math). The real hop measurement and the desync effect both need a real network
to confirm and cannot be exercised here.
2026-08-19 19:53:14 +03:00
..
src fix(gui): honest TUN error on Linux, and a window that can be resized 2026-08-04 00:56:28 +03:00
src-tauri feat(client): auto-calibrate TTL-desync by measuring hops to the server 2026-08-19 19:53:14 +03:00
.gitignore feat(gui): add fully native tauri windows gui with premium mobile layout, real-time statistics polling, in-app config editor, and graceful exit cleanup 2026-05-15 22:01:20 +03:00
README.md feat(gui): add fully native tauri windows gui with premium mobile layout, real-time statistics polling, in-app config editor, and graceful exit cleanup 2026-05-15 22:01:20 +03:00
build_dist.js §A.3: remove dead tun2socks code (native OSTP TUN is the only path) 2026-06-27 16:29:55 +03:00
package-lock.json feat(gui): privileged TUN helper architecture - GUI runs unprivileged, UAC prompt shown only for TUN mode via ostp-tun-helper.exe IPC 2026-05-15 23:08:14 +03:00
package.json fix(ci): staging script was CommonJS in an ES-module package 2026-08-11 17:07:55 +03:00
stage-sidecar.cjs fix(ci): staging script was CommonJS in an ES-module package 2026-08-11 17:07:55 +03:00

README.md

Tauri + Vanilla

This template should help get you started developing with Tauri in vanilla HTML, CSS and Javascript.