Skip to main content
「From External URL」檔案(以及 Import API 與 AI 助理的 web_fetch 所下載的檔案)由每個 Ayakaleaf Pro pod 內的 linked-url-proxy 服務擷取。它會拒絕非公開的位址,因此使用者無法透過它讀取內部服務。此功能及其設定請參閱外部 URL。

設定

30-config.yaml (additions)

在 Kubernetes 上會封鎖哪些位址

此代理會拒絕所有非公開單點傳播位址的位址:loopback、link-local(包括雲端中繼資料位址 169.254.169.254)、私有範圍 10.0.0.0/8、172.16.0.0/12 與 192.168.0.0/16、電信等級 NAT 範圍 100.64.0.0/10,以及它們對應的 IPv6 位址。因此,位於這些範圍內的 Pod 與 Service 網路(這是 kubeadm、flannel、Calico 與大多數託管叢集的預設值)無需任何設定即會被封鎖,解析至這些位址的叢集內名稱(例如 redis 或 git-bridge)也同樣會被封鎖。 公開位址則是允許的。若您的節點或負載平衡器有公開位址,請將它們加入 OVERLEAF_LINKED_URL_BLOCKED_NETWORKS(以空格或逗號分隔),讓使用者無法透過這些位址擷取 NodePort 或狀態頁面。 設定 OVERLEAF_LINKED_URL_OUTBOUND_PROXY 後,主機名稱會由該代理解析,因此只有包含 IP 位址的 URL 會被檢查:該代理本身必須封鎖您的內部網路。

多個副本

不需要額外處理:每個 pod 都使用自己的 linked-url-proxy 與相同的設定進行擷取。

在 Kubernetes 上的測試

在 Kubernetes 1.37 上,以三個副本、flannel 的 pod 網路 10.244.0.0/16 與 kubeadm 的服務網路 10.96.0.0/12 進行測試,在未設定任何 OVERLEAF_LINKED_URL_BLOCKED_NETWORKS 的情況下,此代理拒絕了從 Service 的 ClusterIP、從叢集內名稱 redis、garage 與 overleaf-1.overleaf-hl.overleaf.svc.cluster.local,以及從節點位址進行的下載。我們的端對端測試也通過了透過 Import API 拒絕 loopback 與雲端中繼資料位址的案例,以及 AI 助理只讀取 OVERLEAF_LINKED_URL_ALLOWED_RESOURCES 所允許之頁面的案例。
最後修改於 2026年11月2日