Profile picture

[Linux] 홈서버 VPN은 이제 Tailscale로 종결하겠습니다!

JaehyoJJAng2025년 06월 10일

개요

외부에서 집에 있는 내 서버, 내 서비스에 접속하려면 생각보다 할 일이 많습니다.


공유기에서 포트포워딩 설정을 만지고, VPN 서비스도 구축해줘야 하고, 클라이언트 설정 파일도 생성해줘야 하고 ..

사실 초기 구축 시에는 이러한 VPN 구축 및 설정 관련해서 모든 시간을 다 할애하기도 합니다.


"그냥 ... 쉽게 ... 안될까?"

이 질문에 대한 대답은 바로 테일스케일(Tailscale) 입니다.


Tailscale, 도대체 뭔데!

테일스케일은 와이어가드를 기반으로 구현된 VPN입니다.


하지만 Tailscale은 와이어가드의 그 강력한 VPN 기술을 그대로 계승하면서도,

사용자는 그 복잡한 설정을 전혀 알 필요가 없습니다.


이전에 와이어가드를 구축하는 게시글을 작성한 적이 있었는데

구축하는데 생각보다 많은 과정이 필요했습니다.


또 무엇보다도 클라이언트가 많아지면 많아질수록 관리해야 할 파일이나, 설정 등을 매번 입력하는게 엄청나게 귀찮아지죠.


물론 위와 같은 작업들은 모두 스크립트를 직접 작성해보거나 wireguard-ui 라는 오픈소스를 활용해 웹 UI에서 관리할 수도 있기는 합니다.


반면에, 테일스케일은 어떨까요?

테일스케일은 위에 나열된 불편함을 모두 보완해주는 프로그램입니다.


  • 와이어가드 기반의 강력한 보안: 현존하는 가장 강력하고 빠른 VPN 프로토콜인 와이어가드를 기반으로 하여 모든 통신은 종단간 암호화됩니다.
  • 중앙 관리의 편리함: 구글, 마이크로소프트, 깃허브 등 기존에 사용하던 계정으로 로그인만 하면 끝! 어떤 기기가 내 네트워크에 접속할 수 있는지 웹 관리 페이지에서 한눈에 보고 관리할 수 있습니다.
  • 마법 같은 자동 연결 (NAT 트래버설): 공유기 포트포워딩? 방화벽 설정? 다 잊으셔도 좋습니다. 테일스케일이 알아서 방화벽을 '뚫고' 기기들을 P2P로 직접 연결해 줍니다. (이를 'Hole Punching'이라 부릅니다.)
  • 기억하기 쉬운 주소, MagicDNS: 192.168.0.157 같은 복잡한 IP 주소를 외울 필요가 없습니다. proxmox-server, my-laptop처럼 내가 정한 기기 이름으로 바로 접속할 수 있게 해주는 MagicDNS 기능이 기본으로 제공됩니다.

image 출처: how tailscale works?



Tailscale 도입해보자!

Tailscale 구축 과정은 다음과 같이 진행될 예정입니다!

  • 1. 방화벽 설정하기
  • 2. Tailscale 회원가입 및 관리 콘솔 접속하기
  • 3. Tailscale 설치하기
  • 4. Tailscale 실행 및 네트워크 연결하기
  • 4-1. Tailscale 연결 확인해보기.
  • 5. 관리 콘솔에서 라우팅 활성화하기
  • 6. 다른 기기(클라이언트)에 Tailscale 설치 및 연결해보기
  • 7. 마법을 경험할 시간!

1. 방화벽 설정하기

tailscale 공식 문서를 보면 테일스케일은 기본적으로 41641 포트를 사용한다고 명시되어 있습니다.


만약 운영 중인 서버의 네트워크에 방화벽이 존재하거나, 서버 자체 방화벽(iptables 등)을 운영 중이라면

위 포트 번호를 오픈해주셔야 합니다.


또한, 위 기본 포트 말고 다른 포트로 변경하고 싶으시다면 tailscale 설치 하신 이후에 /etc/default/tailscaled 파일의 다음 항목을 원하는 포트 번호로 변경해주시면 됩니다.

# Set the port to listen on for incoming VPN packets.
# Remote nodes will automatically be informed about the new port number,
# but you might want to configure this in order to set external firewall
# settings.
PORT="41641" # 원하는 포트 번호로 변경하세요.

