/엔지니어/네트워킹 / 서버/WireGuard VPN 설치·설정 완전 가이드
네트워킹 / 서버중급UbuntuDebianCentOSwireguardvpn터널링

WireGuard VPN 설치·설정 완전 가이드

WireGuard 서버·클라이언트 설치, 키 생성, 설정 파일 작성, 피어 추가, 라우팅 설정까지 사이트 간 VPN과 원격 접속 구성 방법을 설명합니다.

WireGuard 특징

  • 기존 OpenVPN/IPSec 대비 코드베이스가 매우 작아 공격 표면 최소
  • UDP 기반, 기본 포트 51820
  • 커널 모듈로 빠른 처리속도
  • 설정 파일 단순 (10줄 내외)

서버 설치

Bash
# Ubuntu 22.04+
sudo apt update && sudo apt install -y wireguard

# CentOS / RHEL
sudo yum install -y epel-release
sudo yum install -y wireguard-tools

키 생성

Bash
# 서버 키 생성
wg genkey | sudo tee /etc/wireguard/server_private.key   | wg pubkey | sudo tee /etc/wireguard/server_public.key

# 클라이언트 키 생성
wg genkey | tee client_private.key | wg pubkey > client_public.key

# 키 확인
sudo cat /etc/wireguard/server_private.key
sudo cat /etc/wireguard/server_public.key

# 권한 설정
sudo chmod 600 /etc/wireguard/server_private.key

서버 설정 파일

Bash
sudo nano /etc/wireguard/wg0.conf
INI
[Interface]
PrivateKey = <server_private_key>
Address = 10.0.0.1/24         # VPN 서버 내부 IP
ListenPort = 51820
DNS = 1.1.1.1

# 인터넷 공유 (선택) — 클라이언트 트래픽 전체를 서버로 라우팅
PostUp   = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

# 클라이언트 1 (피어)
[Peer]
PublicKey = <client1_public_key>
AllowedIPs = 10.0.0.2/32      # 이 클라이언트의 VPN IP

IP 포워딩 활성화

Bash
# 즉시 활성화
sudo sysctl -w net.ipv4.ip_forward=1

# 영구 적용
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

서버 시작

Bash
# WireGuard 시작
sudo wg-quick up wg0

# 부팅 시 자동 시작
sudo systemctl enable --now wg-quick@wg0

# 상태 확인
sudo wg show

클라이언트 설정

INI
# /etc/wireguard/wg0.conf (클라이언트)
[Interface]
PrivateKey = <client_private_key>
Address = 10.0.0.2/24          # 클라이언트 VPN IP
DNS = 1.1.1.1

[Peer]
PublicKey = <server_public_key>
Endpoint = 서버_공인IP:51820
AllowedIPs = 0.0.0.0/0         # 모든 트래픽 → VPN (전체 터널)
# AllowedIPs = 10.0.0.0/24     # VPN 네트워크만 (split tunnel)
PersistentKeepalive = 25        # NAT 유지용
Bash
# 클라이언트 연결
sudo wg-quick up wg0

# 연결 확인
curl ifconfig.me    # 서버 공인 IP가 나오면 성공
sudo wg show

방화벽 설정 (서버)

Bash
sudo ufw allow 51820/udp
sudo ufw reload

피어 동적 추가 (재시작 없이)

Bash
# 새 클라이언트 추가
sudo wg set wg0 peer <new_client_public_key>   allowed-ips 10.0.0.3/32

# 설정 파일에도 반영
sudo wg-quick save wg0
#wireguard#vpn#터널링#보안#네트워크#linux
편집 안내 · Editorial Note

이 가이드는 AI 도구를 활용해 초안을 구성하고 사람이 명령어·문맥을 검토해 발행했습니다. 운영체제와 도구 버전에 따라 결과가 달라질 수 있으므로 적용 전 공식 문서를 함께 확인하세요. 오류를 발견하시면 이메일로 제보해 주세요.

질문 & 답변 (Q&A)

이 가이드에 대해 궁금한 점을 질문해보세요. 확인 후 답변드립니다.