WireGuard · 2026-03-03

WireGuard + WG-easy로 사용자 관리 쉽게 하기

WireGuard와 WG-easy(WireGuard-UI)를 활용해 VPN 서버 설치부터 사용자 추가, 구성 파일 발급, 방화벽 및 백업까지 실무에 바로 적용 가능한 설정

작성일 : 2026-03-03 ㆍ 작성자 : 관리자
post
목차

소개

WireGuard는 가볍고 빠른 VPN 엔진이다. 하지만 키 관리와 사용자 배포는 초보자에게 번거로울 수 있다. WG-easy는 웹 인터페이스를 제공해 사용자 생성, 구성 파일 발급, QR 코드 공유를 간편하게 만든다. 이 글은 WG-easy 설치와 운영에 필요한 핵심 절차를 단계별로 설명한다. 초보자도 따라 하기 쉬운 구성과 주의사항을 중심으로 정리한다.

사전 준비

설치 전에 다음 항목을 확인한다.

  • 서버: Ubuntu 20.04 이상 또는 Docker가 동작하는 리눅스
  • 포트: UDP 51820 기본 포트(필요시 변경)
  • 도메인 또는 공인 IP: 원격 접속 및 HTTPS 적용 시 필요
  • 기본 명령어 권한: sudo 권한

설치 방식 선택

WG-easy는 Docker 기반으로 간단히 설치 가능하다. Docker가 익숙하면 docker-compose를 사용한다. 단일 명령으로 실행하려면 docker run 방식도 사용 가능하다. 이 문서에서는 docker-compose 방식으로 설명한다.

환경 설정

먼저 Docker와 Docker Compose를 설치한다. 다음은 Ubuntu 기준 설치 절차 예시이다.

sudo apt update
sudo apt install -y docker.io docker-compose
sudo systemctl enable --now docker

docker-compose 파일 생성

프로젝트 폴더를 만들고 docker-compose.yml을 작성한다. 아래 예시는 기본 포트와 환경변수를 포함한다.

version: '3.8'
services:
  wg-easy:
    image: weejewel/wg-easy
    container_name: wg-easy
    restart: unless-stopped
    ports:
      - '51820:51820/udp'
      - '51821:51821/tcp'
    environment:
      - WG_HOST=your.domain.or.ip
      - PASSWORD=강력한비밀번호
      - WG_DEFAULT_ADDRESS=10.13.13.1
      - WG_DEFAULT_DNS=1.1.1.1
    volumes:
      - ./data:/etc/wireguard
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    sysctls:
      net.ipv4.conf.all.src_valid_mark: 1

WG_HOST는 접속에 사용할 도메인이나 공인 IP로 교체한다. PASSWORD는 웹 UI 로그인 비밀번호다.

컨테이너 실행

docker-compose로 컨테이너를 띄운다.

sudo docker-compose up -d

실행 후 웹 브라우저에서 http://your.domain.or.ip:51821에 접속해 로그인한다. 로그인 후 사용자 추가, 구성 파일 생성, QR 코드 확인이 가능하다.

사용자 관리 (WireGuard 웹관리 WG-easy)

WG-easy는 직관적 인터페이스로 다음 작업을 지원한다.

  • 사용자 추가/삭제
  • 구성 파일(.conf) 즉시 다운로드
  • QR 코드로 모바일 설정
  • 클라이언트별 트래픽 및 할당 IP 확인

새 사용자를 만들 때는 이름과 만료일 등을 설정할 수 있다. 생성된 구성 파일을 클라이언트에 복사하거나 QR 스캔으로 즉시 연결한다.

방화벽 및 라우팅 설정

서버에서 NAT와 포워딩 설정을 해야 내부 네트워크 또는 인터넷 접근이 가능하다. 기본적인 iptables/NAT 예시는 다음과 같다.

sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -A POSTROUTING -s 10.13.13.0/24 -o eth0 -j MASQUERADE

eth0는 공인 네트워크 인터페이스 이름으로 변경한다. ufw를 쓰는 경우 포워딩 허용 및 NAT 규칙을 구성해야 한다.

HTTPS(선택)

관리 인터페이스에 공개 도메인을 연결하면 HTTPS 적용을 권장한다. 간단한 방법은 리버스 프록시(Nginx, Caddy)를 사용해 TLS를 종료하는 것이다. Caddy는 자동으로 인증서를 발급해 주므로 설정이 간편하다.

백업 및 복구

WireGuard 구성 파일과 키는 /etc/wireguard에 저장된다. 도커 볼륨이나 호스트 디렉터리를 정기적으로 백업한다. 예를 들어 다음과 같이 압축해 보관한다.

tar -czf wg-backup-$(date +%F).tar.gz ./data

복구 시 동일한 경로에 압축을 풀고 컨테이너를 재시작하면 된다.

문제 해결

연결이 안 될 때 확인할 항목.

  • 컨테이너 로그: sudo docker logs wg-easy
  • 포트 열림: UDP 51820이 외부에서 접근 가능한지 확인
  • IP 포워딩: net.ipv4.ip_forward 설정 확인
  • 클라이언트 구성: 서버 공개키와 엔드포인트가 올바른지 검증

보안 권장 사항

  • 관리 비밀번호는 강력하게 설정하고 필요 시 2단계 인증 적용
  • WG-easy 웹 인터페이스는 외부 공개 시 방화벽으로 접근 제어
  • 정기적으로 사용자 목록을 검토해 불필요한 계정 삭제
  • 백업을 암호화해 안전한 장소에 보관

결론

WG-easy를 쓰면 WireGuard의 키 관리와 사용자 배포가 크게 쉬워진다. WG-easy 설치 가이드를 참고해 Docker 환경에서 빠르게 배포하고, WireGuard UI 설치 후 웹에서 사용자 관리를 수행하면 운영 부담을 줄일 수 있다. 마지막으로 방화벽과 백업 정책을 마련해 안정적으로 서비스할 수 있는 환경을 유지한다.

WG-easy 설치 가이드 WireGuard UI 설치 WireGuard 웹관리 WG-easy WireGuard 설치 Docker WireGuard VPN 사용자 관리 VPN 백업 네트워크 보안