TerminalPhone:一支 Bash 腳本,做到匿名、加密、無伺服器的語音通訊

本篇文章更新時間:2026/02/27
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知或向一介資男的 LINE 社群反應。
如果本站內容對你有幫助,歡迎贊助支持


讀 TerminalPhone 專案:一支 Bash 腳本打造的極簡密語工具

編輯前言:這篇筆記源自我對匿名通訊工具的興趣,原文來自 GitLab 專案 Here ForAwhile / terminalphone。我一直以為安全語音通訊一定需要龐大的後端基礎設施,但這個專案完全顛覆了我的想像:一行行 Bash 就做到了完整的 Tor 隱藏服務通訊、語音壓縮與加密。

核心觀點

  • TerminalPhone 是以 Tor 隱藏服務為基礎的匿名語音與文字通訊工具,不需要伺服器、不需要帳號,.onion 就是身份。
  • 通訊採 錄完再傳 模式,透過 Opus 壓縮與 AES 或 ChaCha20 等強力加密完成傳輸。
  • 整個系統僅靠 一支 Bash 腳本,透過 sox、openssl、socat、Tor 等工具組合出完整的 E2E 加密語音通訊鏈。

深入解析

TerminalPhone 給我的第一印象是「這不可能吧」。通常我們想到語音通訊,會覺得那是複雜的 RTP、WebRTC、伺服器協調、端對端連線,但這裡的做法極度簡潔:像對講機一樣,只在你錄完語音後一次性傳送。

原文強調:TerminalPhone 是一個 "Encrypted push-to-talk voice communication over Tor hidden services" 的實作。

這個理念讓它避開了即時串流的複雜性,也降低了在 Tor 上卡頓的風險。以下是我覺得最值得記住的兩個面向。

匿名性建基於 Tor

  • 每個使用者都有自己的 hidden service
  • .onion 地址本身就是 ID
  • 無需 IP、無需開埠、無需帳號

這讓 TerminalPhone 的「身份」與「通訊路徑」完全綁在 Tor 內部。更棒的是,它內建 Snowflake 支援,對於需要翻牆或面臨審查的使用者也能啟用 WebRTC 代理。

安全性設計的務實態度
文章內建三層安全理念:

  • 應用層加密(AES-256-CBC 為預設)
  • PBKDF2 派生金鑰(1 萬次 iteration)
  • 可選的 HMAC-SHA256 簽章避免重放攻擊

但作者同時誠實指出限制:沒有 forward secrecy,秘密金鑰一旦洩漏,所有訊息都會暴露。我欣賞這種透明而不炫技的態度。

筆者觀察

這不是語音通訊,而是一種「極簡、反分析的通訊哲學」

TerminalPhone 採取非連續傳輸的「錄完再送」模式,其實帶來了另一層安全性:傳輸模式本身難以流量分析。這對於使用 Tor 的應用來說是極大的優勢。

這專案提醒我,工具不必複雜才能可靠

它沒有花俏 UI、沒有巨量依賴,卻把:

  • 匿名性
  • 端對端加密
  • 音訊處理
  • 通訊握手與協商

全部以 Bash 與常見 CLI 工具優雅地串起來。這種極簡主義在資訊安全領域幾乎快要看不到了。

實際應用層面的建議

如果你真的想用 TerminalPhone,這里是我覺得必須注意的:

  • 必須妥善保護 shared secret,它是整個安全性的根本。
  • 若你需要抗攻擊能力,務必啟用 HMAC。
  • 若你要與非技術用戶溝通,Termux 版本是相對簡單的切入點。
  • 若要更高匿名性,可以搭配 ExcludeNodes 過濾特定國家。

總結來說,TerminalPhone 讓我重新感受到 Linux 工具鏈的生命力:有時候,安全通訊不一定需要複雜框架,一支 Bash 也做得到,而且非常漂亮。


Share:

作者: Chun

WordPress 社群貢獻者、開源社群推廣者。專注於 WordPress 外掛開發、網站效能最佳化、伺服器管理,以及 iDempiere 開源 ERP 導入與客製開發。曾參與 WordCamp Taipei 等社群活動,GitHub Arctic Code Vault Contributor。提供資訊顧問、WordPress 開發教學、主機最佳化與企業 ERP 整合服務。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


文章
Filter
Mastodon