節點軟體 · 逐步指南
從一張空桌子到配對好的節點
該買什麼、如何準備一台小型 Linux 電腦、安裝節點軟體、在 Vonode App 中掃描配對 QR Code,以及在免費方案和訂閱之間選擇。已經有模組和 Linux 電腦的讀者,可以直接看安裝頁上的精簡版本。
節點沒有網頁介面。安裝一次、與 App 配對之後,一切都在 App 裡管理。未訂閱時,節點以免費方案執行:App 顯示你選定的一個號碼經行動網路收到的簡訊。其他所有功能(電話、Wi-Fi 通話、傳簡訊、通知、eSIM 設定檔、代理、自動任務、更多號碼)都需要在 App 內購買的有效 Vonode 訂閱。一份訂閱解鎖一個節點。
準備硬體
行動網路模組
Vonode 透過 USB 序列埠(AT)和 QMI 介面驅動採用高通平台的 Quectel 模組。哪些模組測試過,列在硬體頁面上。簡單來說:內建 Quectel EG25-G 的 DJI Cellular 模組,已在一台安裝 Ubuntu 22.04 的 amd64 電腦上測試;同系列的其他 Quectel 模組(單獨的 EG25-G、EC25、EC20、EC21、EM05/EM06、RM500Q)有程式碼支援,但尚未測試。
在測試過的模組上,可以經 Wi-Fi 通話打電話。它不支援行動網路通話,其他模組上的行動網路通話也尚未確認。
常見形式,從最簡單到最有彈性:
- 內建模組的 USB 網卡(塑膠外殼裡裝著模組,一個 SIM 卡槽,兩根小天線),插上就能用。請確認商品說明寫明會提供序列埠和 QMI 介面(「for Linux」「AT 指令」「QMI」);只提供網路卡功能的網卡(HiLink、僅 RNDIS 或僅 ECM 韌體)不受支援。
- 裝在 USB 轉接板上的 Mini PCIe 模組。Mini PCIe 轉 USB 轉接板,具備 SIM 卡槽和兩條天線轉接線(SMA 或 IPEX)。一台主機接多個模組時通常用這種方式。
- 裝在 M.2 轉 USB 轉接板上的 M.2 模組,適用於 5G 的 RM500Q。
- DJI Cellular 模組。需要先切換一次 USB 識別,Linux 才能辨識它;步驟見硬體頁面。
兩根天線(主天線和分集天線)都要接上,並把主機放在手機收得到訊號的地方:靠近窗戶,而不是放在櫃子裡。即使使用 Wi-Fi 通話,模組也至少要看到一次行動網路才能完成註冊。
主機
- 任何一台 64 位元 x86(amd64)Linux 電腦。Intel N100 迷你電腦(無風扇、8 GB 記憶體、一顆小 SSD)很合適:USB 埠夠用、耗電低、安靜。二手精簡型電腦或 NUC 也一樣可以。節點本身有 2 GB 記憶體和 4 GB 磁碟就足夠。
- Debian 12、Ubuntu 22.04 以上版本,或 Fedora。Raspberry Pi 等 ARM 開發板預計在 1.3.1 支援;OpenWrt 路由器、macOS 或 Windows 上的 Docker Desktop,以及沒有 USB 直通的虛擬機器不受支援。
- 連接多個模組時,請使用有外接電源的 USB 集線器。模組在發射峰值時電流可達 2 A;兩個模組接在主機板無外接電源的 USB 埠上,常會隨機重新啟動或出現「模組消失」的問題。
- 建議用有線網路連接到路由器。
SIM 卡、eSIM 與網路
- 一張 Nano SIM 卡,並配上適合卡槽的卡套(Mini PCIe 轉接板通常使用標準卡或 Micro 卡)。請先在手機上關閉 SIM 卡的 PIN 碼,否則節點無法使用這張卡。
- 模組沒有內建 eSIM。要使用 eSIM 設定檔,請在卡槽插入一張可插拔 eUICC 卡(俗稱「eSIM 卡」「實體 eSIM」);之後可以在 Vonode App 中下載、切換和刪除其中的設定檔(訂閱功能)。
- Wi-Fi 通話(VoWiFi)需要電信業者在你的資費方案中開通,和手機上一樣。
- 手機必須能透過一個 TCP 連接埠(預設 2222)連到節點:在路由器上設定連接埠轉送,或在手機和主機之間使用 WireGuard、Tailscale 等 VPN。如果位在電信級 NAT 之後(沒有公用 IPv4),請使用 VPN。
準備主機
安裝 Linux 發行版,連上網路,並用可以使用 sudo 的使用者登入。然後更新系統,並停用會搶占模組序列埠的 ModemManager:
$ sudo apt update && sudo apt full-upgrade -y$ sudo systemctl disable --now ModemManager
插上模組,確認 Linux 已辨識:
$ lsusb | grep -i -E 'quectel|2c7c|qualcomm|05c6'$ ls /dev/ttyUSB* /dev/cdc-wdm*
每個模組應顯示一行 Quectel 資訊、四個 ttyUSB 連接埠和一個 cdc-wdm 連接埠。如果不是,請看疑難排解。
下載節點安裝套件
每個版本都以 vonode_<version>_linux_amd64_commercial.tar.gz 的形式發布在 Vonode 節點發行頁上,附有 SHA-256 檢查碼、軟體物料清單,以及其中 GPL 和 LGPL 元件的原始碼。下載、驗證並解壓縮:
$ curl -fLO https://github.com/vonode/vonode-releases/releases/download/<version>/vonode_<version>_linux_amd64_commercial.tar.gz$ curl -fLO https://github.com/vonode/vonode-releases/releases/download/<version>/vonode_<version>_linux_amd64_commercial.tar.gz.sha256$ sha256sum -c vonode_<version>_linux_amd64_commercial.tar.gz.sha256$ tar -xzf vonode_<version>_linux_amd64_commercial.tar.gz
安裝節點(systemd 安裝套件)
本版本建議的安裝方式。systemd 安裝套件把節點安裝為兩個系統服務,不需要 Docker。
在安裝套件的最上層目錄執行安裝程式:
$ cd vonode_<version>_linux_amd64_commercial$ sudo ./install.sh
安裝程式會把程式放到 /opt/vonode,保留既有的設定和資料庫,建立系統使用者 vonode-gateway(UID 和 GID 為 10001),並啟動兩個 systemd 服務:核心服務 vonode,以及 App 所連線的加密 SSH 閘道服務 vonode-gateway。
第一次啟動時,節點會產生一組隨機的管理員密碼,設定中只保存它的雜湊值。明文在 /opt/vonode/config/initial-admin-password 中,只有 root 可以讀取。你很少會用到它。
顯示配對 QR Code,並填寫手機連到節點時使用的位址:設定連接埠轉送時填 DDNS 網域名稱或公用 IP,否則填主機的 VPN 位址或區域網路位址。如果轉送的是其他連接埠,請加上 -port <連接埠>。
$ sudo /opt/vonode/vonode pair -c /opt/vonode/config/config.yaml -host node.example.com終端機會以方塊圖形顯示 QR Code,5 分鐘內有效,只能使用一次;需要新的 QR Code 時再執行一次這道指令。

