File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ # Single Transport Mode
2+
3+ ** Depends on:** #5 (Process Manager)
4+
5+ ## Summary
6+
7+ Configure and run a single Slipstream or DNSTT transport instance through gost DNS proxy.
8+
9+ ** Motivation:** Basic use case - single tunnel connection. Foundation for multi-instance mode.
10+
11+ ## Design
12+
13+ ** Supported transports:**
14+ - Slipstream client (standalone)
15+ - DNSTT client (standalone)
16+
17+ ** Configuration:**
18+ - Transport type (slipstream/dnstt)
19+ - Server domain
20+ - Server credentials (TLS fingerprint / pubkey)
21+ - Local listen address
22+
23+ ** Data flow:**
24+ ```
25+ App → gost (SOCKS/HTTP proxy) → Transport Client → DNS Proxy (resolvers) → Server
26+ ```
27+
28+ ** CLI:**
29+ ``` bash
30+ dnstc start --transport slipstream --domain t.example.com --fingerprint abc123
31+ ```
Original file line number Diff line number Diff line change 1+ # Multi-Instance Transport Mode
2+
3+ ** Depends on:** #7 (Single Transport Mode)
4+
5+ ## Summary
6+
7+ Run multiple transport instances with gost load balancing for higher aggregate bandwidth.
8+
9+ ** Motivation:** Single DNS tunnel has limited bandwidth. Multiple instances can aggregate throughput by distributing connections.
10+
11+ ## Design
12+
13+ ** Architecture:**
14+ ```
15+ App → gost (load balancer) → Transport Instance 1 → DNS Proxy → Server
16+ → Transport Instance 2 → DNS Proxy → Server
17+ → Transport Instance N → DNS Proxy → Server
18+ ```
19+
20+ ** gost features used:**
21+ - [ Selector] ( https://gost.run/en/concepts/selector/ ) - distribute connections across instances
22+ - Failure detection - remove dead instances from pool
23+
24+ ** Configuration:**
25+ - Number of instances
26+ - Can mix transport types (e.g., 2x Slipstream + 1x DNSTT)
27+ - Per-instance server config if connecting to different servers
28+
29+ ** CLI:**
30+ ``` bash
31+ dnstc start --instances 3 --transport slipstream --domain t.example.com
32+ ```
Original file line number Diff line number Diff line change 1+ # SIP003 Plugin Mode
2+
3+ ** Depends on:** #2 (Binary Manager), #5 (Process Manager)
4+
5+ ## Summary
6+
7+ Run Shadowsocks client with Slipstream as SIP003 transport plugin.
8+
9+ ** Motivation:** SIP003 is the standard plugin interface for Shadowsocks. Provides mature SOCKS5/HTTP proxy with encryption on top of DNS tunnel transport.
10+
11+ ## Design
12+
13+ ** Components:**
14+ - shadowsocks-rust client (` sslocal ` )
15+ - Slipstream client as SIP003 plugin
16+
17+ ** Configuration:**
18+ - Shadowsocks server address/port/password/method
19+ - Plugin: slipstream
20+ - Plugin opts: domain, fingerprint, dns-server (from resolver pool)
21+
22+ ** Data flow:**
23+ ```
24+ App → sslocal (SOCKS5) → Slipstream Plugin → DNS Proxy (resolvers) → Server
25+ ```
26+
27+ ** CLI:**
28+ ``` bash
29+ dnstc start --mode sip003 \
30+ --ss-server example.com:8388 \
31+ --ss-password secret \
32+ --domain t.example.com \
33+ --fingerprint abc123
34+ ```
35+
36+ ** Binary management:**
37+ - Download shadowsocks-rust sslocal binary
38+ - Env var override: ` DNSTC_SSLOCAL_PATH `
You can’t perform that action at this time.
0 commit comments