Skip to main content
“来自外部 URL”的文件(以及 Overleaf 导入 API 和 AI 助手的 web_fetch 下载的文件)由每个 Ayakaleaf Pro Pod 中的 linked-url-proxy 服务获取。它会拒绝非公网地址,因此用户无法通过它读取内部服务。该功能及其设置请参见外部 URL。

配置

30-config.yaml (additions)

在 Kubernetes 上会阻止哪些地址

该代理会拒绝所有非公网单播地址:环回地址、链路本地地址(包括云元数据地址 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 的 Service 网络 10.96.0.0/12,在未设置任何 OVERLEAF_LINKED_URL_BLOCKED_NETWORKS 的情况下,该代理拒绝了从 Service 的 ClusterIP、集群内名称 redis、garage 和 overleaf-1.overleaf-hl.overleaf.svc.cluster.local 以及节点地址进行的下载。我们的端到端测试还验证了通过导入 API 拒绝环回地址和云元数据地址,以及 AI 助手只读取 OVERLEAF_LINKED_URL_ALLOWED_RESOURCES 所允许的页面,这些测试均已通过。
最后修改于 2026年11月2日