> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# URL externa

> Permite que los usuarios añadan archivos desde URL externas en un despliegue de Kubernetes y mantén fuera de su alcance las direcciones internas del clúster.

Los archivos "From External URL" (y los archivos que descargan la [Import API](https://ayakaleaf-pro.mintlify.site/es/on-premises/configuration/kubernetes/integrations/overleaf-import-api.md) y la herramienta `web_fetch` del asistente de IA) los obtiene el servicio **linked-url-proxy** dentro de cada pod de Ayakaleaf Pro. Rechaza las direcciones que no son públicas, de modo que los usuarios no pueden leer servicios internos a través de él. La función y sus ajustes se describen en [URL externa](https://ayakaleaf-pro.mintlify.site/es/on-premises/configuration/overleaf-toolkit/external-url.md).

| | |
| - | - |
| Servicio | linked-url-proxy (`127.0.0.1:3066` en cada pod); web muestra el menú cuando `url` está en `ENABLED_LINKED_FILE_TYPES` |
| Pod → exterior | las URL que indican los usuarios, en cualquier puerto, directamente o a través de `OVERLEAF_LINKED_URL_OUTBOUND_PROXY` |
| Estado | ninguno |
| Tareas periódicas | ninguna: un archivo solo se actualiza cuando un usuario lo solicita |

### Configuración

```yaml title="30-config.yaml (additions)" wrap theme={null}
  ENABLED_LINKED_FILE_TYPES: project_file,project_output_file,url
  # Public addresses of your nodes and load balancer, see below
  OVERLEAF_LINKED_URL_BLOCKED_NETWORKS: 203.0.113.0/24 198.51.100.7/32
  # optional
  # OVERLEAF_LINKED_URL_ALLOWED_RESOURCES: ^https?://www\.example\.com/public/
  # OVERLEAF_LINKED_URL_OUTBOUND_PROXY: http://proxy.example.com:3128
```

```bash theme={null}
kubectl apply -f 30-config.yaml
kubectl -n overleaf rollout restart deployment/overleaf     # or statefulset/overleaf
```

### Qué se bloquea en Kubernetes

El proxy rechaza toda dirección que no sea una dirección unicast pública: loopback, link-local (incluida la dirección de metadatos de la nube `169.254.169.254`), los rangos privados `10.0.0.0/8`, `172.16.0.0/12` y `192.168.0.0/16`, el rango de NAT de operador (carrier-grade NAT) `100.64.0.0/10` y sus equivalentes en IPv6. Por tanto, las redes de pods y de Services en estos rangos, que es lo predeterminado en kubeadm, flannel, Calico y la mayoría de los clústeres gestionados, quedan bloqueadas sin ningún ajuste, al igual que los nombres internos del clúster como `redis` o `git-bridge` que se resuelven a ellas.

Las direcciones públicas están permitidas. Si tus nodos o tu balanceador de carga tienen direcciones públicas, añádelas a `OVERLEAF_LINKED_URL_BLOCKED_NETWORKS` (separadas por espacios o comas), para que los usuarios no puedan acceder a través de ellas a los NodePorts o a una página de estado.

Con `OVERLEAF_LINKED_URL_OUTBOUND_PROXY` definido, los nombres de host los resuelve el proxy, por lo que solo se comprueban las URL que contienen una dirección IP: el propio proxy debe bloquear tus redes internas.

### Varias réplicas

No hace falta nada más: cada pod descarga con su propio linked-url-proxy y los mismos ajustes.

### Probado en Kubernetes

En Kubernetes 1.37 con tres réplicas, la red de pods de flannel `10.244.0.0/16` y la red de servicios de kubeadm `10.96.0.0/12`, el proxy rechazó descargas desde la ClusterIP de un Service, desde los nombres internos del clúster `redis`, `garage` y `overleaf-1.overleaf-hl.overleaf.svc.cluster.local`, y desde la dirección de un nodo, sin ningún `OVERLEAF_LINKED_URL_BLOCKED_NETWORKS`. Nuestras pruebas de extremo a extremo también se superan para el rechazo de loopback y de la dirección de metadatos de la nube a través de la Import API, y para que el asistente de IA lea solo las páginas que permite `OVERLEAF_LINKED_URL_ALLOWED_RESOURCES`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.