
Squid es un proxy web HTTP de reenvío y almacenamiento en caché . Tiene una amplia variedad de usos, incluyendo acelerar un servidor web mediante el almacenamiento en caché de solicitudes repetidas, almacenar en caché la World Wide Web (WWW), el Sistema de Nombres de Dominio (DNS) y otras consultas de red para un grupo de personas que comparten recursos de red, y ayudar a la seguridad mediante el filtrado del tráfico. Aunque se usa principalmente para HTTP y el Protocolo de Transferencia de Archivos (FTP), Squid incluye soporte limitado para varios otros protocolos , incluyendo Internet Gopher , Secure Sockets Layer (SSL), [ 7 ] Transport Layer Security (TLS) y Hypertext Transfer Protocol Secure ( HTTPS ). Squid no admite el protocolo SOCKS , a diferencia de Privoxy , con el que Squid puede usarse para proporcionar soporte para SOCKS.
Squid fue diseñado originalmente para ejecutarse como un demonio en sistemas tipo Unix . Se mantuvo una versión para Windows hasta la versión 2.7. Las nuevas versiones disponibles en Windows utilizan el entorno Cygwin . [ 8 ] [ 9 ] Squid es software libre publicado bajo la Licencia Pública General de GNU .
Historia
Squid se desarrolló originalmente como la caché de objetos Harvest , [ 7 ] parte del proyecto Harvest en la Universidad de Colorado Boulder . [ 10 ] [ 11 ] El trabajo adicional en el programa se completó en la Universidad de California, San Diego y se financió a través de dos subvenciones de la National Science Foundation . [ 12 ] Duane Wessels bifurcó la "última versión precomercial de Harvest" y la renombró como Squid para evitar confusiones con la bifurcación comercial llamada Cached 2.0, que se convirtió en NetCache . [ 13 ] [ 14 ] La versión 1.0.0 de Squid se lanzó en julio de 1996. [ 13 ] SquidNT , un puerto del servidor proxy Squid, se fusionó con el proyecto principal de Squid en septiembre de 2006. [ 15 ]
Actualmente, Squid se desarrolla casi exclusivamente gracias al esfuerzo de voluntarios.
En octubre de 2023, se reveló que Squid seguía sufriendo 35 vulnerabilidades de seguridad que no se habían corregido durante dos años y medio después de su notificación inicial. [ 16 ]
Funcionalidad básica
Una vez instalado un servidor proxy Squid, los navegadores web pueden configurarse para usarlo como servidor HTTP proxy . Esto permite a Squid conservar copias de los documentos devueltos, lo que, en solicitudes repetidas de los mismos documentos, puede reducir el tiempo de acceso y el consumo de ancho de banda . Esto suele ser útil para los proveedores de servicios de Internet para aumentar la velocidad de conexión a sus clientes y para las redes LAN que comparten una conexión a Internet . Dado que los servidores de caché están controlados por el operador del servicio web, los proxies de caché no anonimizan al usuario y no deben confundirse con proxies de anonimización.
Un programa cliente (por ejemplo, un navegador) debe especificar explícitamente el servidor proxy que desea usar (lo cual es habitual en los clientes de proveedores de servicios de Internet), o bien puede usar un proxy sin ninguna configuración adicional: el "almacenamiento en caché transparente". En este último caso, Squid intercepta todas las solicitudes HTTP salientes y almacena en caché todas las respuestas. Esta última opción suele darse en entornos corporativos (donde todos los clientes se encuentran en la misma red local) y a menudo plantea los problemas de privacidad mencionados anteriormente.
Squid cuenta con algunas funciones que pueden ayudar a anonimizar las conexiones, como la desactivación o modificación de campos de encabezado específicos en las solicitudes HTTP de un cliente . La configuración de estas funciones y su propósito dependen de la persona que controla el equipo que ejecuta Squid. Es posible que quienes solicitan páginas a través de una red que utiliza Squid de forma transparente desconozcan si esta información se está registrando. [ 17 ] En las organizaciones del Reino Unido, al menos, se debe informar a los usuarios si se están monitorizando sus equipos o conexiones a internet. [ 18 ]
proxy inverso
La configuración anterior, que almacena en caché el contenido de un número ilimitado de servidores web para un número limitado de clientes, es la clásica. Otra configuración es el " proxy inverso " o la "aceleración del servidor web" (mediante el host virtual de aceleración http_port 80 ). En este modo, la caché atiende a un número ilimitado de clientes para un número limitado de servidores web, o incluso para uno solo.
Por ejemplo, si slow.example.com es un servidor web "real" y www.example.com es el servidor de caché Squid que lo "acelera", la primera vez que se solicita una página desde www.example.com , el servidor de caché obtendría la página real de slow.example.com , pero las solicitudes posteriores obtendrían la copia almacenada directamente del acelerador (durante un período configurable, tras el cual la copia almacenada se descartaría). El resultado, sin ninguna acción por parte de los clientes, es menos tráfico hacia el servidor de origen, lo que significa menor uso de CPU y memoria, y menor necesidad de ancho de banda. Sin embargo, esto implica que el servidor de origen no puede informar con precisión sobre sus cifras de tráfico sin una configuración adicional, ya que todas las solicitudes parecerían provenir del proxy inverso. Una forma de adaptar los informes del servidor de origen es utilizar el encabezado HTTP X-Forwarded-For informado por el proxy inverso para obtener la dirección IP real del cliente.
Un mismo servidor Squid puede funcionar simultáneamente como proxy inverso y proxy normal. Por ejemplo, una empresa podría alojar su sitio web en un servidor web, con un servidor Squid actuando como proxy inverso entre los clientes (que acceden al sitio web desde fuera de la empresa) y el servidor web. Este mismo servidor Squid también podría funcionar como una caché web clásica, almacenando en caché las solicitudes HTTP de los clientes internos de la empresa (es decir, los empleados que acceden a internet desde sus estaciones de trabajo), acelerando así el acceso web y reduciendo el consumo de ancho de banda.
límites de rango de medios
Por ejemplo, una característica del protocolo HTTP es limitar una solicitud al rango de datos del recurso al que se hace referencia. Esta característica es muy utilizada por sitios web de transmisión de video como YouTube , de modo que si un usuario hace clic en la mitad de la barra de progreso del video, el servidor puede comenzar a enviar datos desde la mitad del archivo, en lugar de enviar el archivo completo desde el principio y que el usuario tenga que esperar a que se carguen los datos anteriores.
Microsoft Windows Update también utiliza ampliamente las descargas parciales para que los paquetes de actualización extremadamente grandes puedan descargarse en segundo plano y pausarse a mitad de la descarga si el usuario apaga el ordenador o se desconecta de Internet.
El formato de descarga de Metalink permite a los clientes realizar descargas segmentadas mediante la emisión de solicitudes parciales y su distribución entre varios servidores espejo.
Squid puede reenviar solicitudes parciales al servidor web de origen. Para que una solicitud parcial se satisfaga rápidamente desde la caché, Squid requiere que ya exista una copia completa del mismo objeto en su almacenamiento.
Si un usuario de vídeo proxy está viendo una transmisión de vídeo y navega a otra página antes de que el vídeo se descargue por completo, Squid no puede conservar la descarga parcial para su reutilización y simplemente descarta los datos. Se requiere una configuración especial para forzar que dichas descargas continúen y se almacenen en caché. [ 19 ]
Sistemas operativos compatibles
Squid es compatible con muchos sistemas operativos , entre ellos:
- AIX
- BSDI
- Unix digital
- FreeBSD
- Jaula FreeBSD
- OpenWRT
- Raspbian
- Docker (software)
- Ubuntu
- IPFire
- pfSense
- OPNsense
- Kali Linux
- CentOS
- HP-UX
- IRIX
- Linux
- Red Hat Enterprise Linux
- SUSE Linux
- Arch Linux
- Linux Mint
- Debian
- webOS en Palm
- macOS
- NetBSD
- Siguiente paso
- OpenBSD
- OS/2 (incluyendo ArcaOS y eComStation ) [ 20 ]
- SCO OpenServer
- Solaris
- UnixWare
- Microsoft Azure y también Microsoft Nano Server
- Windows [ 21 ]
Véase también
- Acelerador web que analiza la aceleración HTTP basada en el host.
- Servidor proxy que analiza los proxies del lado del cliente.
- Proxy inverso que analiza los proxies del lado del origen.
- Comparación de servidores web
- El protocolo de comunicación de caché web Cisco WCCP también puede funcionar con Squid.
- Riverbed Technology RiOS es compatible con Squid
- Junos OS JSA DSM para Squid Web Proxy registra todos los eventos de caché y de registro de acceso.
Referencias
- ↑ "Logotipo del Proyecto Calamar" . Consultado el 6 de julio de 2014 .
- ↑ "¿Quién se encarga del proyecto Squid? "
- ↑ "v7.6" . 8 de junio de 2026. Consultado el 9 de junio de 2026 .
- ↑ squid-cache/squid , Calamar, 27 de julio de 2022 , consultado el 27 de julio de 2022
- ↑ "¿Cuál es el mejor sistema operativo para Squid?" .
- ↑ "Licencia de calamar" .
- 1 2 C. Mic Bowman, Peter B. Danzig, Darren R. Hardy, Udi Manper, Michael F. Schwartz, El sistema de descubrimiento y acceso a la información Harvest, Computer Networks and ISDN Systems, Volumen 28, Números 1–2, diciembre de 1995, Páginas 119–125. doi:10.1016/0169-7552(95)00098-5
- ↑ "Squid para Windows" . GitHub . Febrero de 2024.
La compilación actual se basa en la última compilación de Squid 4 para Cygwin Windows de 64 bits.
- ↑ "Base de conocimientos de Squid-cache.org" .
Squid en Windows
- ↑ Introducción a Squid , en el sitio web de Squid
- ↑ Harvest cache ahora está disponible como un "acelerador httpd" , por Mike Schwartz en la lista de correo http-wg, martes 4 de abril de 1995, reenviado por Brian Behlendorf a lalista de correo de desarrolladores del servidor HTTP Apache.
- ↑ " Patrocinadores de Squid" . Archivado del original el 11 de mayo de 2007. Recuperado el 13 de febrero de 2007.
La NSF fue la principal fuente de financiación para el desarrollo de Squid entre 1996 y 2000. Dos subvenciones (n.º NCR-9616602 y n.º NCR-9521745) recibidas a través de la División de Investigación e Infraestructura de Redes Avanzadas (ANIR) fueron administradas por la Universidad de California en San Diego.
- 1 2 Duane Wessels Squid e ICP: pasado, presente y futuro , Actas del Grupo de Usuarios de Unix de Australia. Septiembre de 1997, Brisbane, Australia
- ↑ "netcache.com" . Archivado del original el 12 de noviembre de 1996. Consultado el 7 de agosto de 2012 .
- ↑ "Preguntas frecuentes sobre Squid: ¿Squid funciona en Windows?" .
- ↑ "55 vulnerabilidades en el proxy de caché Squid y 35 vulnerabilidades de día cero" . 11 de octubre de 2023.
- ↑ Consulte la documentación de header_access y header_replace para obtener más detalles.
- ↑ Véase, por ejemplo, Monitorización informática en el lugar de trabajo y su privacidad.
- ↑ "Referencia de configuración de Squid" . Consultado el 26 de noviembre de 2012 .
- ^ Puertos OS/2 por Paul Smedley , Puertos OS/2
- ↑ "Base de conocimientos/Windows - Wiki de Squid Web Proxy" .
Lecturas adicionales
- Wessels, Duane (2004). Calamar: La guía definitiva . O'Reilly Media . ISBN 978-0-596-00162-9.
- Saini, Kulbir (2011). Squid Proxy Server 3.1: Guía para principiantes . Publicación de paquetes . ISBN 978-1-849-51390-6.
Enlaces externos
- Sitio web oficial

- Blog del calamar
- Guía del usuario de Squid
- Squid Proxy transparente para DD-WRT
- Guía de Palm WebOS - Guía de instalación de Squid
- Proxy inverso Squid : crea un proxy inverso con Squid
- Manual de configuración – Guía del manual de configuración de ViSolve Squid
- Manual de configuración : Opciones de configuración autorizadas de Squid
- "Configuración de Solaris" . Archivado del original el 15 de enero de 2008.– Configurar Squid en Solaris
- SQUID – Instalación en CentOS, Fedora y Red Hat
- Servidores proxy gratuitos
- proxy inverso
- Software de servidor proxy para Linux
- Software relacionado con redes Unix
- Clientes Gopher
- Software libre multiplataforma