Google Compute Engine의 Spot VM 인스턴스를 활용하여 Tailscale Exit Node를 구축하는 방법입니다. Google AI Pro 플랜에서 매월 제공하는 10달러 크레딧 소진하기 활용 사례입니다. 초기 인스턴스 생성만 웹 콘솔에서 진행하고, 이후 작업은 모두 터미널에서 gcloud SDK로 처리하여 효율성을 높였습니다. 상용 VPN의 무료 플랜 대신 본인만의 전용 VPN 서버를 구축해 안정적으로 사용할 수 있습니다. Debian 계열 리눅스 사용자를 위한 가이드입니다.

사전 준비

웹 브라우저를 통해 Google Cloud Console에 접속합니다. 새 프로젝트를 생성한 뒤, VM 인스턴스를 생성합니다. Tailscale 트래픽 라우팅 역할만 수행하므로 최소 사양으로 구성합니다.

  • Machine type: e2-small
  • Boot disk: Ubuntu Minimal 최신 버전 (x86_64)
  • Disk size: 10GB
  • Network Interfaces: IP forwarding 속성을 ON으로 변경
  • Network Service Tier: Premium 대신 Standard 선택

로컬 환경 구성

웹 브라우저 작업을 마치고 로컬 터미널로 이동합니다. Google Cloud SDK를 설치한 상태에서 진행합니다.

초기 인증 및 프로젝트 설정

본인 구글 계정을 인증하고 작업 대상 프로젝트를 지정합니다.

bash
# 구글 계정 로그인
gcloud auth application-default login

# 프로젝트 설정
gcloud config set project [PROJECT_ID]

# 리전 및 존 설정
gcloud config set compute/zone us-central1-c

VM 인스턴스 관리

GCP 콘솔 접속 없이 CLI로 VM 상태를 제어합니다.

bash
# 인스턴스 목록 확인
gcloud compute instances list

# 인스턴스 시작
gcloud compute instances start [INSTANCE_NAME]

# 인스턴스 중지 (과금 방지용, 사용 종료 후 필수)
gcloud compute instances stop [INSTANCE_NAME]

SSH 접속 및 Alias 설정

복잡한 SSH 키 등록 과정을 gcloud가 자동 처리합니다.

bash
# SSH 접속
gcloud compute ssh [INSTANCE_NAME]

터미널 설정 파일(.bashrc 또는 .zshrc)에 Alias를 등록하면 작업이 단축됩니다.

bash
alias vmon='gcloud compute instances start [INSTANCE_NAME]'
alias vmoff='gcloud compute instances stop [INSTANCE_NAME]'
alias vmssh='gcloud compute ssh [INSTANCE_NAME]'

Tailscale 서버 구축

인스턴스에 SSH로 접속한 뒤, VPN 라우팅을 위한 Tailscale 설치 및 최적화를 진행합니다.

패키지 설치 및 IP 포워딩

Tailscale을 설치하고 리눅스 커널의 IP 포워딩 기능을 활성화합니다.

bash
curl -fsSL https://tailscale.com/install.sh | sh

echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf

Exit Node 실행 및 최적화

서버를 Exit Node로 선언하고 구동합니다. e2-small 환경의 네트워크 오버헤드를 줄이기 위해 오프로딩 설정을 비활성화합니다.

bash
sudo tailscale up --advertise-exit-node

# 네트워크 인터페이스 확인 후 ethtool 적용 (통상 ens4)
sudo ethtool -K ens4 rx-gro-hw off tx-gro-hw off

실행 직후 출력되는 인증 URL을 브라우저에 입력하여 기기를 등록합니다.

클라이언트 연동 및 검증

클라이언트 기기에서 서버를 경유하도록 설정합니다.

관리자 콘솔 승인

  1. Tailscale Admin Console(Machines)에 접속합니다.
  2. 등록된 인스턴스 기기 우측의 Edit route settings를 엽니다.
  3. Use as exit node 항목을 체크하여 활성화합니다.

로컬 터미널 연결 적용

클라이언트 PC의 터미널에서 다음 명령어를 실행하여 트래픽을 GCP 인스턴스로 우회합니다.

bash
# Exit node 활성화 (입력 즉시 트래픽 우회)
tailscale set --exit-node=[VM_IP_ADDRESS]

# 트래픽 우회 검증
curl ipinfo.io

# Exit node 비활성화
tailscale set --exit-node=

검증 명령어를 실행했을 때 출력되는 IP 주소가 GCP VM의 외부 IP로 확인되면 정상적으로 구축된 것입니다.