1인 회사 시스템 build

Tailscale로 흩어진 기기들을 하나의 네트워크로 묶기

집 서버, 사무실 맥, 안드로이드 폰을 Tailscale 사설망으로 묶는 절차를 정리합니다. 포트포워딩 없이 어디서든 100.x 주소로 접속하고, 다른 네트워크에 있는 폰에 무선 adb로 앱을 설치하는 방법까지 실측 기준으로 다룹니다.


혼자 일하는데 기계는 자꾸 늘어납니다. 집에는 서버로 쓰는 맥미니가 있고, 사무실에는 작업용 맥이 있고, 손에는 안드로이드 폰이 있습니다. 장소가 다르니 “그건 집 컴퓨터에 있는데”가 하루에도 몇 번씩 발목을 잡습니다.

이 문제를 Tailscale로 정리했습니다. 설치하고 로그인만 하면 내 기기들끼리만 통하는 사설 네트워크가 생기고, 그 뒤로는 어느 기기가 어디에 있든 옆방처럼 접속됩니다. 이 글은 그 절차와, 한 발 더 나가서 다른 네트워크에 있는 폰에 무선 adb로 앱을 설치하는 방법까지 정리합니다.

개념 먼저 · 내 기기들만의 전용 통로

Tailscale은 WireGuard 기반의 메시 VPN입니다. 어렵게 들리지만 쓰는 입장에서 체감은 단순합니다.

  • 각 기기에 앱을 설치하고 같은 계정으로 로그인하면 끝
  • 각 기기는 100.x.y.z 형태의 고정 사설 주소를 받음
  • 그 주소로는 어느 네트워크에 있든 서로 접속 가능 (집 와이파이, 사무실 랜, LTE 전부)
  • 이 통로는 내 계정의 기기들끼리만 보임

공유기 설정, 포트포워딩, DDNS 같은 건 하나도 필요 없습니다.

1단계 · 설치와 로그인

맥은 Homebrew나 App Store로 설치합니다.

brew install --cask tailscale
# 설치 후 Tailscale 앱 실행 → 브라우저 로그인

안드로이드 폰은 Play 스토어에서 Tailscale 앱을 설치하고 같은 계정으로 로그인합니다. 서버로 쓰는 기기도 방법은 같습니다.

전부 로그인했으면 아무 기기에서나 목록을 확인합니다.

tailscale status
# 100.101.x.x   home-server   ...
# 100.102.x.x   office-mac    ...
# 100.103.x.x   galaxy-phone  ...

여기 나오는 100.x 주소가 각 기기의 고정 주소입니다. 이제부터 ssh, 파일 복사, 원격 데스크톱 전부 이 주소로 하면 됩니다.

ssh user@100.101.x.x        # 밖에서 집 서버 접속
scp user@100.101.x.x:~/파일 .   # 집 기계의 파일 가져오기

2단계 · 다른 네트워크의 폰에 무선 adb 연결

여기부터가 이 구성의 재미있는 부분입니다. 안드로이드 개발을 하다 보면 폰과 컴퓨터가 다른 장소에 있을 때가 생기는데, USB는 당연히 안 되고 일반적인 무선 adb도 같은 와이파이를 전제합니다. Tailscale로 묶여 있으면 이 전제가 사라집니다.

폰에서 개발자 옵션 → 무선 디버깅을 켜고, “페어링 코드로 기기 페어링”을 누르면 포트와 6자리 코드가 뜹니다. 컴퓨터에서 폰의 Tailscale 주소로 페어링합니다.

adb pair 100.103.x.x:37123   # 화면에 뜬 페어링 포트
# Enter pairing code: 6자리 입력

페어링이 끝나면 무선 디버깅 화면에 표시된 연결 포트로 붙습니다.

adb connect 100.103.x.x:40001
adb devices    # 연결 확인
adb install app-debug.apk    # 앱 설치

이 상태면 scrcpy도 그대로 뜹니다. 폰이 어느 네트워크에 있든 컴퓨터에서 폰 화면을 띄우고 조작할 수 있습니다.

scrcpy   # 연결된 adb 기기 화면 미러링

한계도 적어두면, 무선 디버깅의 페어링·연결 포트는 토글할 때마다 바뀔 수 있어서 처음 한 번은 폰 화면을 봐야 합니다. 페어링은 기기당 한 번이고, 이후에는 connect만 다시 하면 됩니다.

보안 관점 · 문을 여는 게 아니라 통로를 까는 것

밖에서 집 기계에 접속하는 전통적인 방법은 공유기 포트포워딩입니다. 그런데 그건 인터넷 전체를 향해 문을 하나 내는 일입니다. 열린 포트는 스캐너에 잡히고, 그 순간부터 공격 시도의 대상이 됩니다.

Tailscale 방식은 반대입니다. 어느 기기도 포트를 열지 않고, 각자가 바깥으로 연결을 맺어 통로를 만듭니다. 외부에서 스캔하면 아무것도 없는 것과 같고, 통로 안은 내 계정으로 로그인한 기기들만 보입니다. 원격 접속을 열어놓고 사는 것치고는 마음이 편한 구조라, 서버를 집에 두고 쓰는 저 같은 경우에 특히 잘 맞습니다.

계정이 곧 열쇠이므로 계정 보안이 전부입니다. 2단계 인증은 켜두는 게 좋습니다.

정리

  • 설치 + 로그인 = 끝. 내 기기들끼리 고정 100.x 주소로 어디서든 접속
  • 포트포워딩·DDNS 불필요, 외부에 열리는 문 없음
  • 다른 네트워크의 폰에도 adb pairadb connect로 무선 연결, 앱 설치와 scrcpy까지
  • 개인 용도는 무료 범위로 충분

서버가 없어도 컴퓨터 두 대만 있으면 같은 구성을 그대로 만들 수 있습니다.


매주 월요일, 이런 과정을 뉴스레터로 정리해 보내고 있습니다. calmdev.kr에서 구독할 수 있습니다.

자주 묻는 질문

Tailscale은 무료인가요?

개인 용도는 무료 플랜으로 충분합니다. 이 글의 구성(서버 1대, 컴퓨터 1대, 폰 1대)은 전부 무료 범위 안에서 돌아갑니다. 계정 하나로 여러 기기를 묶는 개인 사용이 기본 제공 범위입니다.

일반 VPN과 뭐가 다른가요?

해외 IP로 우회하는 상용 VPN과 달리, Tailscale은 내 기기들끼리만 통하는 사설 통로를 만듭니다. 인터넷 트래픽 전체가 어디를 거쳐 가는 게 아니라, 내 기기로 향하는 연결만 이 통로를 탑니다. 목적이 "숨기"가 아니라 "내 기기 연결"입니다.

포트포워딩이나 DDNS와 비교하면 어떤가요?

포트포워딩은 공유기에 인터넷 전체를 향한 문을 여는 방식이라 스캔과 공격의 대상이 됩니다. Tailscale은 포트를 하나도 열지 않고 각 기기가 바깥으로 연결을 맺기 때문에, 외부에서 스캔하면 아무것도 보이지 않습니다. 주소도 고정 100.x라 DDNS 갱신 관리가 필요 없습니다.

#Tailscale#네트워크#자가호스팅#adb#1인 개발