在主機防火牆上允許 TCP 2222 連接埠;如果手機要從外部網路連線,還需在路由器上設定連接埠轉送:
$ sudo ufw allow 2222/tcp配對 App
從 App Store 安裝 Vonode(免費下載)並開啟。在「連接你的節點」頁面點一下掃描框,把相機對準終端機上的 QR Code。App 會透過 SSH 連線到節點,固定節點的主機金鑰,並在首頁顯示這個節點。
Vonode App 在中國大陸以外的 App Store 國家和地區提供,台灣、香港和澳門的 App Store 均可下載;中國大陸的 App Store 目前不提供。


免費號碼或訂閱
免費方案。開啟「號碼」標籤頁,選擇一個你想查看簡訊的號碼。這個選擇對該節點永久有效,從備份還原也會保留。之後「簡訊」標籤頁會顯示這個號碼收到的簡訊,你可以閱讀和刪除。


訂閱。開啟「更多」,點「查看方案」(或「更多 > 訂閱」)並訂閱。由 Apple 收費;App 把簽署的交易紀錄交給你的節點,節點幾秒內解鎖並重新啟動進入完整模式。之後用「新增模組」加入你的模組,為每張 SIM 卡開啟 Wi-Fi 通話,並依需要設定電話、eSIM、通知和自動任務。

