NAS 구축기 5부 — Tailscale을 설치하니 해외에서도 내 NAS가 가까워졌다

4부에서는 Cloudflare Tunnel을 이용해 NAS에서 운영하는 웹서비스를 외부에 연결하는 과정을 정리했다.

그 작업을 하고 나니 한 가지가 더 궁금해졌다.

웹사이트처럼 인터넷에 공개해야 하는 서비스도 있지만,

반대로 나만 사용하는 서비스는 굳이 인터넷에 공개하지 않고 사용할 수 없을까?

특히 NAS에 저장된 파일이나 개인적으로 사용하는 서비스까지 모두 외부에 공개하는 방식은 썩 마음에 들지 않았다.

그때 사용하기 시작한 것이 Tailscale이었다.

이번에도 처음부터 Tailscale을 잘 알고 있었던 것은 아니다.

설치부터 설정, 문제 해결까지 대부분 AI의 도움을 받아 하나씩 만들어갔다.

nas tailscale

Tailscale을 선택한 이유

내가 원했던 것은 아주 단순했다.

집에 있는 NAS에 외부에서도 접속하고 싶었다.

그런데 단순히 NAS를 인터넷에 공개하는 방식보다는,

내가 사용하는 기기끼리 연결해서 어디서든 NAS에 접근할 수 있으면 좋겠다는 생각이 들었다.

그러다 Tailscale을 알게 됐다.

Tailscale을 이용하면 NAS와 내가 사용하는 기기를 하나의 네트워크처럼 연결할 수 있었다.

그래서

NAS
  │
  ├── 내 휴대폰
  │
  └── 내 노트북

처럼 내가 사용하는 기기들을 연결하는 방식으로 구성해보기로 했다.


설치는 생각보다 간단했다

내가 사용하는 Synology NAS에는 Tailscale 패키지를 설치했다.

시놀로지의 패키지 센터에서 Tailscale을 찾아 설치하고,

그 다음 계정을 연결했다.

복잡한 명령어를 직접 입력하는 방식이 아니라

NAS에 Tailscale 패키지를 설치하고 Google 계정으로 로그인

하는 방식으로 시작했다.

그리고 휴대폰에도 Tailscale을 설치하고,

노트북에도 Tailscale을 설치했다.

세 기기 모두 같은 Google 계정으로 로그인했다.

설정을 마치고 나니 NAS와 휴대폰, 노트북이 하나의 Tailscale 네트워크 안에서 연결됐다.

처음에는 이게 꽤 신기했다.

집 안에 있는 NAS와 내 손에 있는 휴대폰이

인터넷을 사이에 두고도 서로 연결될 수 있었기 때문이다.


집 밖에서 NAS에 접속할 수 있게 됐다

이전에는 집 밖에서 NAS에 접속하려면 외부 공개를 위한 별도의 연결 방법이 필요했다.

그런데 Tailscale을 설치하고 나니 상황이 달라졌다.

휴대폰에서 Tailscale을 켜면 NAS에 연결할 수 있었다.

노트북에서도 마찬가지였다.

집에서든,

회사에서든,

다른 장소에서든,

심지어 해외에 있더라도

Tailscale이 연결되어 있으면 NAS에 접근할 수 있었다.

이 부분이 내가 Tailscale을 사용하면서 가장 만족스러웠던 점이다.


처음에는 NAS를 Exit Node로 사용했다

그런데 Tailscale에는 여러 기능이 있었다.

그중에서 처음 사용해본 것이 Exit Node였다.

NAS 자체를 Exit Node로 지정하면 인터넷 트래픽까지 NAS를 통해 나가도록 구성할 수 있었다.

처음에는 이것이 상당히 좋아 보였다.

“밖에서 접속했을 때 인터넷까지 집에 있는 NAS를 통해 나가면 되겠네.”

그래서 NAS를 Exit Node로 설정해봤다.

그런데 실제로 사용해보니 문제가 하나 있었다.

속도가 많이 느려졌다.


왜 느려졌는지 직접 사용하면서 알게 됐다

처음에는 Tailscale 자체가 느린 것인가 생각했다.

그런데 상황을 조금 다르게 생각해보니 이유를 알 수 있었다.

Exit Node를 NAS로 지정하면 인터넷 트래픽이 NAS를 거쳐서 나가게 된다.

즉,

내 휴대폰
    ↓
Tailscale
    ↓
