想在 Linux 或 Docker 上跑 PassiveApp 的帶寬共享節點,只要兩個環境變數:帳號 email 與密碼。官方映像不含任何帳密,全部在啟動時由環境變數帶入,所以同一顆映像可以在多台機器上重複使用,每台各自產生一個獨立的裝置身分。
本文是用 Docker 部署的完整流程,包含三種啟動方式、環境變數清單、日誌怎麼判讀,以及最常見的「起不來」與「連不出去」兩種故障排除。
這個映像的設計前提
映像裡沒有任何憑證,也不綁定特定帳號。啟動時若沒給憑證,容器會立刻結束並印出提示,不會在那裡空轉吃資源。這個設計有三個好處:
- 映像可以公開分享,不會洩漏任何人的帳號。
- 同一台主機要跑多個節點時,只要換不同的環境變數與容器名稱。
- 換帳號不需要重新建置映像。
事前準備
- 一個 PassiveApp 帳號(註冊後在後台可以看到自己的裝置清單)。
- 一台裝好 Docker 的 Linux 主機,能正常對外連線。
- 如果主機在 NAT 或公司網路後面,先確認容器可以解析 DNS 並連外。
方式一:一行指令啟動(最快)
docker run -d \
--name passiveapp \
--restart unless-stopped \
-e PSV_EMAIL='你的信箱' \
-e PSV_PASSWORD='你的密碼' \
power14345/passiveapp:latest
啟動後用 docker logs -f passiveapp 看日誌,看到 "connected": true 就是上線了。
方式二:用 env-file(建議,密碼不留在指令歷史)
# .env 內容,記得 chmod 600
PSV_EMAIL=你的信箱
PSV_PASSWORD=你的密碼
docker run -d --name passiveapp --restart unless-stopped \
--env-file .env power14345/passiveapp:latest
把密碼寫在檔案裡而不是指令列,可以避免被 shell 歷史紀錄或 ps 輸出看到。
方式三:Docker Compose
services:
passiveapp:
image: power14345/passiveapp:latest
container_name: passiveapp
restart: unless-stopped
environment:
- PSV_EMAIL=你的信箱
- PSV_PASSWORD=你的密碼
# network_mode: host # 容器連不出去時可改用 host 網路測試
環境變數清單
| 變數 | 必填 | 預設 | 說明 |
|---|---|---|---|
PSV_EMAIL |
要填 | 無 | 帳號 email |
PSV_PASSWORD |
要填 | 無 | 帳號密碼 |
PSV_TOKEN |
不用 | 無 | 不想用帳密時的替代方案,三個都填時以 token 優先 |
PSV_JSON |
不用 | 1 | 1 表示以 JSON 行輸出日誌 |
PSV_RESTART_DELAY |
不用 | 10 | peer 結束後隔幾秒重啟 |
PSV_EXTRA_ARGS |
不用 | 無 | 追加旗標,例如 -diagnostics 做連通性診斷 |
實務上只需要 PSV_EMAIL 與 PSV_PASSWORD 兩個。
日誌怎麼看
健康的節點會依序出現這幾行:
{"type":"data","data":{"deviceId":"..."},"connected":false}
{"type":"info","message":"Connecting to server...","connected":false}
{"type":"info","message":"Connected to server","connected":true}
{"type":"info","message":"Logged in.","connected":true}
"connected": true 代表已上線,後台裝置清單會多出一個新的 deviceId。如果一直停在 Connecting to server...,就是網路或 DNS 的問題,不是帳號問題。
疑難排解
容器啟動後立刻結束
代表沒給憑證。日誌會印出需要 token 或帳密的提示。檢查 -e 有沒有漏掉,或 env-file 路徑是否正確。
日誌出現 context deadline exceeded 或 lookup 逾時
容器沒有可用的 DNS 或沒有對外路由。先跑一次診斷模式:
docker run --rm \
-e PSV_EMAIL=你的信箱 -e PSV_PASSWORD=你的密碼 \
-e PSV_EXTRA_ARGS=-diagnostics \
power14345/passiveapp:latest
健康的輸出會依序取得負載平衡器位址與憑證。若診斷失敗,先在容器內測試 DNS 與 443 連線,再回頭檢查主機的防火牆與 NAT 規則。有些主機的 Docker 預設 bridge 網路沒有對外 NAT,這時會需要改用 host 網路,或把容器接到有 NAT 的自訂網路。
多節點部署的注意事項
- 每個容器會產生自己的 deviceId,後台會視為不同裝置。
- 同一條對外 IP 上不要一次掛太多節點,容易被平台判定異常。
- 建議每個容器掛一份獨立的資料目錄,方便個別重啟與排查。
- 容器名稱與節點命名保持一致(例如 passiveapp-1、passiveapp-2),後台對照時才不會混淆。
常見問題
映像安全嗎,會不會夾帶我的帳號?
映像內不含任何憑證,帳密只在你啟動時以環境變數傳入,且只存在該容器的設定裡。想要更安全可以用 env-file 並設權限 600,或改用 token 後把密碼從主機移除。
可以用 Windows 或 macOS 跑嗎?
Docker Desktop 可以,但這顆映像的目標是 Linux 主機長時間掛機,用 Linux 伺服器或小型節點機會比較穩定。
收益大概多少?
帶寬共享類平台的收益取決於你所在地區的住宅 IP 品質與平台當下需求,浮動很大。合理的期待是「補貼電費與網路費」,不適合當主要收入。
取得映像與邀請連結
映像位址:hub.docker.com/r/power14345/passiveapp,完整說明與中英文對照都寫在該頁。
本站持續整理各種可以在 Linux 上掛機的項目與實測數據,想看其他平台的部署方式可以參考〈掛機項目〉分類。
開始使用(邀請連結)
如果你還沒有帳號,用下面的邀請連結註冊:
https://passiveapp.com/i/ldpX3N
註冊後照本文步驟啟動容器即可,映像本身不含任何帳密,帳號只在你啟動時傳入。