日常維運
使用 systemd 安裝套件時,節點以 vonode 和 vonode-gateway 兩個服務執行。
查看狀態和記錄
$ systemctl status vonode vonode-gateway$ journalctl -u vonode -f
重新啟動
$ sudo systemctl restart vonode重新啟動或停止最多需要兩分鐘:節點會先取消註冊 Wi-Fi 通話並關閉通道。
忘記管理員密碼
$ sudo systemctl stop vonode$ sudo /opt/vonode/vonode reset-password -c /opt/vonode/config/config.yaml$ sudo systemctl start vonode
停止服務、重設密碼,再啟動服務。所有手機都會登出,需要重新配對。
- 備份:在 App 的「更多 > 備份紀錄」中操作。備份包含簡訊、通話紀錄和訂閱綁定,請妥善保管。
- 手機遺失時,可以在 App 的「已配對的手機」清單中移除它。
- 訂閱到期:如果訂閱到期未續訂,節點會繼續運作 72 小時,讓 App 有時間送達續訂;請開啟 App 續訂。之後,或退款後立即,節點回到免費方案,只顯示所選號碼的簡訊。
移轉到新硬體
在 App 中為舊節點建立並下載備份,安裝並配對新節點,然後匯入備份、還原並重新啟動。備份包含節點的訂閱綁定,所以新節點不必重新購買就能解鎖,並保留免費方案已選定的號碼。請妥善保管備份:其中包含簡訊、通話紀錄和綁定資訊。不要讓舊節點繼續用同一份資料執行。
疑難排解
「ModemManager is running」
它會比 Vonode 先占用序列埠。停用它,然後重新啟動節點:
$ sudo systemctl disable --now ModemManager$ sudo systemctl restart vonode
偵測不到模組
如果 lsusb 裡沒有 Quectel(2c7c)裝置,請換一條線或換一個連接埠,使用有外接電源的集線器,並查看核心記錄中的 USB 供電錯誤(「over-current」「device not accepting address」)。如果 lsusb 看得到模組但沒有 /dev/ttyUSB*,請載入驅動程式,然後重新插拔模組。有些轉接板出廠時讓模組處於沒有 USB 序列埠的模式,請依轉接板廠商的說明開啟;DJI Cellular 模組請看硬體頁面。
$ sudo dmesg | tail -n 30$ sudo modprobe -a option qmi_wwanApp 連不上節點
在你的網路之外的裝置上測試連接埠。沒有回應,表示路由器轉送或防火牆設定有誤,或者網路服務供應商使用了電信級 NAT(沒有公用 IPv4)。這時請在手機和主機之間建立 VPN(Tailscale、WireGuard),用主機的 VPN 位址配對,或使用節點文件中介紹的中繼選項。
$ nc -vz node.example.com 2222配對碼已過期或已使用
配對碼 5 分鐘內有效,只能使用一次;用安裝節點一節中的 pair 指令產生新的配對碼。
Wi-Fi 通話無法註冊
SIM 卡的資費方案需要開通 Wi-Fi 通話,模組至少要用這張 SIM 卡在行動網路上註冊過一次,主機還需要能透過 IPv6 或 IPv4 連到電信業者的 ePDG。App 的診斷頁面會顯示目前所處的階段;它可以匯出的支援套件,就是要寄給支援的資料。
簡訊時間不正確
節點使用主機的時區。請用 timedatectl 設定(使用 Docker 時,對安裝指令碼傳入 --tz Europe/London 這樣的 IANA 時區名稱)。
Docker Compose(即將推出)
即將推出。商用 Docker 映像檔尚未發布,所以本版本還不能使用這種方式,請使用上面的 systemd 安裝套件。下面的步驟說明 Docker 方式推出後的用法。
在映像檔發布之前,setup.sh 會停下並要求指定映像檔:如果某個版本的發行說明提供了 --image vonode/vonode@sha256:<digest>,請傳入它;否則請使用 systemd 安裝套件(在安裝套件最上層目錄、也就是 docker/ 的上一層執行 sudo ./install.sh),這是本版本支援的安裝方式。
安裝 Docker Engine 和 Compose
Docker 官方的便利指令碼可在 Debian、Ubuntu 和 Fedora 上安裝 Docker Engine 和 Compose 外掛程式。最後一道指令必須輸出 Compose v2 的版本號碼。
$ curl -fsSL https://get.docker.com | sh$ sudo systemctl enable --now docker$ docker compose version
執行安裝指令碼
在安裝套件的 docker/ 目錄下執行。--host 是手機連到節點時使用的網域名稱或 IP;不填時,指令碼會建議使用主機的區域網路位址,在同一個 Wi-Fi 下第一次配對時這樣就可以。
$ cd vonode_<version>_linux_amd64_commercial/docker$ sudo ./setup.sh --host node.example.com --image vonode/vonode@sha256:<digest>
指令碼會檢查主機(Linux、amd64、root、Docker、Compose、ModemManager),列出找到的模組及其裝置節點,在指令碼旁邊建立 config/、data/ 和 logs/,寫入 .env 和 docker-compose.override.yml,下載映像檔,啟動兩個容器(核心 vonode,以及供 App 連線的 SSH 閘道 vonode-gateway),並等待兩者都回報 healthy,第一次啟動大約需要半分鐘。預設把整個 /dev 綁定進核心容器,這樣重新列舉或熱插拔的模組仍能使用;--devices 只對應目前存在的裝置節點。可變的映像檔標籤會被拒絕,除非加上 --allow-tag。最後,指令碼會顯示初始管理員密碼的位置(config/initial-admin-password,只有 root 可以讀取)和配對 QR Code。

