Docker를 사용하여 Squid 프록시 서버를 구축하는 방법
프록시(Proxy) 서버는 클라이언트와 인터넷 사이에서 중계 역할을 수행하며 보안, 캐싱, IP 우회 등 다양한 용도로 사용됩니다. Docker Compose를 활용해 쉽고 빠르게 Squid 프록시 환경을 구축하는 방법입니다.
다이어그램

Mermaid(Flowchart)
graph LR
subgraph "Internal Network (192.168.100.0/24)"
A[Client<br/>192.168.100.100] -- "Port 3128" --> B
B[Squid Proxy Server<br/>192.168.100.24]
end
subgraph "Docker Container"
B -- "Volume Mount" --> C(squid.conf)
B -- "Port Forwarding" --> D{Squid Process}
end
D -- "Public Traffic" --> E((Internet))
style B fill:#f9f,stroke:#333,stroke-width:2px
style A fill:#fff,stroke:#333
style E fill:#4285F4,color:#fff프록시 서버 설정(Server Side)
프로젝트 디렉토리 생성
sudo mkdir -p /docker-container/docker-squid-proxycd /docker-container/docker-squid-proxyDocker Compose 파일 작성
cat <<EOF | sudo tee /docker-container/docker-squid-proxy/docker-compose.yaml
services:
squid-container:
image: ubuntu/squid:5.2-22.04_beta
restart: always
container_name: squid-container
user: root
environment:
- TZ=Asia/Seoul
volumes:
- ./squid.conf:/etc/squid/squid.conf:ro
- ./log:/var/log/squid
ports:
- 3128:3128
EOFSquid 설정 파일 작성
cat <<EOF | sudo tee /docker-container/docker-squid-proxy/squid.conf
# 모든 소스 IP에 대해 localnet 정의
acl localnet src 0.0.0.0/0
# 접속 허용 설정
http_access allow localnet
# 프록시 포트 설정
http_port 3128
EOF컨테이너 실행
sudo docker compose up -d로그 확인
tail -f /docker-container/docker-squid-proxy/log/access.log프록시 클라이언트 설정(Client Side)
환경 변수 등록
cat <<EOF | sudo tee -a ~/.bashrc
# Proxy Settings
export http_proxy=http://192.168.100.24:3128
export https_proxy=http://192.168.100.24:3128
export no_proxy="localhost,127.0.0.1"
EOFsource ~/.bashrc접속 테스트 및 검증
curl -s -k -v https://ifconfig.me