OffshoreVps
보안2026년 9월 17일읽는 시간 10분작성: OffshoreVps 팀

VPS에 나만의 WireGuard VPN 구축하기

단계별 안내: Ubuntu 또는 Debian에 WireGuard를 설치하고, 키를 만들고, 서버와 클라이언트 설정을 작성하고, 방화벽을 열고, 터널을 테스트합니다.

WireGuard는 빠르고 작으며 설정하기 쉬운 최신 VPN 프로토콜입니다. VPS에서 직접 운영하면 제3자 VPN 업체 없이 원하는 국가의 서버로 암호화된 터널을 만들 수 있습니다. 이 가이드는 Ubuntu 24.04 또는 Debian 12/13을 사용하며 이미 서버 보안을 마쳤다고 가정합니다.

WireGuard를 설정하는 데 사용하는 명령어를 보여 주는 VPS의 터미널 창으로, “sudo apt update”로 시작함
이 가이드에서 서버에서 실행하게 될 명령어의 종류입니다.

1. WireGuard 설치

sudo apt update
sudo apt install -y wireguard

2. 서버 키 생성

cd /etc/wireguard
umask 077
wg genkey | tee server.key | wg pubkey > server.pub

umask 077은 키 파일을 root만 읽을 수 있게 합니다. server.key는 비공개로 유지하세요.

3. 클라이언트 키 생성

서버에서 노트북이나 휴대폰용 키 쌍을 생성한 뒤 클라이언트 설정을 복사해 가세요.

wg genkey | tee client1.key | wg pubkey > client1.pub

4. 서버 설정 작성

먼저 공용 네트워크 인터페이스의 이름을 찾으세요.

ip route get 1.1.1.1 | awk '{print $5; exit}'

보통 eth0 또는 ens3입니다. /etc/wireguard/wg0.conf를 만들고 대문자로 된 값을 직접 사용하는 값으로 바꾸세요.

[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
PostUp   = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ETH_IF -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ETH_IF -j MASQUERADE

[Peer]
# client1
PublicKey = CLIENT1_PUBLIC_KEY
AllowedIPs = 10.8.0.2/32

표시된 위치에 server.key와 client1.pub의 내용을 붙여 넣고, ETH_IF를 인터페이스 이름으로 바꾸세요.

5. IP 포워딩 켜기

echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-wireguard.conf
sudo sysctl --system
이 가이드의 단계를 순서대로 나열하면 다음과 같습니다. 1. 1. WireGuard 설치; 2. 3. 클라이언트 키 만들기; 3. 5. IP 포워딩 켜기; 4. 7. 터널 시작; 5. 9. 테스트; 6. 위치 선택
이 가이드의 단계를 순서대로 나열한 것입니다.

6. 방화벽 열기

sudo ufw allow 51820/udp
sudo ufw route allow in on wg0
sudo ufw reload

7. 터널 시작

sudo systemctl enable --now wg-quick@wg0
sudo wg show

인터페이스가 보이고, 클라이언트가 연결되면 최근 핸드셰이크도 보여야 합니다.

8. 클라이언트 설정

기기에서 다음과 같은 설정을 만드세요(Windows, macOS, Linux, iOS, Android용 공식 WireGuard 앱은 파일이나 QR 코드로 가져올 수 있습니다).

[Interface]
Address = 10.8.0.2/24
PrivateKey = CLIENT1_PRIVATE_KEY
DNS = 1.1.1.1

[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = YOUR_SERVER_IP:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25

AllowedIPs = 0.0.0.0/0, ::/0을 사용하면 모든 트래픽이 터널을 통과합니다. 사설 네트워크에만 접속하려면 대신 10.8.0.0/24를 사용하세요.

9. 테스트

  1. 클라이언트에서 터널을 활성화하세요.
  2. 서버에서 sudo wg show를 실행해 최근 핸드셰이크가 있는지 확인하세요.
  3. 클라이언트에서 "내 IP 확인" 페이지에 접속하세요. 서버의 주소가 표시되어야 합니다.
  4. 프라이버시가 목표라면 DNS 누출을 확인하고, 서버에 IPv6가 있다면 IPv6 규칙도 추가하세요.

기기 더 추가하기

새 기기마다 키 쌍을 생성하고, [Peer] 블록을 하나 더 추가해 10.8.0.3/32 같은 새 주소를 지정한 다음, sudo wg syncconf wg0 <(wg-quick strip wg0)를 실행해 기존 연결을 끊지 않고 적용하세요.

위치 선택

WireGuard 서버는 저희의 어느 위치에서든 작동합니다. 속도를 위해 가까운 위치를 고르거나, 트래픽이 나오길 원하는 IP 주소의 국가를 고르세요. VPS 위치 선택 방법을 참고하세요. 개인용 터널에는 작은 VPS면 충분합니다.