Byeon-gun's WIPI

IT 인프라와 소프트웨어 개발에 관한 실용적인 기술 가이드와 튜토리얼을 제공하는 기술 블로그입니다.

Byeon-gun's WIPI

IT 인프라와 소프트웨어 개발에 관한 실용적인 기술 가이드와 튜토리얼을 제공하는 기술 블로그입니다.

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-proxy
cd /docker-container/docker-squid-proxy

Docker 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
EOF

Squid 설정 파일 작성

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"
EOF
source ~/.bashrc

접속 테스트 및 검증

curl -s -k -v https://ifconfig.me

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Scroll to top