NAS
    ↓
인터넷

이런 경로가 된다.

원래라면 내가 사용하는 장소의 네트워크에서 바로 인터넷으로 나가면 되는데,

Exit Node를 사용하면 NAS를 한 번 거쳐야 했다.

결국 내가 있는 곳과 NAS가 있는 곳 사이를 거쳐 인터넷에 다시 나가야 하니 속도가 느려졌다.

직접 써보지 않았다면 쉽게 이해하지 못했을 부분이었다.


그래서 Exit Node를 사용하지 않기로 했다

결국 Exit Node 설정을 기본값인 None으로 돌렸다.

내 목적은 모든 인터넷 트래픽을 집으로 보내는 것이 아니었다.

NAS와 내 기기를 연결하는 것이 목적이었다.

그래서 굳이 인터넷 전체를 NAS로 우회시킬 필요가 없었다.

설정을 None으로 바꾸고 다시 사용해보니 훨씬 편했다.

필요할 때 Tailscale을 통해 NAS에 접근하면서도,

일반적인 인터넷 사용은 내가 있는 장소의 네트워크를 그대로 사용할 수 있었다.

현재도 이 방식으로 사용하고 있다.


이때부터 Tailscale의 역할이 명확해졌다

내가 사용하면서 정리한 Tailscale의 역할은 아주 간단했다.

NAS 자체에 접근하기 위한 개인 네트워크였다.

인터넷에 공개해야 하는 웹사이트는 Cloudflare Tunnel을 사용하고,

내가 직접 접근하면 되는 NAS와 서비스는 Tailscale을 사용한다.

구조가 이렇게 나뉘었다.

인터넷 사용자
      │
      ▼
Cloudflare
      │
      ▼
Cloudflare Tunnel
      │
      └── 공개 서비스


내 휴대폰 / 노트북
          │
          ▼
       Tailscale
          │
          ▼
          NAS
          │
          └── 개인 서비스

이렇게 나누고 나니 서비스의 성격에 따라 접근 방식을 선택할 수 있게 됐다.


해외에서도 실제로 사용해봤다

Tailscale의 장점은 결국 직접 사용해봐야 알 수 있었다.

집을 벗어나 다른 장소에서 NAS에 접근해보고,

휴대폰으로 연결해보고,

노트북으로도 연결해봤다.

그리고 해외에서도 같은 방식으로 사용할 수 있었다.

인터넷 환경만 정상적이고 Tailscale이 연결되어 있으면

내 NAS가 멀리 있는 서버가 아니라

내가 사용하는 네트워크 안에 있는 장비처럼 느껴졌다.

이게 상당히 편했다.


NAS가 있는 장소와 내가 있는 장소가 중요하지 않게 됐다

예전에는

“집에 있어야 NAS를 제대로 사용할 수 있다.”

라는 느낌이 있었다.

그런데 Tailscale을 사용하고 나서는 생각이 조금 달라졌다.

내 휴대폰과 노트북에 Tailscale이 설치되어 있고,

NAS에도 Tailscale이 연결되어 있으면

내가 어디에 있는지는 크게 중요하지 않았다.

집이 아니어도 되고,

다른 지역이어도 되고,

해외에서도 같은 방법으로 NAS에 접근할 수 있었다.

물론 인터넷 연결 상태의 영향을 받지만,

사용하는 방식 자체는 상당히 단순했다.


그리고 AdGuard DNS까지 연결해봤다

Tailscale을 사용하다 보니 또 하나 욕심이 생겼다.

단순히 NAS에 접속하는 것에서 끝내지 않고,

DNS 환경도 조금 더 정리해보고 싶었다.

그래서 Tailscale의 DNS 설정을 살펴봤다.

여기에서 Global nameservers라는 설정을 알게 됐다.

여기에 AdGuard DNS 서버 주소를 넣어 사용하도록 구성했다.

내가 사용한 설정은 AdGuard의 DNS 주소를 글로벌 네임서버로 지정하는 방식이었다.

처음에는 단순히 주소를 입력하면 끝날 줄 알았다.

그런데 실제로 적용하는 과정에서는 설정이 제대로 적용되는지 하나씩 확인해야 했다.


Tailscale DNS 설정을 직접 수정했다

Tailscale의 DNS 설정에서 글로벌 네임서버를 지정하고,

AdGuard DNS 주소를 입력했다.

