跳到主要内容

遠端存取

本頁提供一些指導,幫助您從局域網外存取您的 Immich 實例。 您可以在 Discord 中查看完整討論

危险

切勿直接將 2283 埠轉發至互聯網而不進行其他配置。這會將網頁介面通過 http 暴露至互聯網,使您容易受到中間人攻擊。

選項 1:連接至家庭網路的 VPN

您可以使用 VPN 服務建立到您的 Immich 實例的加密連接。OpenVPN 和 Wireguard 是兩種熱門的 VPN 解決方案。以下是設置 VPN 存取伺服器的指南 - Pihole 文檔

優點

  • 簡單設置且非常安全。
  • 單一潛在故障點,例如 VPN 軟體本身。即使 Immich 存在零日漏洞,您也不會處於風險中。
  • Wireguard 和 OpenVPN 都已獨立進行安全審核,因此遭受嚴重零日漏洞的風險極低。

缺點

  • 如果您沒有靜態 IP 位址,則需要設置 動態 DNSDuckDNS 是一個免費的 DDNS 提供者。
  • VPN 軟體需要在伺服器端和客戶端都安裝並啟動。
  • 需要在路由器上為伺服器打開一個埠。

選項 2:Tailscale

如果您無法為 Wireguard 或 OpenVPN 開啟路由器埠,Tailscale 是一個不錯的選擇。Tailscale 通過端到端 Wireguard 隧道在伺服器和遠端設備之間進行中介,即使其中一方或者雙方都在 NAT 防火牆後面。

視頻教學

您可以通過他們製作的教程視頻學習如何設置 Tailscale 與 Immich。

優點

  • 伺服器端和客戶端所需配置最少。
  • 免受 Immich 零日漏洞的威脅。

缺點

  • 通常需要在設備上以 root 身分執行 Tailscale 客戶端,和基於最小化 Wireguard 伺服器相比稍微增加了攻擊面。比如, 在 2022 年 11 月於 Windows Tailscale 客戶端中發現了一個 RCE 漏洞
  • Tailscale 是付費服務。然而有一個慷慨的免費計劃,允許最多 3 個使用者和最多 100 個設備。
  • Tailscale 需要在伺服器端和客戶端均安裝並運行。

選項 3:反向代理

反向代理是一項介於 web 伺服器和客戶端之間的服務。反向代理可以托管於伺服器本身或遠程。客戶端可以通過 https 連接到反向代理,代理將數據轉發給 Immich。如果您擁有自己的域名並希望像訪問其他網站一樣從局域網外存取您的 Immich 實例,這種設置最符合邏輯。如果您沒有域名,也可以使用像 DuckDNS 或 no-ip 的 DDNS 提供者。此配置允許 Immich Android 和 iPhone 應用程式連接到您的伺服器,而無需在客戶端上使用 VPN 或 Tailscale 應用。

如果您自己託管反向代理,Nginx 是一個不錯的選擇。此處提供了一個 Nginx 的範例配置。

您還需要自己的證書來驗證 https 連接。如果您讓 Immich 可公開訪問,Let's Encrypt 可以為您的域名提供免費證書,這是推薦的選擇。另外,自行簽名證書也可以加密您與 Immich 的連接,但它會在客戶端的瀏覽器上產生安全警示。

遠程反向代理如 Cloudflare 通過隱藏伺服器 IP 位址來提高安全性,這使得像 DDoS 這樣的針對性攻擊更加困難。

優點

  • 客戶端不需要安裝額外的軟體
  • 如果您只需要遠程訪問網頁介面,可以設置存取控制以免受 Immich 的零日漏洞影響。Cloudflare Access 具有慷慨的免費計劃。

缺點

  • 配置較為複雜
  • 根據您的配置,Immich 網頁介面和 API 可能暴露於互聯網。Immich 正在非常活躍的開發中,不能排除存在嚴重安全漏洞的可能性。