GitHub - qdm12/gluetun: VPN client in a thin Docker container for multiple VPN providers, written in Go, and using OpenVPN or Wi

VPN client in a thin Docker container for multiple VPN providers, written in Go, and using OpenVPN or Wireguard, DNS over TLS, with a few proxy servers built-in. - GitHub - qdm12/gluetun: VPN clien...

github.com

 

도커 컨테이너가 VPN을 통해서만 통신하도록 설정하고자 할 때, Gluetun은 편리한 도구입니다. Gluetun은 와이어가드(WireGuard)나 오픈VPN(OpenVPN)을 지원하는 VPN과 함께 사용할 수 있습니다. 아래는 무료 버전의 프로톤 VPN을 사용하여 컨테이너를 생성하는 Docker Compose 예시입니다.

 

version: "3"

services:
  gluetun:
    image: qmcgaw/gluetun
    container_name: gluetun
    restart: unless-stopped
    cap_add:
      - NET_ADMIN
    environment:
      - VPN_SERVICE_PROVIDER=protonvpn
      - OPENVPN_USER=아이디
      - OPENVPN_PASSWORD=비번
      - SERVER_COUNTRIES=Japan
      - FREE_ONLY=on
      - TZ=Asia/Tokyo
    ports:
      - xxxx:xxxx # 다른 컨테이너에서 필요한 포트
      - 8888:8888/tcp # HTTP proxy
      - 8388:8388/tcp # Shadowsocks
      - 8388:8388/udp # Shadowsocks

 

위 예시에서 실제 프로톤 VPN 계정의 오픈VPN 아이디와 비밀번호로 대체해야 합니다. 또한, 지역을 일본으로 설정하였으며, 만약 프록시 지원이 필요하지 않다면 포트에서 해당 부분을 생략할 수 있습니다. 중요한 점은, 다른 도커 컨테이너에서 필요한 포트를 해당 도커에서 작성하는 대신 Gluetun의 포트 설정 부분에 입력해야 합니다.

 

version: "3"

services:
  example:
    image: 
    network_mode: container:gluetun
#     ports:
#       - 필요한 포트

 

다른 컨테이너는 네트워크 모드를 container:gluetun으로 설정하여 VPN으로만 통신하도록 할 수 있으며, Gluetun에서는 필요한 포트를 설정하여 다른 컨테이너의 포트 요청을 라우팅합니다. 이를 통해 Gluetun은 마치 킬 스위치와 같은 역할을 수행하며, 컨테이너 간 통신은 오로지 설정된 VPN을 통해서만 이루어집니다.

 

추가적인 옵션을 사용하고자 할 경우, 아래의 링크에서 자세한 정보를 확인할 수 있습니다.

https://github.com/qdm12/gluetun/wiki