Skip to content

Commit 7e81089

Browse files
committed
docs: add dnstc transport mode issue drafts
1 parent 200335f commit 7e81089

3 files changed

Lines changed: 101 additions & 0 deletions

File tree

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
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+
```

issues/dnstc-08-multi-instance.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
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+
```

issues/dnstc-09-sip003-mode.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
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`

0 commit comments

Comments
 (0)