Success
快速解答: 在電腦上的 Calibre 中,點「連線/分享」並選擇「啟動內容伺服器」。你的書庫就會在 http://<你的電腦IP>:8080/opds 上線。在 iPhone 或 iPad 上,把這個位址加入閱讀 App 的 OPDS 書目(justRead 甚至能在同一個 Wi-Fi 上自動找到它,完全不用輸入),若你有設定帳號密碼就填上,整個 Calibre 書庫便會出現並可直接下載。最常見的錯誤是只填了裸 IP 而漏掉 /opds 路徑;第二常見的是防火牆無聲地擋住了 8080 埠。
Calibre 是整理電子書庫最好的免費工具,但 iPhone 和 iPad 上並沒有官方的 Calibre App。內容伺服器補上了這個缺口:它透過你的網路提供整個收藏,讓你不必手動複製任何檔案就能在 iOS 上閱讀。本文專門談伺服器本身,包括如何啟動、如何連上、如何解除封鎖、如何加上安全防護,以及如何擴充到多個書庫。若你還在內容伺服器與雲端資料夾兩種做法之間猶豫,請先看同步方式總覽;若你只想要適用於任何書目的一般 OPDS 步驟,請看如何在 iPhone 和 iPad 上設定 OPDS。
一點說明:我是 Petr Jahoda,justRead 的開發者。我家裡就有一個真正的 Calibre 書庫,也在自己的機器上架過這套伺服器,所以下面的步驟和陷阱都是我實際遇到的。
內容伺服器到底做什麼
內容伺服器是內建在 Calibre 裡的一個小型網頁伺服器。啟動之後,Calibre 會在同一個埠上以兩種方式同時發佈你的書庫:
- 可瀏覽的網頁。 在任何瀏覽器打開
http://<你的IP>:8080,就會看到完整的網頁閱讀介面:搜尋、封面、下載連結,甚至內建的瀏覽器閱讀器。這是給人看的。 - 位於
http://<你的IP>:8080/opds的 OPDS 摘要。 OPDS(Open Publication Distribution System)是建立在 Atom/XML 之上的書目格式,閱讀 App 看得懂。這是給 App 用的。
在 iOS 上,重要的是 OPDS 那一半。它讓 iPhone 上的閱讀器列出每一本書連同封面與中繼資料、搜尋整個書庫、依作者或標籤瀏覽,並隨選下載任何一本書,全程不必碰到傳輸線或檔案管理程式。
EPUB 和 PDF 都會被提供,這正是多數 iOS 閱讀器(包括 justRead)能開啟的格式。如果書庫裡某本書只有 MOBI、AZW3 或其他格式,請先在 Calibre 裡轉成 EPUB(在書上按右鍵、轉換書籍、輸出格式選 EPUB),轉好的副本就能乾淨地送到 iOS。
有一個限制必須先記住:伺服器只有在 Calibre 開著、而且電腦醒著的時候才運作。 關掉 Calibre,或讓機器睡著,書庫就離線了。除非你採取後面遠端存取那一節的額外步驟,否則這是「在家、桌機開著時閱讀」的功能,而不是永遠在線的雲端服務。
開始之前
你需要三樣東西:
- 在 Windows、macOS 或 Linux 電腦上安裝好 Calibre,且書庫在裡面。
- 那台電腦和你的 iPhone 或 iPad 位於同一個 Wi-Fi 網路(供本地使用)。
- iOS 上一個支援 OPDS 的閱讀器。本文 iOS 端使用 justRead,因為它能自動探索伺服器,日後若你需要,還能做雙向同步。
就這樣。不必註冊帳號、不必雲端服務、不必接線。
步驟一:在 Calibre 中啟動伺服器
- 在電腦上開啟 Calibre。
- 點工具列的連線/分享。
- 選擇啟動內容伺服器。
- 當作業系統跳出提示時,允許 Calibre 通過防火牆。
第四步不是裝飾。第一次啟動時,Windows 和 macOS 通常會跳出防火牆對話框,詢問是否允許 Calibre 接受連入連線。如果你關掉它,或它根本沒出現,伺服器會啟動,但別的裝置連不上。若你錯過了那個提示,請先跳到下面的防火牆一節,再假設哪裡壞掉了。
讓它自動啟動。 如果你每天都用,請開啟偏好設定、透過網路分享並勾選Calibre 啟動時自動執行伺服器。這樣伺服器就會隨 Calibre 一起啟動,不必每次都點選單。
確認它正在執行。 回到連線/分享,選單項目在伺服器上線後會變成停止內容伺服器,同一個面板也會顯示它綁定的埠。若你之後更動設定,請用「停止」再「啟動」讓伺服器乾淨地重新綁定;有些變更要重啟才會生效。
步驟二:找出 OPDS 位址
OPDS 端點由三個部分接起來:你電腦的區域網路 IP、埠(預設 8080),以及路徑 /opds。
http://192.168.1.10:8080/opds
把 192.168.1.10 換成你自己機器的位址。
找出電腦的 IP
- Windows: 開啟命令提示字元(按 Windows 鍵、輸入
cmd、Enter),輸入ipconfig後按 Enter。在使用中的 Wi-Fi 或乙太網路介面下讀取 IPv4 位址,通常以192.168.或10.開頭。忽略任何在「Virtual」或「VMware」介面卡底下的數字。 - macOS: 開啟系統設定、點 Wi-Fi,再點已連線網路旁的詳細資訊,IP 位址就列在那裡。捷徑:按住 Option 再點選單列的 Wi-Fi 圖示,IP 位址會顯示在下拉選單中。
確認埠號
預設是 8080。若你需要更改,例如另一個程式已佔用 8080,埠號欄位在偏好設定、透過網路分享裡。你在那裡設定的數字就是要放進網址的數字。改完後重啟伺服器,並同步更新手機上的位址。
讓位址不再變動(DHCP 陷阱)
家用路由器以 DHCP 派發 IP 位址,所以你電腦的位址可能在重開機或租約更新後改變,上週還能用的網址突然就失效了。這是最常見的「它自己壞了」抱怨之一。有兩種做法能讓位址固定下來:
- 保留一個靜態 IP(建議)。 在路由器管理頁面找到 DHCP 或 LAN 設定,尋找位址保留或 DHCP 保留,把電腦的 MAC 位址綁到一個固定 IP。從此路由器總是給你的電腦同一個位址,OPDS 網址也就不會再變。
- 改用
.local主機名稱而不是數字。 每台電腦都有一個透過 mDNS 廣播的名稱,所以你通常可以用http://my-pc.local:8080/opds取代 IP。macOS 內建此功能,Windows 則需安裝 Bonjour。如果.local在你的網路上無法解析,就退回保留靜態 IP,那是兩者中比較普遍可靠的做法。
步驟三:從 iPhone 或 iPad 連線
在支援 OPDS 的閱讀器中,打開 OPDS 或書目區、新增一個書目,然後貼上步驟二的位址。
justRead 有兩種做法:
- 自動探索。 在同一個 Wi-Fi 上,justRead 能替你找到執行中的 Calibre 內容伺服器,位址會自動填好,往往完全不必輸入。
- 手動輸入。 你仍然可以自己輸入或貼上完整的
http://<ip>:8080/opds,保留靜態 IP、.local主機名稱或遠端 HTTPS 設定時就是這樣用。
若你在 Calibre 裡啟用了登入,justRead 支援 HTTP Digest 驗證,會提示輸入使用者名稱與密碼再連線。連上之後,你可以瀏覽書庫、執行伺服器端搜尋、翻閱大型收藏、依分類瀏覽,並下載書籍完全離線閱讀。
/opds 路徑的陷阱
這是連線「只成功一半」的頭號原因。如果你輸入 http://192.168.1.10:8080 而沒有路徑,你指向的是給人看的網頁,而不是機器可讀的摘要,書目會回傳空的或直接出錯。摘要在 /opds,一定要帶上。另外兩台裝置必須在同一個 Wi-Fi 上,本地位址才解析得到;有些路由器開啟了「AP 隔離」或「用戶端隔離」,即使在同一個網路上也會阻止裝置互相看見。若你區域網路上什麼都連不到伺服器,請檢查這個設定。
先用瀏覽器測試(最快的診斷)
在怪罪 App 之前,先證明伺服器連得上。在同一支手機上開啟 Safari 前往 http://<你的IP>:8080。
- 如果 Calibre 網頁載入成功,代表伺服器、網路和防火牆都沒問題,問題只在你輸入 OPDS 位址的方式(幾乎都是漏掉
/opds)。 - 如果 Safari 根本連不上,代表伺服器還無法從手機連達,問題指向防火牆或錯誤的 IP,而不是 App。請前往防火牆一節。
這個 15 秒的測試,能省下許多人重灌一個根本沒問題的 App。
解決 8080 埠被防火牆擋住
如果一切看起來都對,但手機仍然連不上,而且上面的瀏覽器測試也失敗,那幾乎一定是防火牆。這是最常見的失敗原因。
Windows
- 按 Windows 鍵,輸入 Windows Defender 防火牆並開啟。
- 點左側的允許應用程式或功能通過 Windows Defender 防火牆。
- 點變更設定(可能需要系統管理員權限)。
- 在清單中找到 calibre,為你的網路勾選私人和公用。在家用網路上只勾私人就夠了,不勾公用比較安全。
- 若清單裡沒有 calibre,點允許其他應用程式,再點瀏覽,選取
calibre.exe(通常在C:\Program Files\Calibre2\)。加入後再勾選。 - 點確定。
如果你使用第三方防毒套裝(Norton、McAfee、Bitdefender、Kaspersky 之類),它通常有自己的防火牆,獨立於 Windows Defender 之外,那一套也必須允許 calibre 或放行 8080 埠的連入流量。只開放 Windows Defender 是不夠的,如果另一道防火牆正在默默阻擋。
macOS
- 開啟系統設定、前往網路,再到防火牆。
- 若防火牆是關閉的,macOS 就沒有在擋伺服器,請往別處找原因。
- 若是開啟的,打開選項,確認 calibre 出現在清單中且設為允許連入連線,然後儲存。若清單中沒有 calibre,用 + 按鈕加入。
允許之後
從 Calibre 的連線/分享選單停止再啟動內容伺服器,讓它重新綁定,然後重跑瀏覽器測試。如果網頁現在能在手機上載入,就完成了。
關於格式的一點誠實說明
內容伺服器按書籍儲存的原樣提供檔案。justRead 能開啟 EPUB 和 PDF。若某本書只有 MOBI、AZW3、FB2、DJVU 或漫畫格式,它會出現在書目中,但在只支援 EPUB/PDF 的 iOS 閱讀器裡打不開。解法就在 Calibre 本身:選取該書、選擇轉換書籍、輸出設為 EPUB,轉好的副本就能乾淨地送出。在 Calibre 最擅長的桌面端一次轉好,整個書庫就對 iOS 友善了。
加上安全防護並從家門外連線
在自家網路上,登入是選用的,上面的一切就能運作。但當你想從外面存取書庫的那一刻,安全就不再是選項,而 iOS 還加上了一條你無法忽視的硬性規則。
加上使用者名稱與密碼
在 Calibre 中前往偏好設定、透過網路分享,啟用要求使用者名稱與密碼並建立帳號。具備憑證欄位的閱讀器(包括 justRead)就會提示輸入,並透過 HTTP Digest 驗證連線。在你把伺服器暴露到自家區域網路以外之前,請先做這一步。
決定你遠端設定方式的那條 iOS 規則
iOS 不會以純 HTTP 連線到遠端伺服器,而且除非你安裝並明確信任一個設定描述檔,否則它會拒絕自簽或不受信任的憑證。光是這一項限制,就排除了「把 8080 埠轉發出去、然後輸入我的公開 IP」這種天真做法。遠端存取需要下列其中一種:
選項 A:VPN 連回家用網路(最簡單、最私密)。 架設 VPN 讓手機表現得像在家裡的 Wi-Fi 上,然後照用你已經有的本地 http://<ip>:8080/opds 位址。因為流量走在加密隧道裡且維持「本地」,純 HTTP 沒有問題,你也從未對公開網際網路開放任何埠。Tailscale 這類網狀 VPN 或自架 WireGuard 都能讓這件事變得輕鬆。代價是使用時手機上必須連著 VPN,而且要安裝並維持一個用戶端。沒有任何東西被公開暴露,這正是它對多數人最安全的原因。
選項 B:具備真實 HTTPS 的反向代理(從任何地方以瀏覽器和 App 存取的最佳選擇)。 在 Calibre 前面放一個反向代理(Caddy、nginx 或 Apache),在那裡終結 HTTPS 並使用有效憑證,再把一個網域指向你家。Caddy 最省事,因為它會自動取得並更新免費的 Let's Encrypt 憑證。你的 OPDS 位址就變成類似 https://library.example.com/opds,這是 iOS 接受的形式。代價是你需要一個網域,家用 IP 通常會變動所以還需要動態 DNS,而且你現在對外發佈了一個公開端點,必須持續更新修補並設定密碼保護。
選項 C:隧道服務(不開任何埠,架設快速)。 像 Cloudflare Tunnel 這樣的服務,透過在你電腦上執行一個對外的小型代理程式,就能以 HTTPS 主機名稱公開你的內容伺服器,而不必在路由器上開放任何連入埠。代價是流量經過該供應商,而且你依賴他們的代理程式與帳號。
關於非標準埠
把對外的埠從 8080 換掉能減少自動掃描的噪音,在 HTTPS 架構之內是合理的加固步驟。但它不能取代 HTTPS:一個冷僻的埠上跑純 HTTP,從 iOS 依然連不上,也依然不安全。把改埠當成小小的附加,而不是計畫本身。
不要做的事
絕對不要在沒有 HTTPS、沒有密碼的情況下,把裸的 8080 埠轉發到網際網路。那等於把你的整個書庫和一台執行中的伺服器,擺在任何掃描開放埠的人面前。這一節若只記一件事:要求登入、使用 HTTPS 或 VPN、絕不暴露純 8080。
一台伺服器管理多個書庫
如果你有不只一個 Calibre 書庫,內容伺服器會一起處理。/opds 摘要的最上層會顯示一個選擇器,列出你在 Calibre 中開啟過的每個書庫,你再往下鑽進想要的那一個。你也可以在偏好設定、透過網路分享中限制伺服器分享哪些書庫,若你想讓某些保持私密。
在 justRead 裡,你可以把每個書庫加為獨立的伺服器項目並排放置,並用各伺服器獨立的篩選,讓搜尋或同步只觸及你指定的那個書庫。這能避免一個大型小說書庫和一個技術 PDF 書庫互相滲透。
不必看著桌機也能保持在線
因為內建伺服器會在 Calibre 關閉時停止,想讓書庫全天候可用的人通常會往上走一步。兩種做法都是選用,也都是比較大的工程:
- 無介面 Calibre 伺服器。 Calibre 附帶一個命令列伺服器
calibre-server,不必開啟完整圖形介面就能提供書庫。把它指向你的書庫資料夾,它就以輕量服務的形式執行,在備用機器或家用伺服器上很方便。 - calibre-web 或 COPS。 這是社群打造的獨立網頁應用,讀取你的 Calibre 書庫並獨立於桌面版 Calibre 持續運作。當「電腦和 Calibre 必須一直開著」成為不可接受的條件時,通常就是它們登場。它們是額外要安裝與維護的軟體,所以只有在全天候存取真的是日常需求時才動用。
唯讀瀏覽與雙向同步
這是誠實的界線,也是最重要的取捨。
透過內容伺服器的 OPDS 是唯讀的:你瀏覽並下載,功能就到此為止。當你只想把書放到手機上時,這完全足夠。它做不到的是把任何東西送回去。你的閱讀進度、評分和完成日期都困在手機裡,Calibre 永遠不會知道你讀完了那本書。
justRead 的 Calibre 同步建立在完全相同的內容伺服器連線之上,但在其上加了雙向同步。它把閱讀進度、星級評分、想讀標記、完成日期、閱讀次數與統計寫回 Calibre,也在匯入時帶進你的評分、進度、完成狀態與自訂欄位。新增、已變更、已同步的標記讓每本書的狀態一目了然,選取新增與已變更只抓取差異而不重新下載全部,同步時螢幕保持喚醒以確保完成,同步後的紀錄與 10 天歷史會告訴你到底移動了什麼,PDF 也包含在內。重新同步會保留你的閱讀位置、書籤與標註,而不是覆蓋它們。
簡而言之:只想讀書就用純 OPDS;想讓電腦和手機對每本書的進度取得一致,就用雙向 Calibre 同步。
← Back to Guides