Squid 는 HTTP · HTTPS · FTP 캐시 프록시다. 폐쇄망 서버들이 한 대의 Squid 를 거쳐 패키지 저장소에 닿게 하는 용도로 가장 많이 쓴다. RHEL 계열 AppStream 에 패키지가 있어 소스 빌드 없이 설치한다. 업스트림 현행 버전은 7.7 이고[1] RHEL 9 · 10 은 5.x 계열, 개발용으로는 upstream 을 따로 받는다.
/var/spool/squid 에 디스크 여유 (설정한 cache_dir 크기)sudo dnf -y install squid
/etc/squid/squid.conf 에서 접근을 허용할 대역과 캐시를 정한다. 기본 파일에 localnet ACL 이 사설 대역으로 이미 들어 있으므로 실제 대역만 남기고 나머지는 지운다.
sudo vi /etc/squid/squid.conf
# 허용할 클라이언트 대역
acl localnet src 192.168.0.0/16
acl SSL_ports port 443
acl Safe_ports port 80
acl Safe_ports port 443
acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
http_access deny all
http_port 3128
# 디스크 캐시 10 GB (형식 디렉터리 16 x 256)
cache_dir ufs /var/spool/squid 10000 16 256
coredump_dir /var/spool/squid
패키지 저장소 미러링이 목적이면 maximum_object_size 1024 MB 를 더해 큰 RPM 도 캐시되게 한다. 문법 검사는 다음으로 한다.
sudo squid -k parse
sudo systemctl enable --now squid
sudo systemctl status squid
cache_dir 을 새로 잡았으면 첫 시작 때 디렉터리가 만들어진다. 만들어지지 않으면 sudo squid -z 로 초기화한다.
sudo firewall-cmd --permanent --add-port=3128/tcp
sudo firewall-cmd --reload
클라이언트에서 프록시를 거쳐 파일을 받아 본다.
curl -O -L "https://www.redhat.com/index.html" -x "proxy.example:3128"
오류 없이 받아지면 정상이다. 서버 쪽 /var/log/squid/access.log 에 TCP_MISS/200 · TCP_HIT/200 이 남는다. 클라이언트의 dnf · apt 프록시 설정은 Proxy 설정 을 본다.
2022년 테스트 됨. CentOS 7 에서는 yum -y install squid 후 systemctl enable squid && systemctl start squid 로 기본 설정 그대로 띄웠다.
최신 버전 Squid 7.7 (2026-08-24) — 2026-09-20 확인. https://www.squid-cache.org/Versions/ · RHEL 9 Squid 캐시 프록시 설정 https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/deploying_web_servers_and_reverse_proxies/configuring-the-squid-caching-proxy-server_deploying-web-servers-and-reverse-proxies ↩︎