그리고 DNS 설정이 제대로 동작하는지 확인했다.

기본 DNS와 Tailscale DNS가 어떻게 연결되는지 확인하고,

필요한 설정을 하나씩 수정했다.

처음부터 한 번에 완성된 것은 아니었다.

몇 번의 시행착오가 있었다.

설정을 바꿔보고,

연결 상태를 확인하고,

다시 수정하고,

정상적으로 동작하는지 테스트했다.

결국 원하는 형태로 구성할 수 있었다.


DNS까지 연결하고 나니 사용 환경이 조금 더 좋아졌다

Tailscale의 목적은 NAS 접근이었지만,

DNS까지 함께 구성하면서 네트워크 사용 환경 자체도 조금 정리됐다.

결국 내가 사용하는 환경에서는

휴대폰
노트북
   │
   ▼
Tailscale
   │
   ├── NAS 접근
   │
   └── DNS 설정
           │
           ▼
       AdGuard DNS

형태로 연결해서 사용하게 됐다.

처음에는 단순히 NAS에 접속하기 위해 설치했던 Tailscale이었는데,

나중에는 DNS 설정까지 함께 사용하게 된 것이다.


이 과정에서도 가장 큰 도움을 받은 것은 AI였다

사실 Tailscale을 처음부터 이렇게 구성할 수 있었던 것은 아니다.

Tailscale이라는 이름 정도는 알았지만,

어떻게 설치하는지,

Synology에서는 어떻게 사용하는지,

Exit Node는 무엇인지,

왜 속도가 느려지는지,

DNS 설정은 어디에서 하는지,

Global nameserver는 어떻게 사용하는지 모두 처음에는 낯설었다.

그때마다 AI에게 물어봤다.

설정 화면을 보여주고,

현재 상황을 설명하고,

속도가 느리다고 이야기하고,

어떤 설정을 바꿨는지 다시 알려줬다.

그러면 지금 상태에서 무엇을 확인해야 하는지 하나씩 찾아갈 수 있었다.

특히 Exit Node를 사용했을 때 속도가 느려졌던 문제도

현재 네트워크 구조를 하나씩 확인하면서 원인을 이해하게 됐다.


AI 덕분에 ‘일단 설치해보자’가 가능해졌다

Docker를 시작할 때도 비슷했지만,

Tailscale 역시 같은 경험이었다.

예전 같았으면

Tailscale이라는 기술을 먼저 공부하고,

VPN이 무엇인지 이해하고,

Exit Node와 Subnet Router 같은 개념도 찾아보고,

DNS 설정 방법까지 공부한 다음 설치했을 것이다.

그러다 보면 시작 자체가 늦어진다.

하지만 지금은 일단 설치해보고,

내 환경에서 실제로 사용해보면서

모르는 부분을 AI에게 바로 물어볼 수 있다.

그래서 이번에도

설치 → 테스트 → 문제 발생 → 질문 → 수정 → 재테스트

과정을 반복하면서 결국 지금 사용하는 환경을 만들었다.


직접 써보면서 알게 된 것은 기능보다 ‘용도’였다

Tailscale에는 여러 기능이 있다.

하지만 내가 모든 기능을 사용할 필요는 없었다.

처음에는 Exit Node까지 사용해봤지만,

내 환경에서는 오히려 불필요했다.

내가 필요했던 것은

언제 어디서든 내가 사용하는 기기에서 NAS에 접근하는 것

이었다.

그래서 지금은 Exit Node를 사용하지 않고,

기본적인 Tailscale 연결만 사용하고 있다.

이렇게 직접 사용해보고 나니

기능이 많다고 모두 사용하는 것이 좋은 것은 아니라는 것도 알게 됐다.


Cloudflare Tunnel과 Tailscale을 같이 사용하니 더 명확해졌다

NAS를 운영하면서 처음에는 모든 외부 접근을 하나의 방법으로 해결하려고 했다.

그런데 지금은 서비스에 따라 방법을 나누고 있다.

                 NAS
                  │
         ┌────────┴────────┐
         │                 │
         ▼                 ▼
 Cloudflare Tunnel      Tailscale
         │                 │
         ▼                 ▼
   공개가 필요한        내가 사용하는
      서비스               서비스
         │                 │
   ├─ WordPress        └─ NAS
   ├─ WordPress2          └─ 개인 서비스
   └─ Vaultwarden

