VPN 설정¶
Vaultwarden, n8n UI, AI API 등 내부 서비스는 Headscale(Tailscale 호환) VPN을 통해 접근합니다. Nextcloud와 Upterm relay는 VPN 없이도 접근할 수 있습니다.
1. Tailscale 설치¶
tailscale.com/download에서 OS에 맞는 클라이언트를 설치합니다.
Windows¶
- tailscale.com/download/windows에서 설치 파일을 다운로드합니다
- 설치를 완료하면 시스템 트레이에 Tailscale 아이콘이 나타납니다
macOS¶
- App Store에서 "Tailscale"을 검색하여 설치합니다
- 메뉴바에서 Tailscale 아이콘이 나타납니다
iOS¶
- App Store에서 "Tailscale"을 설치합니다
- 앱을 실행합니다
Android¶
- Google Play에서 "Tailscale"을 설치합니다
- 앱을 실행합니다
Linux¶
# Debian/Ubuntu
curl -fsSL https://tailscale.com/install.sh | sh
# Nix 사용자
nix run nixpkgs#tailscale -- up --login-server https://hs.sjanglab.org
2. 기기 이름 확인¶
Headscale은 VPN 기기 이름을 DNS 이름으로도 사용하므로 영문 소문자, 숫자, 하이픈만 사용해야 합니다.
| 좋은 예 | 피해야 할 예 |
|---|---|
lab-imac, researcher-macbook, student-laptop |
내 노트북, lab pc, lab_pc, 노트북 |
한글, 공백, 밑줄, 특수문자가 포함된 이름으로 등록하면 Headscale에서 invalid-xxxxxx 같은 임시 이름으로 표시될 수 있습니다.
CLI를 사용할 수 있으면 로그인 시 이름을 직접 지정할 수 있습니다:
tailscale up --login-server https://hs.sjanglab.org --hostname lab-imac
이미 등록 후 invalid-* 이름이 보이면 관리자에게 수정 요청을 보내세요.
3. VPN 연결¶
Tailscale의 기본 서버 대신 SBEE Lab의 Headscale 서버(https://hs.sjanglab.org)에 연결해야 합니다.
Windows¶
PowerShell 또는 명령 프롬프트에서 Headscale 서버를 지정해 연결합니다. 기기 이름을 함께 고정하려면 --hostname을 붙입니다:
tailscale up --login-server https://hs.sjanglab.org --hostname lab-imac
명령을 찾을 수 없으면 설치 경로의 tailscale.exe를 직접 실행합니다:
& "$env:ProgramFiles\Tailscale\tailscale.exe" up --login-server https://hs.sjanglab.org --hostname lab-imac
관리자가 정책으로 로그인 서버를 고정해야 하는 경우 PowerShell(관리자)에서 설정합니다:
reg add "HKLM\SOFTWARE\Policies\Tailscale" /v LoginURL /t REG_SZ /d "https://hs.sjanglab.org" /f
net stop Tailscale & net start Tailscale
macOS / Linux (CLI)¶
tailscale up --login-server https://hs.sjanglab.org --hostname lab-imac
lab-imac은 예시입니다. 실제 기기에 맞는 DNS-safe 이름으로 바꿔 사용하세요.
iOS¶
- 로그인 화면에서 우측 상단 ⋮ (점 세 개) 메뉴를 탭합니다
- Change server를 선택합니다
- 서버 URL에
https://hs.sjanglab.org을 입력합니다 - Continue를 탭합니다
Android¶
- 로그인 화면에서 우측 상단 ⋮ (점 세 개) 메뉴를 탭합니다
- Use an alternate server를 선택합니다
- 서버 URL에
https://hs.sjanglab.org을 입력합니다 - Log in을 탭합니다
브라우저가 열리면 Authentik으로 로그인합니다. 소속 그룹(sjanglab-admins, sjanglab-researchers, sjanglab-students)에 따라 접근 권한이 자동으로 결정됩니다.
4. 연결 확인¶
tailscale status
정상 연결 시 100.64.x.x 대역의 IP가 할당됩니다.
Windows에서는 시스템 트레이의 Tailscale 아이콘이 Connected 상태로 표시됩니다.
네트워크 구조¶
VPN 연결 후 Magic DNS로 내부 서비스에 접근할 수 있습니다. Nextcloud는 VPN 연결 시 tau로 직접 연결하고, VPN이 없으면 eta public edge를 경유합니다.
flowchart LR
user["사용자<br/>Tailscale VPN"] --> hs["Headscale<br/>hs.sjanglab.org"]
hs --> psi["psi (100.64.0.1)<br/>Docling · TEI · MULTI-evolve"]
hs --> tau["tau (100.64.0.3)<br/>Nextcloud · n8n · Vaultwarden"]
internet["VPN 없는 사용자"] --> eta_edge["eta public edge<br/>Nextcloud"]
eta_edge --> tau
internet --> upterm["eta<br/>Upterm relay"]
| 도메인 | 내부 IP | 호스트 | 서비스 |
|---|---|---|---|
cloud.sjanglab.org |
100.64.0.3 | tau | Nextcloud |
vault.sjanglab.org |
100.64.0.3 | tau | Vaultwarden |
n8n.sjanglab.org |
100.64.0.3 | tau | n8n |
docling.sjanglab.org |
100.64.0.1 | psi | Docling |
tei.sjanglab.org |
100.64.0.1 | psi | TEI |
multievolve.sjanglab.org |
100.64.0.1 | psi | MULTI-evolve |
upterm.sjanglab.org |
141.164.53.203 | eta | Upterm relay |
접근 권한 (ACL)¶
| 그룹 | 접근 가능 서비스 |
|---|---|
sjanglab-admins |
AI 서비스 + 앱 + 모니터링 |
sjanglab-researchers |
AI 서비스 + 앱 |
sjanglab-students |
앱만 (Nextcloud, Vaultwarden) |
다음 단계: 첫 로그인