가이드

오프쇼어 VPS에서 나만의 VPN 운영하기

상용 VPN은 마케팅 부서가 작성한 무로그 정책을 믿으라고 요구합니다. 직접 운영하는 VPS는 설정한 것 외에는 로그할 것이 없습니다. 다음은 전체 WireGuard 설정과 솔직한 트레이드오프 목록입니다.

셀프 호스팅이 상용 VPN보다 나은 이유

상용 VPN의 "무로그"는 정책입니다. 직접 운영하는 VPS의 무로그는 아키텍처입니다. 그 차이는 어떤 감사 배지보다 중요합니다:

  • VPN 제공업체는 설계상 모든 것을 봅니다. 수천 명의 사용자 트래픽이 그 회사가 완전히 통제하는 서버에서 종단됩니다. 비밀 유지 명령과 조용한 로깅 변경의 조합은 당신에게 보이지 않습니다. 그리고 당신이 들어본 제공업체에서도 실제로 일어난 적이 있습니다.
  • 직접 운영하는 VPS에서는 전체 스택을 통제합니다. sshd, 디스크, WireGuard 설정이 모두 여러분의 것입니다. 우리는 게스트 내부에서 아무것도 실행하지 않으며 네트워크 측에서 활동 또는 연결 로그를 보관하지 않습니다. 우리는 VPS 내부를 볼 수 없습니다. VPN 회사는 터널 내부를 보는 것으로 정의됩니다.
  • 관할권이 유리하게 작용합니다. 종료 지점은 배포한 곳에 존재합니다 — 선택에 따라 감시 동맹 밖에 있으며, VPN 회사의 본국 법원이 아닌 호스팅 관할권의 법원이 적용됩니다.

그리고 정직한 반론: 셀프 호스팅 VPN은 전적으로 여러분만의 전용 IP를 가집니다. 웹사이트는 이를 VPN으로 표시하지 않습니다(실질적인 편의성 향상)만, 모든 트래픽이 하나의 주소를 공유합니다 — 수천 명의 군중 속에 섞이지 않습니다. 군중 익명성이 요구 사항이라면 Tor를 사용하세요. 신뢰할 수 있는 인프라가 요구 사항이라면, 여러분이 통제하는 서버보다 나은 것은 없습니다.

구축할 내용

휴대폰 및 노트북 → WireGuard 터널 → 선택한 위치의 SV-Pro → 공개 인터넷. 서버의 IPv4 포워딩 및 NAT, 클라이언트의 전체 터널 라우팅(0.0.0.0/0), DNS는 9.9.9.9을 통해. 예시 서버 IP: 185.220.101.14 — 여러분의 것으로 교체하세요. 기본 OS는 Debian 13입니다. 아직 서버를 강화하지 않았다면 30분 체크리스트 를 먼저 수행한 후 돌아오세요.

Debian 13 서버 설정

설치 및 키 생성

apt update && apt install -y wireguard qrencode

cd /etc/wireguard
umask 077

# server keypair
wg genkey | tee server.key | wg pubkey > server.pub

# one keypair per client device (laptop shown; repeat for phone)
wg genkey | tee laptop.key | wg pubkey > laptop.pub

서버에서 클라이언트 키를 생성하는 것은 SSH로 설정 파일을 전송하므로 초기 설정에는 허용됩니다. 더 엄격한 위생을 원하면 각 기기에서 키를 생성하고 서버 설정에 공개 키만 붙여넣으세요.

wg0.conf 작성

# /etc/wireguard/wg0.conf
[Interface]
Address    = 10.10.0.1/24
ListenPort = 51820
PrivateKey = <contents of server.key>
PostUp     = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown   = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

# laptop
[Peer]
PublicKey  = <contents of laptop.pub>
AllowedIPs = 10.10.0.2/32

# phone — repeat the block with 10.10.0.3/32

업링크 인터페이스 이름을 ip route | grep default 로 확인하세요 — VPSRento 이미지에서는 eth0이지만 다르면 MASQUERADE 줄을 조정하세요.

포워딩 활성화 및 시작

# turn on IPv4 forwarding, persist across reboots
echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/99-wireguard.conf
sysctl -p /etc/sysctl.d/99-wireguard.conf

# firewall: one UDP port, nothing else
ufw allow 51820/udp comment 'WireGuard'

# bring it up, now and on boot
systemctl enable --now wg-quick@wg0
wg show