傳入 --port <n> 可以使用其他 SSH 連接埠;路由器轉送的外部連接埠不同時,再傳入 --public-port <n>。隨時產生新的配對碼(在同一個目錄下):
$ sudo docker compose exec vonode /app/vonode pair -c /app/config/config.yaml -host node.example.com -port 2222Docker 方式的日常維運
以下指令都在安裝套件的 docker/ 目錄下執行。
| 操作 | 指令 |
|---|---|
| 查看狀態(兩個服務都應為 healthy) | sudo docker compose ps |
| 查看記錄 | sudo docker compose logs -f vonode |
| 產生新的配對碼 | sudo docker compose exec vonode /app/vonode pair -c /app/config/config.yaml -host <address> -port 2222 |
| 新增或移動了模組(重新偵測模組,其餘保持不變) | sudo ./setup.sh |
| 重新啟動(最多兩分鐘) | sudo docker compose restart vonode |
| 停止並保留資料 | sudo ./setup.sh --uninstall |
| 全部刪除 | sudo ./setup.sh --uninstall --purge |
| 忘記管理員密碼(所有手機需要重新配對) | sudo docker compose stop vonode, sudo docker compose run --rm --no-deps vonode reset-password -c /app/config/config.yaml, sudo docker compose start vonode |
| 升級:把新的映像檔參照寫入 .env(或傳入 --image),再執行指令碼 | vonode/vonode@sha256:<digest> → .env / --image, sudo ./setup.sh |
不要執行 docker compose down -v:vonode_gateway-private 磁碟區保存著已配對手機所固定的 SSH 主機金鑰。setup.sh --uninstall 會保留它。
- 127.0.0.1:7575 連接埠已被占用:另一個程式占用了節點的本機配對頁連接埠。執行
sudo ./setup.sh --admin-port 17575(任何空閒的連接埠),指令碼會同時把連接埠寫入設定和 Compose 環境。 - 容器不是 healthy:用
sudo docker compose logs vonode查看原因。核心在內部通訊端建立後即為 healthy;vonode-gateway在能連到該通訊端並監聽 2222 連接埠後為 healthy。最常見的原因是 2222 連接埠衝突(ss -ltn | grep 2222),請用--port換一個連接埠。 - 模組重設後連接埠變了:模組重設後會重新列舉,
ttyUSB編號可能改變。預設綁定整個/dev時,它們會自動出現;如果你用了--devices,請再執行一次sudo ./setup.sh。
法律資訊
節點軟體是 VONODE LLC 的專有軟體。第三方元件及其授權條款列在安裝套件的 THIRD_PARTY_NOTICES.txt 和 SBOM 中。Vonode 不是緊急通訊服務:請只在你有權使用的 SIM 卡、號碼和網路上使用,並遵守電信業者的條款。