Skip to content

Commit 876c072

Browse files
committed
release: v0.1.11
1 parent a2ceac7 commit 876c072

12 files changed

Lines changed: 876 additions & 485 deletions

File tree

CHANGELOG.en.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,22 @@ All notable changes to `ii` are documented here. The default Chinese version is
66

77
Nothing yet.
88

9+
## 0.1.11 - 2026-07-17
10+
11+
### Added
12+
13+
- Added `ii relay --public <https-url>` to generate and persist a self-signed HTTPS relay certificate.
14+
- Added `ii send --relay <https-url> -k` to trust a self-signed relay and carry that policy in the ticket for receivers.
15+
16+
### Changed
17+
18+
- Made explicit `--relay` sends and receives relay-only, without UDP, LAN discovery, or direct paths.
19+
- Kept normal system TLS verification for manual TLS relays; first use of a self-signed relay can still be replaced by a man-in-the-middle.
20+
21+
### Documentation
22+
23+
- Updated self-signed relay, manual TLS, port, state-file, and security-boundary guidance.
24+
925
## 0.1.10 - 2026-07-17
1026

1127
### Changed

CHANGELOG.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,22 @@
66

77
暂无。
88

9+
## 0.1.11 - 2026-07-17
10+
11+
### 新增
12+
13+
- `ii relay --public <https-url>` 自动生成并持久化自签 HTTPS relay 证书。
14+
- `ii send --relay <https-url> -k` 接受自签 relay,并把该信任策略写入 ticket,接收端无需额外配置。
15+
16+
### 变更
17+
18+
- 指定 `--relay` 时发送和接收都强制 relay-only,不再尝试 UDP、局域网发现或点对点直连。
19+
- 手工 TLS relay 继续使用系统证书验证;自签 relay 的首次连接仍可能遭遇中间人替换。
20+
21+
### 文档
22+
23+
- 更新自签 relay、手工 TLS、端口、状态文件和安全边界说明。
24+
925
## 0.1.10 - 2026-07-17
1026

1127
### 变更

Cargo.lock

Lines changed: 4 additions & 41 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "ii"
3-
version = "0.1.10"
3+
version = "0.1.11"
44
edition = "2024"
55
rust-version = "1.91"
66
license = "MIT"
@@ -17,21 +17,20 @@ postcard = { version = "1", features = ["use-std"] }
1717
rustls = { version = "0.23.33", default-features = false, features = ["ring"] }
1818
s3 = { package = "rust-s3", path = "vendor/rust-s3", default-features = false, features = ["sync-rustls-tls"] }
1919
reqwest_dav = { version = "0.3.3", default-features = false, features = ["rustls-tls-no-provider"] }
20+
rcgen = { version = "0.14", default-features = false, features = ["crypto", "pem", "ring"] }
2021
serde = { version = "1", features = ["derive"] }
2122
tar = { version = "0.4", default-features = false }
2223
tempfile = "3"
2324
tokio = { version = "1", features = ["fs", "io-std", "io-util", "macros", "net", "rt-multi-thread", "signal", "time"] }
2425
tokio-util = { version = "0.7", features = ["io"] }
2526
toml = "1.0"
27+
tracing = "0.1"
28+
tracing-subscriber = { version = "0.3", default-features = false, features = ["ansi", "env-filter", "fmt", "std"] }
2629
url = { version = "2.5", features = ["serde"] }
2730

2831
[build-dependencies]
2932
winresource = "0.1"
3033

31-
[features]
32-
default = []
33-
relay-metrics = ["iroh-relay/metrics"]
34-
3534
[profile.release]
3635
codegen-units = 1
3736
lto = "fat"

README.en.md

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -179,31 +179,40 @@ ii version
179179

180180
You do not need to understand relay hosting to send ordinary files. This section is only for running your own relay service or using a fixed relay entrypoint in a company network.
181181

182-
Start a relay:
182+
Start a self-signed HTTPS relay:
183183

184184
```powershell
185-
ii relay
185+
ii relay --public https://SERVER_PUBLIC_IP:8443
186186
```
187187

188-
The default is an HTTP-only relay:
188+
You can use a domain too:
189189

190-
- It listens on `0.0.0.0:3340`; only allow `3340/tcp`.
191-
- Use the server's public IP directly. No domain, DNS, or certificate is required.
192-
- HTTPS, QUIC, and metrics do not start.
190+
```powershell
191+
ii relay --public https://relay.example.com
192+
```
193193

194-
Clients use it with:
194+
`--public` is the public HTTPS address used by clients and must be `https://host[:port]`. On first start, `ii` generates and persists a self-signed certificate and key in the relay state directory. It listens on the public URL port, or on `443` when the URL has no port. Use `-H` for a different local backend port behind NAT or a reverse proxy:
195195