wg show 는 인터페이스, 수신 포트 및 피어를 출력해야 합니다. 핸드셰이크 줄은 아직 없습니다 — 클라이언트가 연결될 때 나타납니다.

클라이언트 설정

노트북에서 laptop.conf:

[Interface]
PrivateKey = <contents of laptop.key>
Address    = 10.10.0.2/32
DNS        = 9.9.9.9

[Peer]
PublicKey           = <contents of server.pub>
AllowedIPs          = 0.0.0.0/0, ::/0
Endpoint            = 185.220.101.14:51820
PersistentKeepalive = 25

AllowedIPs = 0.0.0.0/0, ::/0 모든 트래픽을 터널로 라우팅합니다 — 나중에 원하면 분할 터널로 변경하세요. PersistentKeepalive 가정용 NAT를 통과해 경로를 살려 둡니다. 휴대폰의 경우 아무것도 입력할 필요가 없습니다. 서버에서 휴대폰용 설정 파일을 생성해 터미널에 QR 코드로 렌더링하세요:

# prints a scannable QR in the terminal — scan it with the WireGuard app
qrencode -t ansiutf8 < phone.conf

활성화한 후 클라이언트에서 확인하세요: curl ifconfig.me 는 VPS의 IP를 반환해야 하며, DNS 누출 테스트는 9.9.9.9 의 운영자를 표시해야 합니다 — ISP가 아니라.

성능 참고 사항

WireGuard는 커널에 있으며 ChaCha20을 사용합니다 — AMD EPYC 노드에서 단일 터널은 실제로 600–900 Mbps NAT를 통과합니다. 즉, CPU에 부하가 걸리기 훨씬 전에 포트가 포화됩니다. 진짜 제약은 암호가 아니라 플랜의 대역폭 조건입니다. VPN은 순수하게 대역폭을 소모합니다. 다운로드하는 1GB마다 인바운드에서 한 번, 아웃바운드에서 한 번 계산됩니다. 종량제 플랜에서는 이 계산이 중요합니다. SV-Pro에서는 — $19.99/월, 1 Gbps 무제한 — 에서는 그렇지 않으며, 그래서 SV-Pro가 VPN 구축자에게 추천하는 플랜입니다. 한 고객은 암스테르담의 단일 SV-Pro에서 전체 가족 구성을 운영하며 아직 한계를 발견하지 못했습니다.

멀티홉: 암스테르담 진입, 레이캬비크 출구

두 번째 레이어를 위해 관할권을 넘어 두 VPS를 연결하세요. 네덜란드 의 진입 노드(당신에게 저렴한 지연 시간), 두 서버 간 WireGuard 터널, 아이슬란드 의 출구 노드(트래픽이 실제로 시작되길 원하는 관할권). 당신의 기기는 암스테르담의 단일 엔드포인트를 봅니다; 인터넷은 레이캬비크의 IP를 봅니다; 진입 노드는 통과하는 암호문만 봅니다. 기계적으로는 방금 작성한 동일한 설정을 두 번 — 진입 노드의 두 번째 wg 인터페이스가 출구 터널로 기본 경로를 가리킵니다. 비용은 대략 40–60ms 의 추가 지연 시간과 하나 더 $5.99–6.89 VPS입니다. 위협 모델에 예산이 있을 때 가치가 있고, 없을 때는 장식입니다.

솔직한 한계

  • 이제 당신이 운영자입니다. 업데이트, 키 교체 및 가동 시간은 당신의 책임입니다. unattended-upgrades하드닝 체크리스트 가 대부분을 처리합니다; 나머지는 일요일의 가끔 apt upgrade 입니다.
  • 하나의 IP는 하나의 정체성입니다. 관찰자는 주소에서 나가는 모든 것을 상관시킬 수 있습니다. 중요할 때 다른 위치에 재배포하세요 — 55초 후에 40개 이상의 블랙리스트에 대해 확인된 새 출구와 새 IP를 얻습니다.
  • VPS는 Tor가 아닙니다. 이 설정은 ISP, 적대적 Wi-Fi 및 VPN 회사로부터 보호합니다. 터널 양쪽 끝을 감시하는 국가급 상대에 대해서는 타이밍 상관이 존재합니다. 어떤 싸움에 있는지 아세요.

당신의 터널. 당신의 로그: 없음.

SV-Pro — 4 vCPU, 8 GB RAM, 무제한 1 Gbps — VPN 구축자들이 선택하는 플랜, $19.99/월. 55초 만에 루트 권한 확보.

한국어