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.confINI
[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 IPIP 포워딩 활성화
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편집 안내 · Editorial Note
이 가이드는 AI 도구를 활용해 초안을 구성하고 사람이 명령어·문맥을 검토해 발행했습니다. 운영체제와 도구 버전에 따라 결과가 달라질 수 있으므로 적용 전 공식 문서를 함께 확인하세요. 오류를 발견하시면 이메일로 제보해 주세요.
질문 & 답변 (Q&A)
이 가이드에 대해 궁금한 점을 질문해보세요. 확인 후 답변드립니다.