Arti 更新日誌¶
Arti 是 Tor Project 以 Rust 開發的新一代 Tor 實作。本頁從上游 release notes 條列摘譯,新版本永遠在最上面。
c-tor 移植到 Rust 的進度¶
Arti 是 Tor Project 從 2021 年開始的計畫,把原本用 C 寫成的 Tor(社群慣稱 c-tor)整套以 Rust 重寫,換取更好的記憶體安全、模組化架構與可嵌入性。開發順序先把用戶端補到足以取代 c-tor,再往中繼端推進。下表依官方 CHANGELOG 與 release notes 整理,狀態以實際釋出的功能為準。
| 功能領域 | 進度 | 完成 / 進行的版本 |
|---|---|---|
用戶端核心(SOCKS 代理、arti-client 嵌入函式庫) |
✅ 已完成,宣告 stable | 1.0.0(2022-09) |
| DNS 代理 | ✅ 已完成 | 1.0.0(2022-09) |
| 抗審查:橋接與 pluggable transports(obfs4、Snowflake、WebTunnel) | ✅ 已完成 | 1.1.0(2022-11) |
| 連線 onion 服務(用戶端) | ✅ 已完成 | 1.1.6(2023-06) |
| 架設 onion 服務(服務端,含 full vanguards、限制性探索、用戶端授權) | ✅ 已完成 | 1.2.0(2024-03)起 |
| RPC 控制介面(取代 c-tor 的 control port) | ✅ 已完成,轉 stable | 1.4.2(2025-03) |
| HTTP CONNECT 代理 | ✅ 已完成,預設啟用 | 2.2.0(2026-03) |
| 流量控制與壅塞控制 | ✅ 2.6.0 起永遠啟用,flowctl-cc 這個開關已移除 |
2.4.0 轉 stable、2.6.0(2026-09)預設化 |
| Counter Galois Onion 加密(CGO) | ✅ 2.6.0 起永遠啟用 | 2.6.0(2026-09) |
| 嵌入非 Rust 語言(C FFI) | 🟡 RPC client 已有 C 友善介面,完整 FFI 規畫中 | 進行中 |
| 中繼(relay) | 🟡 開發中,官方明說不要拿去接公開網路 | 2.0.0(2026-02)到 2.6.0 持續推進 |
| 目錄權威(directory authority) | 🟡 開發中,文件解析與 microdescriptor 計算已有雛形 | 2.0.0(2026-02)到 2.6.0 持續推進 |
| control-port 協定相容 | ⬜ 不另實作,改以 RPC 取代 | — |
圖例:✅ 已完成 🟡 開發中 ⬜ 不實作
用戶端這一側的能力已大致對齊 c-tor,能當 SOCKS 代理、連線與架設 onion 服務、走橋接與 pluggable transports。計畫現在的主力放在中繼端,還無法用 Arti 架設 Tor 中繼,這部分目前只能用 c-tor。c-tor 的 control port 在 Arti 改以 RPC 介面取代,設計取向不同。
中繼端做到哪裡¶
2.6.0 隨版附上一份 README_relay.md,把中繼與目錄權威要做的事列成清單並標出完成狀態。這是目前最接近官方路線圖的東西,開頭第一句就是不要在公開 Tor 網路上執行 arti-relay。
依 2026 年 8 月那份清單,中繼端的完成度:
| 區塊 | 已完成 | 待辦 |
|---|---|---|
| 基本運作(通道、電路、CREATE2、EXTEND2、ORPort) | 9 | 8 |
| 出口支援(DNS、BEGIN、RESOLVE、離開政策) | 0 | 5 |
| 目錄快取 | 0 | 13 |
| 自我檢測(ORPort 可達性、頻寬、DNS) | 0 | 3 |
| onion 服務支援(HsDir、引介、會合) | 0 | 3 |
| 安全功能(離線身分金鑰、記憶體與 socket 層 DoS 防禦) | 0 | 4 |
| 效能功能(緩衝區調校、電路排程、conflux) | 0 | 5 |
| 目錄權威 | 0 | 28 |
已完成的九項集中在最底層:接受連入通道、雙向通道認證、處理與遞送 relay cell、CREATE2 與 CREATE_FAST、EXTEND2、監聽 ORPort。也就是說電路建得起來,但一個中繼要能真的上線所需的其他東西幾乎都還沒開始,金鑰產生與輪替、發布 router descriptor、頻寬上限這些都還在待辦。
那份清單自己註明 2026 年 8 月 11 日之後團隊還沒回頭勾選,所以實際進度可能比表上更前面,2.6.0 就補上了 ntor-v3 的 CREATE2 握手與中繼 DNS 解析器的初步設計。要追精確狀態得看 issue tracker。
Arti 2.6.0¶
2026-09-01 · CHANGELOG
- 壅塞控制與 Counter Galois Onion 加密(CGO)改為永遠啟用,
flowctl-cc與counter-galois-onion兩個 cargo feature 開關一併移除。用arti-client或tor-proto的專案升上來時要拿掉那兩個開關。 - 中繼端進展:支援
ntor-v3的 CREATE2 握手、不再把認不得的電路 ID 當成通道協定違規、收到 DESTROY 的通道不再回送 DESTROY,另有中繼 DNS 解析器與快取的初步設計。 - 目錄權威端進展:可以計算 microdescriptor、初步支援 Extra Info 文件、
DirMgr暫時可以當DirServer的後端。 - 隨版附上
README_relay.md,列出中繼與目錄權威還要做哪些事,見上面的「中繼端做到哪裡」。 - 上游沒有提到已被實際利用。這一版沒有列出安全修補。
Arti 2.5.1¶
2026-08-03 · 官方 CHANGELOG
- 修補一個影響效能的重要錯誤:
XON訊息原本把「每秒位元組」誤判為「每秒位元」,導致允許傳輸的資料量少了 8 倍,現已修正。 - Onion 服務新增可設定連到
AF_UNIX位址。 - 用戶端與 onion 服務之間,在啟用實驗性 feature(
hsc-negotiate-extensions、hss-negotiate-extensions)時,可協商壅塞控制與 Counter Galois Onion(CGO)加密。 - 持續往「Arti 作為 Tor 中繼」開發,新增驗證與處理傳入中繼訊息的基礎設施。
Arti 2.5.0¶
2026-06-30 · 上游公告
- Counter Galois Onion(CGO)加密正式列為穩定,編譯時啟用
counter-galois-onionfeature(或full)即可使用。這是本次釋出的主打項目。 - 壅塞控制(
flowctl-cc)改為預設啟用,不需額外設定即可提升傳輸吞吐。此 feature 已於 2.4.0 轉 stable,本版把預設打開。 - 這一版唯一的安全修補:兩個中危阻斷服務(DoS,讓服務當掉或無法回應)漏洞,TROVE-2026-24(惡意目錄鏡像可觸發
tor-netdocparser crash,最終停掉tor-dirmgr任務)、TROVE-2026-27(低效演算法可被利用拖垮 CPU),兩者皆未發現實際被利用。 - 持續往「Arti 作為 Tor 中繼」與「Arti 作為 directory authority」開發,新增 router descriptor、microdescriptor 與 consensus 的編解碼,以及 CREATE2 cell 的 ntor 握手回應。
- MSRV(最低支援 Rust 版本)提升至 Rust 1.91。
Arti 2.4.0¶
2026-06-01 · 上游公告
- 持續往「Arti 作為 Tor 中繼」與「Arti 作為 directory authority」開發。
- 修補多個影響 onion 服務用戶端連線的錯誤。
- 流量控制與壅塞控制(flow control / congestion control)正式列為穩定,編譯時啟用
flowctl-ccfeature 即可使用。 arti-clientcrate 出現多項TorClientAPI 破壞性變更,並移除use_obsolete_software選項(#1960),對應 2.3.0 預告的介面調整。
Arti 2.3.0¶
2026-05-07 · 上游公告
- macOS 最低支援版本由 10.12 提升至 10.14。
- 持續往「Arti 作為 Tor 中繼」與「Arti 作為 directory authority」開發。
- RPC 介面新增「檢視 tunnel paths」的 API。
- 新增 syslog 日誌輸出(啟用
syslogfeature 並開啟logging.syslog設定)。 - 新增
logging.protocol_warnings選項,將協定違規以 warning 等級記錄。 - 預告下一版會把
TorClient改為明確的Arc<T>包裝(破壞性變更,影響arti-clientcrate 的使用者)。
Arti 2.2.0¶
2026-03-31 · 上游公告
- HTTP CONNECT 代理納入完整建置且預設啟用,部署 Arti 作為 SOCKS 替代代理更直接。
- RPC 介面支援非阻塞請求與 superuser session 管理,便於外部工具控制 Arti 行為。
- relay 開發持續推進,朝「Arti 可作為 Tor 中繼運行」的目標邁進。
- 目錄服務、設定系統與多項內部模組同步迭代修補。
- 安全修補:一個低危問題。嵌入 arti 的應用程式如果也用了
weak-table且開啟ahash,在沒有硬體 AES 支援的機器上,抗阻斷服務的能力會變差(TROVE-2026-005)。
Arti 2.1.0¶
2026-03-03 · 上游公告
- 中繼支援的底層建設大幅補完,為 2.2.0 開始對外開放 relay 功能鋪路。
- 設定系統改用
derive-deftly巨集架構,新增設定型別的成本顯著降低。 - RPC 介面持續打磨,加入更多管理用 API。
- MSRV(最低支援 Rust 版本)提升至 Rust 1.89.0。
- 安全修補三項,都是相依套件升級:
bytes升到 0.11.1,避開BytesMut::reserve()整數溢位造成的未定義行為(TROVE-2026-001、RUSTSEC-2026-0007)。keccak升到 0.1.6,避開 ARMv8 組譯錯誤可能造成的未定義行為。time升到 0.3.47,清掉 RUSTSEC-2026-0009 的稽核警告。