Iroh 1.0:用密钥寻址的 P2P 网络库

---
title: "Iroh 1.0:用密钥寻址的 P2P 网络库"
source_url: "https://news.ycombinator.com/item?id=48542480"
published_at: "2026-06-16"
language: "zh"
---

# Iroh 1.0:用密钥寻址的 P2P 网络库

2026 年 6 月 15 日,n0computer 发布 Iroh 1.0,宣称"用密钥替代 IP 地址作为网络寻址方式"。

帖子收到 1296 分、400 条评论。但评论区的第一反应不是"这很酷",而是"这到底是什么"。

saberience 的说法很直接:*This page is basically useless in explaining what Iroh is or does and why I should care.* mkl 补充:读完博客和主页还是不知道这东西跟自己有什么关系,直到读完一百多条评论才搞明白。

评论区的价值在于:**通过横向对比,把一个讲不清楚的产品定位搞清楚了。**

---

## 这是什么

Iroh 是一个 Rust 写的 P2P 网络库。核心思想是:**用加密密钥(Ed25519 公钥)作为网络地址,而不是 IP 地址。**

官方的说法是:

- IP 地址不稳定(设备移动、NAT、防火墙)
- 密钥由用户控制,不会变
- 用密钥寻址,连接可以直接穿透 NAT

技术栈:

- QUIC 连接(自研实现 noq,支持 multipath)
- TLS 1.3 + Raw Public Keys(RFC 7250)
- NAT 穿透(QUIC NAT traversal draft)
- 可插拔传输层(IPv4/IPv6、WebSocket relay、BLE、Tor、LoRa)

官方强调:**尽量用现有 IETF 标准,不发明新东西。** rklaehn:*We try very hard not to invent new things unless absolutely necessary.*

---

## 这不是什么

评论区的核心争论是:**这东西跟 X 有什么区别?**

### Tailscale

apitman 的总结被反复引用:**Tailscale at the application layer instead of the network layer。**

区别:

| 维度 | Tailscale | Iroh |
|------|-----------|------|
| 层级 | 网络层(TUN 接口) | 应用层(库) |
| 部署 | 需要安装客户端 | 嵌入应用 |
| 权限 | 需要 root/管理员 | 无需特殊权限 |
| 网络 | 封闭的 tailnet | 开放的 P2P 网络 |
| 账号 | 需要 Tailscale 账号 | 无需账号 |

colinmarc 的评价:*Tailscale is a great service that happens to be open source, but Iroh is clearly structured as a library that you can build into whatever you want.*

kbenson 补充:Tailscale 的网络是"你的节点",Iroh 可以连接"任意节点"——不需要双方加入同一个 tailnet。

### libp2p

karissa:*The folks who made iroh worked on libp2p first, but found many limitations in libp2p's design. iroh is a better more flexible and powerful version of libp2p.*

区别:

- libp2p 设计于 TCP 时代,QUIC 是后来加的
- Iroh 从头基于 QUIC 设计,用 TLS ALPN 做协议协商,用 QUIC 原生流复用
- libp2p 抽象传输层为流,Iroh 抽象传输层为"QUIC 下层的不可靠数据报"

dignifiedquire:*libp2p was mainly designed around the limitations of tcp, as quic simply wasn't there yet when the design started. Iroh gets the benefit of having been designed and built from the ground up, based on quic.*

### WebRTC

opem:*iroh is basically WebRTC, except it works in and outside of a browser.*

syllogistic 纠正:**反了。** Iroh 不支持浏览器(虽然有 WASM 编译,但功能受限)。WebRTC 是浏览器环境的选择,Iroh 是原生应用的选择。

区别:

| 维度 | WebRTC | Iroh |
|------|--------|------|
| 环境 | 浏览器优先 | 原生应用优先 |
| 协议 | SRTP/DTLS | QUIC |
| 信令 | 需要外部信令服务器 | 密钥即地址 |
| 中继 | TURN/STUN | Iroh relay |

### VPN / Yggdrasil

Thaxll:*IP works just fine, such as DNS. There is already IPv6 and quic.*

rklaehn 的回应:**建立直连是当前互联网架构下很难的问题。** IPv6 没有解决 NAT 穿透,QUIC 没有解决地址发现。

ben-schaaf:Yggdrasil 是 P2P mesh 网络,需要配置 peer 加入网络,不配置端口转发就无法在 NAT 后工作。Iroh 是连接协议:给你一个公钥,你就能建立连接,不管设备在哪。

---

## 怎么用

官方给出的定位:**嵌入应用的 P2P 网络栈。**

用例:

- **Delta Chat**:用 Iroh 做 P2P 邮件传输
- **Holochain**:用 Iroh 做 P2P 网络
- **sendme / dumbpipe**:官方示例工具,文件传输和管道
- **分布式 ML 训练**:arilotter 说公司用 Iroh 做 ML 训练系统
- **视频流**:官方演示 media over QUIC

特点:

- 不需要用户安装 VPN 客户端
- 不需要用户加入某个网络
- 不需要 root 权限
- 应用自己控制连接和权限

rklaehn:*I can't get my mother to install a daemon, but I can get her to download an app that uses iroh under the hood.*

---

## 定价争议

j4cobgarby:*Doesn't it seem odd to have "Pricing" for a protocol that's meant to serve a similar function to IP addresses?*

官方回应:

- 核心库和协议完全开源(Apache 2.0)
- 定价页面是额外服务:托管 relay、监控、技术支持
- 可以自建 relay(完全开源,文档齐全)

serf:*tailscale syndrome.* 开源协议 + 商业托管的模式,社区已经见过很多次。关键问题是:**自建 relay 是否和官方托管一样好用?**

noworriesnate:如果我付费订阅,然后价格翻 4 倍,我有什么选择?能自建 relay 吗?会失去功能吗?

karissa:**Yes you can self-host your relays. Forever!**

---

## 技术细节

**地址发现**

rklaehn:默认用 DNS 做地址查找(创意用法),可选启用 BitTorrent Mainline DHT(BEP 0044)做 P2P 发现。Mainline DHT 默认关闭,避免移动应用被识别为 BitTorrent 客户端。

**中继安全**

opem:中继服务器能不能做中间人攻击?

rklaehn:不能。连接用 TLS 加密,中继只看到端点 ID 和 IP 地址,无法解密内容。要截获数据需要双方的私钥。

**协议可识别性**

jhancock:协议会不会被外部识别和封锁?

matheus23:QUIC Initial 包里有 `.iroh.invalid` SNI,容易被识别。解决方案是 Encrypted ClientHello(rustls 还不支持)。但通过 relay 传输(WSS 连接)时,IP 层流量完全加密,无法识别。

---

## 社区总结

评论区没有给出"Iroh 是 X"的简单答案,但把边界摸清楚了:

- 像 Tailscale,但在应用层,不需要 VPN 客户端
- 像 libp2p,但从头基于 QUIC 设计,更简洁
- 像 WebRTC,但针对原生应用,不支持浏览器
- 像 VPN,但不需要双方加入同一个网络

官方定位:**嵌入应用的 P2P 网络栈。**

社区定位:**Tailscale 应用层版。**

两个定位指向同一个结论:如果你想做 P2P 应用(聊天、文件传输、视频流),不想让用户装 VPN 客户端,Iroh 是一个选择。