196196
```powershell
197-
ii send .\video.mp4 --relay http://SERVER_PUBLIC_IP:3340
197+
ii relay --public https://relay.example.com:8443 -H 9443
198198
```
199199

200-
For HTTPS and a domain, explicitly provide an existing certificate and private key:
200+
Send through the relay:
201+
202+
```powershell
203+
ii send .\video.mp4 --relay https://SERVER_PUBLIC_IP:8443 -k
204+
```
205+
206+
`-k` accepts the self-signed certificate and puts that policy in the ticket; the receiver needs no certificate installation or relay configuration. A first connection can still be replaced by a man-in-the-middle.
207+
208+
With a domain and PEM certificate files, use manual TLS:
201209

202210
```powershell
203211
ii relay --tls relay.example.com -H 8443 --cert D:\certs\fullchain.pem --key D:\certs\privkey.pem
212+
ii send .\video.mp4 --relay https://relay.example.com:8443
204213
```
205214

206-
Clients use `https://relay.example.com:8443`. `ii` does not issue or renew certificates; the operator owns those files. See [ii.md](ii.md) for the full configuration. Plain HTTP is not suitable for a long-lived public deployment.
215+
Manual TLS does not use `-k`; clients use normal system TLS verification. Both `--relay` modes force HTTPS relay-only transport and skip UDP and direct paths. See [ii.md](ii.md) for ports, state paths, and the security boundary.
207216

208217
## Full Manual
209218

@@ -215,7 +224,7 @@ Release changes are documented in [CHANGELOG.en.md](CHANGELOG.en.md). The defaul
215224

216225
## Version
217226

218-
The current version is managed by Git tags. This repository currently uses `v0.1.10`.
227+
The current version is managed by Git tags. This repository currently uses `v0.1.11`.
219228

220229
## License
221230

README.md

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -190,31 +190,40 @@ ii version
190190

191191
普通发文件不需要先理解 relay。只有你要自建中继服务,或者公司网络环境需要固定中继入口时,才需要看这一段。
192192

193-
启动 relay:
193+
启动自签 HTTPS relay:
194194

195195
```powershell
196-
ii relay
196+
ii relay --public https://服务器公网IP:8443
197197
```
198198

199-
默认就是 HTTP relay
199+
也可以使用域名
200200

201-
- 监听 `0.0.0.0:3340`,只需要开放 `3340/tcp`
202-
- 直接填服务器公网 IP,不需要域名、DNS 或证书
203-
- 不启动 HTTPS、QUIC 和 metrics
201+
```powershell
202+
ii relay --public https://relay.example.com
203+
```
204204

205-
客户端使用
205+
`--public` 是客户端实际访问的公网 HTTPS 地址,必须是 `https://主机[:端口]`。首次启动会自动在 relay 状态目录生成并持久化自签证书和私钥。默认监听 `--public` 的端口,未写端口就是 `443`;NAT 或反向代理需要转到不同后端端口时,用 `-H`
206206

207207
```powershell
208-
ii send .\video.mp4 --relay http://服务器公网IP:3340
208+
ii relay --public https://relay.example.com:8443 -H 9443
209209
```
210210

211-
需要 HTTPS 和域名时,显式提供已有证书和私钥:
211+
发送端指定 relay:
212+
213+
```powershell
214+
ii send .\video.mp4 --relay https://服务器公网IP:8443 -k
215+
```
216+
217+
`-k` 表示接受自签证书,并把该策略带进 ticket;接收方无需安装证书或配置 relay。首次连接仍可能遭遇中间人替换。
218+
219+
已有域名和 PEM 证书时,使用手工证书模式:
212220

213221
```powershell
214222
ii relay --tls relay.example.com -H 8443 --cert D:\certs\fullchain.pem --key D:\certs\privkey.pem
223+
ii send .\video.mp4 --relay https://relay.example.com:8443
215224
```
216225

217-
客户端使用 `https://relay.example.com:8443``ii` 不申请、不续期证书;证书文件由运维方负责。完整配置见 [ii.md](ii.md)。纯 HTTP 不适合不受信任的公网长期部署
226+
手工证书模式不带 `-k`,客户端使用系统正常 TLS 校验。两种 `--relay` 都只走 HTTPS relay,不尝试 UDP 或直连;完整端口、状态路径和安全边界见 [ii.md](ii.md)
218227

219228
## 详细手册
220229

@@ -226,7 +235,7 @@ ii relay --tls relay.example.com -H 8443 --cert D:\certs\fullchain.pem --key D:\
226235

227236
## 版本
228237

229-
当前版本由 Git tag 管理。仓库内已使用 `v0.1.10`
238+
当前版本由 Git tag 管理。仓库内已使用 `v0.1.11`
230239

231240
## 许可证
232241

0 commit comments

Comments
 (0)