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를 설치한 상태에서 진행합니다.
초기 인증 및 프로젝트 설정
본인 구글 계정을 인증하고 작업 대상 프로젝트를 지정합니다.
# 구글 계정 로그인
gcloud auth application-default login
# 프로젝트 설정
gcloud config set project [PROJECT_ID]
# 리전 및 존 설정
gcloud config set compute/zone us-central1-cVM 인스턴스 관리
GCP 콘솔 접속 없이 CLI로 VM 상태를 제어합니다.
# 인스턴스 목록 확인
gcloud compute instances list
# 인스턴스 시작
gcloud compute instances start [INSTANCE_NAME]
# 인스턴스 중지 (과금 방지용, 사용 종료 후 필수)
gcloud compute instances stop [INSTANCE_NAME]SSH 접속 및 Alias 설정
복잡한 SSH 키 등록 과정을 gcloud가 자동 처리합니다.
# SSH 접속
gcloud compute ssh [INSTANCE_NAME]터미널 설정 파일(.bashrc 또는 .zshrc)에 Alias를 등록하면 작업이 단축됩니다.
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 포워딩 기능을 활성화합니다.
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.confExit Node 실행 및 최적화
서버를 Exit Node로 선언하고 구동합니다. e2-small 환경의 네트워크 오버헤드를 줄이기 위해 오프로딩 설정을 비활성화합니다.
sudo tailscale up --advertise-exit-node
# 네트워크 인터페이스 확인 후 ethtool 적용 (통상 ens4)
sudo ethtool -K ens4 rx-gro-hw off tx-gro-hw off실행 직후 출력되는 인증 URL을 브라우저에 입력하여 기기를 등록합니다.
클라이언트 연동 및 검증
클라이언트 기기에서 서버를 경유하도록 설정합니다.
관리자 콘솔 승인
- Tailscale Admin Console(Machines)에 접속합니다.
- 등록된 인스턴스 기기 우측의
Edit route settings를 엽니다. Use as exit node항목을 체크하여 활성화합니다.
로컬 터미널 연결 적용
클라이언트 PC의 터미널에서 다음 명령어를 실행하여 트래픽을 GCP 인스턴스로 우회합니다.
# Exit node 활성화 (입력 즉시 트래픽 우회)
tailscale set --exit-node=[VM_IP_ADDRESS]
# 트래픽 우회 검증
curl ipinfo.io
# Exit node 비활성화
tailscale set --exit-node=검증 명령어를 실행했을 때 출력되는 IP 주소가 GCP VM의 외부 IP로 확인되면 정상적으로 구축된 것입니다.