이렇게 구분하니 내가 무엇을 어디에서 접속해야 하는지도 훨씬 명확해졌다.


내가 만든 VPN망에서 NAS를 사용하는 느낌

처음에는 Tailscale을 그냥 VPN 프로그램이라고 생각했다.

그런데 실제로 여러 기기를 연결해보니 조금 다르게 느껴졌다.

NAS와 내 노트북,

NAS와 내 휴대폰이 하나의 네트워크 안에 있는 것처럼 연결된다.

그래서 집 밖에서도 NAS에 접근할 때

“인터넷을 통해 내 집의 NAS로 들어간다.”

라는 느낌보다는

“내가 만든 작은 네트워크에 들어간다.”

는 느낌에 가까웠다.

이것이 Tailscale을 사용하면서 가장 재미있었던 부분이다.


지금도 처음 만든 구조 그대로 잘 사용하고 있다

몇 번의 시행착오를 거친 뒤 현재는 꽤 단순하게 사용하고 있다.

NAS에는 Tailscale을 설치하고,

휴대폰과 노트북에도 Tailscale을 설치한다.

세 기기는 같은 Google 계정으로 연결되어 있다.

Exit Node는 사용하지 않는다.

DNS는 Tailscale의 글로벌 네임서버 설정을 통해 AdGuard DNS를 사용한다.

그리고 필요한 순간 Tailscale을 켜고 NAS와 서비스에 접속한다.

처음에는 설정이 복잡해 보였지만,

한번 완성하고 나니 오히려 사용 방법은 단순했다.


Tailscale을 사용하면서 NAS의 활용 범위가 넓어졌다

이제 NAS가 단순히 집 안에 있는 서버라는 느낌이 많이 줄었다.

내 휴대폰에서 접근할 수 있고,

노트북에서도 접근할 수 있고,

집 밖에서도 사용할 수 있다.

해외에서도 같은 방식으로 접속할 수 있다.

무엇보다 모든 인터넷 사용자에게 서비스를 공개할 필요 없이

내가 사용하는 기기만 NAS에 연결할 수 있다는 점

이 편리했다.


결국 처음부터 완벽하게 구성한 것은 아니었다

돌이켜보면 Tailscale도 한 번에 완성된 것이 아니다.

처음 설치하고,

기기를 연결하고,

Exit Node를 사용해보고,

속도가 느려지는 것을 경험하고,

Exit Node를 None으로 변경하고,

DNS도 설정하고,

몇 번의 시행착오를 거쳐 지금의 환경이 됐다.

그리고 그 모든 과정을 통해

내가 실제로 필요한 기능과 필요하지 않은 기능을 구분하게 됐다.


NAS를 운영하면서 이제는 ‘연결 방법’도 서비스마다 다르게 생각하게 됐다

처음 NAS를 구축했을 때는

모든 서비스를 밖에서 사용할 수 있게 만드는 것이 목표였다.

그러다 Cloudflare Tunnel을 알게 됐고,

이번에는 Tailscale을 사용하게 됐다.

지금은 서비스의 성격에 따라 접근 방법을 나눈다.

인터넷에 공개해야 하는 서비스는 Cloudflare를 통해 연결하고,

내가 사용하는 서비스는 Tailscale로 연결한다.

이렇게 하나씩 정리해보니

NAS의 네트워크 구조가 처음보다 훨씬 명확해졌다.


다음에는 NAS의 DNS를 직접 관리해보기로 했다

Tailscale을 구성하면서 DNS까지 손대게 되니 자연스럽게 다음 관심사가 생겼다.

바로 AdGuard Home이었다.

이미 NAS에서 여러 서비스를 돌리고 있는데,

DNS까지 직접 관리하면 어떨까 하는 생각이 들었다.

실제로 AdGuard Home을 설치하고 나니

집 안의 DNS 요청이 어떻게 움직이는지 직접 확인할 수 있었고,

Tailscale과도 연결해볼 수 있었다.

처음에는 단순히 광고를 차단하는 프로그램 정도라고 생각했다.

그런데 직접 사용해보니 생각보다 훨씬 많은 역할을 하고 있었다.

다음 글에서는 NAS에 AdGuard Home을 설치하고 DNS를 직접 관리하게 된 과정을 기록해보려고 한다.

NAS에 서비스를 하나씩 추가할수록

저장장치였던 NAS가 점점 내 손으로 만든 하나의 작은 네트워크로 변해가고 있었다.