만약 포트 번호를 바꾸셨다면 꼭 tailscale 서비스를 재시작해주세요.


2. 회원가입 및 관리 콘솔 접속하기

테일스케일 계정을 생성해줘야 합니다.

개인 사용자는 최대 3명의 사용자, 100대의 기기까지 무료 로 사용할 수 있기 때문에 개인적인 용도로 사용을 할거라면 아주 차고도 넘치는 플랜이죠!


1. Tailscale 공식 홈페이지 로 이동하여 Get Started 버튼을 클릭합니다.
image 자주 사용하는 계정을 선택해 가입 및 로그인을 완료해주세요


3. 로그인 하면 앞으로 모든 기기를 관리하게 될 관리 콘솔(Admin Console) 화면이 나타납니다. 아직은 아무 기기도 등록하지 않은 상태일 겁니다.

image


3. Tailscale 설치하기


운영 중인 환경에 맞게 위 공식 문서의 가이드대로 Tailscale 설치를 진행해주시면 됩니다.
(너무 간단하니 설치는 가이드만 참고하세요!)


4. Tailscale 실행 및 네트워크 연결

이제 서버에 설치된 테일스케일을 실행하여 내 계정의 네트워크에 참여시켜야 합니다.


여기서 홈서버 VPN의 핵심 기능인 서브넷 라우터엑싯 노드 를 활성화하겠습니다.

  • 서브넷 라우터 (Subnet Router): tailscale이 설치된 서버를 통해 홈서버의 내부 네트워크 전체(예: 192.168.0.0/24)에 접근할 수 있게 해주는 관문(Gateway) 역할입니다.
  • 엑싯 노드 (Exit Node): 카페의 공용 와이파이 등을 사용할 때, 내 스마트폰이나 노트북의 모든 인터넷 트래픽을 집 인터넷을 통해 나가도록 하여 보안을 강화하는 기능입니다.

1. 서버의 터미널에 접근해 아래 명령어를 실행해주세요. IP 주소는 반드시 자신의 공유기 내부망 대역에 맞게 수정해주셔야 합니다.

sudo tailscale up --advertise-routes=192.168.0.0/24 --advertise-exit-node

2. 명령어를 실행하면 인증 URL이 나타납니다!

To authenticate, visit: https://login.tailscale.com/a/xxxxxxxx

이 URL을 복사하여서 웹 브라우저에서 열고, 내 테일스케일 계정으로 로그인하여 기기 연결을 승인해주면 됩니다.
image


기기 연결이 승인되면 기기 연동이 완료되었다는 페이지가 뜰꺼고 터미널에서는 다음과 같이 Success 로그가 뜰겁니다.
image


4-1. tailscale 연결 확인해보기

연결되어 있는 기기 목록은 Tailscale 콘솔 혹은 아래 커맨드를 사용하여 확인할 수 있어요.

tailscale status

image


5. 관리 콘솔에서 라우팅 활성화

기기 연결 승인만으로는 서브넷 라우터와 엑싯 노드가 활성화되지 않습니다.

관리자가 직접 승인해줘야 해요.


1. 다시 테일스케일 관리 콘솔 웹페이지로 돌아가 Machines 탭을 봅니다.


2. 방금 추가한 tailscale-gw 기기가 보일 겁니다. 기기 이름 옆의 ... 메뉴를 클릭하고 Edit route settings... 로 들어갑니다.

image


3. Subnet routes 와 Exit node 스위치를 모두 켜서 활성화합니다.

image


6. 다른 기기에 Tailscale 설치 및 연결해보기

이제 외부에서 사용할 스마트폰, 노트북 등에도 테일스케일을 설치할 차례입니다. 이 과정은 훨씬 간단합니다.


Tailscale 다운로드 페이지 에서 자신의 운영체제(Windows, macOS, Android, iOS 등)에 맞는 앱을 설치합니다.


앱을 실행하고 Step A에서 가입했던 동일한 계정으로 로그인하면 끄-읏!


✅ 마법을 경험할 시간!

이제 저의 모든 기기는 하나의 네트워크로 묶였습니다!

이제 외부에서도 안전하게 내 기기들을 관리하거나 홈서버 내부망의 기기들에 접근하여 작업을 마음껏 진행하시면 됩니다!

    Tag -

Loading script...