Alert

์ด ๊ธ€์€ Claude Code์˜ ๋„์›€์„ ๋ฐ›์•„ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค

TL;DR

  • Rustdesk๋Š” TeamViewer ๋Œ€์•ˆ์ธ ์˜คํ”ˆ์†Œ์Šค ์›๊ฒฉ ๋ฐ์Šคํฌํ†ฑ. WindowsยทmacOSยทLinux ๋ชจ๋‘ ์ง€์›
  • ์ผ๋ฐ˜์ ์œผ๋กœ NAT๋ฅผ ๋„˜๊ธฐ ์œ„ํ•ด ์ž์ฒด relay ์„œ๋ฒ„๋ฅผ VPS์— ๋„์›Œ์•ผ ํ•จ
  • Tailscale์„ ์—ฐ๊ฒฐ ํŒจ๋ธŒ๋ฆญ์œผ๋กœ ์“ฐ๋ฉด ๋…ธ๋“œ๋ผ๋ฆฌ ์ง์ ‘ ์—ฐ๊ฒฐ๋˜์–ด relay ์„œ๋ฒ„๊ฐ€ ํ•„์š” ์—†์Œ
  • ์„ค์ • ํ•ต์‹ฌ์€ permanent password ์ง€์ • + enable direct IP access ์ฒดํฌ
  • tailnet IP๋ฅผ ์ž…๋ ฅํ•ด ์ ‘์†ํ•˜๋ฉฐ, Magic DNS ์ด๋ฆ„์€ ์ธ์‹ํ•˜์ง€ ๋ชปํ•จ

Source


1. ๋ฐฐ๊ฒฝ - ์›๊ฒฉ ๋ฐ์Šคํฌํ†ฑ๊ณผ NAT ๋ฌธ์ œ

์›๊ฒฉ ๋ฐ์Šคํฌํ†ฑ์ด๋ž€

์›๊ฒฉ ๋ฐ์Šคํฌํ†ฑ์€ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์˜ ํ™”๋ฉด์„ ๋‚ด ์ปดํ“จํ„ฐ๋กœ ๊ฐ€์ ธ์™€ ๋งˆ์น˜ ๊ทธ ์•ž์— ์•‰์€ ๊ฒƒ์ฒ˜๋Ÿผ ์กฐ์ž‘ํ•˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค. ๊ฐ€์กฑ PC ๊ธฐ์ˆ  ์ง€์›์ด๋‚˜ ์™ธ๋ถ€์—์„œ ์ง‘ยทํšŒ์‚ฌ PC์— ์ ‘์†ํ•  ๋•Œ ์“ด๋‹ค. ๋Œ€ํ‘œ ๋„๊ตฌ๊ฐ€ TeamViewer๋‹ค.

๊ทธ๋Ÿฐ๋ฐ TeamViewer๋Š” ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉฐ โ€œ์‚ฌ์—…์šฉ์œผ๋กœ ์“ฐ๋Š” ๊ฒƒ ์•„๋‹ˆ๋ƒโ€๋Š” ํŒ์—…์ด ์žฆ์•„์กŒ๋‹ค. ๊ทธ๋ ‡๋‹ค๊ณ  OS ๊ธฐ๋ณธ ๋„๊ตฌ(Microsoft ์›๊ฒฉ ๋ฐ์Šคํฌํ†ฑ, Apple ํ™”๋ฉด ๊ณต์œ  VNC)๋ฅผ ์“ฐ์ž๋‹ˆ ๋ฐฉํ™”๋ฒฝ์„ ๋„˜๋Š” ์ผ์ด ๋ฒˆ๊ฑฐ๋กญ๋‹ค. ์ฝ”๋“œ๋งŒ ์ž…๋ ฅํ•˜๋ฉด ์—ฐ๊ฒฐ๋˜๋Š” ํŽธ์˜์„ฑ๋„ ์—†์–ด์„œ ํฌํŠธ ํฌ์›Œ๋”ฉ ๊ฐ™์€ ์„ค์ •์„ ์ง์ ‘ ํ•ด์•ผ ํ•œ๋‹ค.

NAT ํ†ต๊ณผ(NAT traversal)๊ฐ€ ์–ด๋ ค์šด ์ด์œ 

๋Œ€๋ถ€๋ถ„์˜ ๊ฐ€์ •ยทํšŒ์‚ฌ ๋„คํŠธ์›Œํฌ๋Š” ์‚ฌ์„ค IP ๋’ค์— ์žˆ๊ณ  ๋ฐฉํ™”๋ฒฝ์œผ๋กœ ๋ณดํ˜ธ๋œ๋‹ค. ์™ธ๋ถ€์—์„œ ๋‚ด PC๋กœ ์ง์ ‘ ๋“ค์–ด์˜ค๋ ค๋ฉด,

  • ๋ฐฉํ™”๋ฒฝ์— ํฌํŠธ๋ฅผ ์—ด์–ด์•ผ ํ•˜๋Š”๋ฐ, ์›๊ฒฉ ์ œ์–ด ํฌํŠธ๋ฅผ ์—ฌ๋Š” ๊ฑด ํฐ ๋ณด์•ˆ ๊ตฌ๋ฉ์ด๊ณ ,
  • ์•„๋‹ˆ๋ฉด ์ค‘๊ฐ„์—์„œ ์–‘์ชฝ ํŠธ๋ž˜ํ”ฝ์„ ์ค‘๊ณ„ํ•˜๋Š” relay ์„œ๋ฒ„๋ฅผ ๋‘ฌ์•ผ ํ•œ๋‹ค.

๊ฒฐ๊ตญ ์ด NAT ํ†ต๊ณผ๋ฅผ ๋ˆ„๊ฐ€ ๋Œ€์‹  ์ฒ˜๋ฆฌํ•ด ์ฃผ๋А๋ƒ์— ๋”ฐ๋ผ ์›๊ฒฉ ๋ฐ์Šคํฌํ†ฑ ๋„๊ตฌ์˜ ํŽธ์˜์„ฑ์ด ๊ฐˆ๋ฆฐ๋‹ค.


2. Rustdesk๋ž€

Rustdesk๋Š” ๋Œ€๋ถ€๋ถ„ ๋ฌด๋ฃŒ๋กœ ์“ธ ์ˆ˜ ์žˆ๋Š” ์˜คํ”ˆ์†Œ์Šค TeamViewer ๋Œ€์•ˆ์ด๋‹ค. ๋“ฑ์žฅํ•œ ์ง€ ๊ฝค ๋์ง€๋งŒ, ์ž์ฒด ํ˜ธ์ŠคํŒ… ์„œ๋ฒ„๋กœ ์›๊ฒฉ ๋ฐ์Šคํฌํ†ฑ์„ ์ง์ ‘ ์šด์˜ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด ํ•ต์‹ฌ์ด๋‹ค.

  • Windows, macOS, Linux ์„ธ ์šด์˜์ฒด์ œ์— ๋ชจ๋‘ ์ ‘์† ๊ฐ€๋Šฅ (๋‹จ์ผ ํด๋ผ์ด์–ธํŠธ์—์„œ)
  • ์Šค์ผ€์ผ๋ง, ์ฝ”๋ฑ ๋ณ€๊ฒฝ, ์ด๋ฏธ์ง€ ํ’ˆ์งˆ ์กฐ์ •, ๋ณต์‚ฌยท๋ถ™์—ฌ๋„ฃ๊ธฐ ์ง€์›
  • VNC๋„ ๋น„์Šทํ•œ ์ผ์„ ํ•ด์™”์ง€๋งŒ, Rustdesk๋Š” ํด๋ผ์ด์–ธํŠธยท์„œ๋ฒ„ ์„ค์ •์—์„œ ๋ฒˆ๊ฑฐ๋กœ์šด ๋ถ€๋ถ„์„ ์•Œ์•„์„œ ์ฒ˜๋ฆฌํ•ด ์ค€๋‹ค

๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•์„ ๋”ฐ๋ฅด๋ฉด Rustdesk ์—ญ์‹œ NAT๋ฅผ ๋„˜์œผ๋ ค๊ณ  ์ž์ฒด relay ์„œ๋ฒ„๋ฅผ VPS์— ๋„์šฐ๋ผ๊ณ  ์•ˆ๋‚ดํ•œ๋‹ค. ๋ฆฌ์†Œ์Šค๋Š” ์ ๊ฒŒ ๋จน์ง€๋งŒ, ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ์ด ํด๋ผ์šฐ๋“œ์˜ relay ๋…ธ๋“œ๋ฅผ ๊ฑฐ์ณ ๋“ค์–ด๊ฐ”๋‹ค ๋‚˜์˜ค๋Š”(hairpinning) ๊ตฌ์กฐ๋ผ ๊ทธ๋ฆฌ ๊น”๋”ํ•˜์ง„ ์•Š๋‹ค.


3. Tailscale๊ณผ ๊ฒฐํ•ฉํ•˜๋ฉด relay๊ฐ€ ์‚ฌ๋ผ์ง„๋‹ค

Tailscale์€ WireGuard ๊ธฐ๋ฐ˜ ๋ฉ”์‹œ VPN์ด๊ณ , NAT ํ†ต๊ณผ์•ผ๋ง๋กœ ๊ฐ€์žฅ ์ž˜ํ•˜๋Š” ์ผ์ด๋‹ค. ๋…ธ๋“œ๋ผ๋ฆฌ ์ง์ ‘(P2P) ์—ฐ๊ฒฐ๋˜๋ฉฐ ์ข…๋‹จ ๊ฐ„ ์•”ํ˜ธํ™”๋œ WireGuard ํ„ฐ๋„๋กœ ํ†ต์‹ ํ•œ๋‹ค.

๋”ฐ๋ผ์„œ ์ ‘์†ํ•˜๋ ค๋Š” ๋ชจ๋“  ์žฅ๋น„๊ฐ€ ๊ฐ™์€ tailnet์˜ ๋…ธ๋“œ๋ผ๋ฉด,

  • Rustdesk relay ์„œ๋ฒ„๋ฅผ ๋”ฐ๋กœ ๋„์šธ ํ•„์š”๊ฐ€ ์—†๋‹ค.
  • tailnet IP๋งŒ ์ž…๋ ฅํ•˜๋ฉด OS์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ์–ด๋–ค Rustdesk ๋…ธ๋“œ์—๋„ ์—ฐ๊ฒฐ๋œ๋‹ค.
  • Rustdesk๋Š” Tailscale์ด ๋งŒ๋“  ์˜ค๋ฒ„๋ ˆ์ด ๋„คํŠธ์›Œํฌ ์œ„์— ์–นํ˜€ ๋™์ž‘ํ•˜๋Š” ๋ ˆ์ด์–ด๊ฐ€ ๋œ๋‹ค.

relay vs ์ง์ ‘ ์—ฐ๊ฒฐ

์ผ๋ฐ˜ Rustdesk๋Š” ํด๋ผ์šฐ๋“œ relay ๋…ธ๋“œ๋ฅผ ๊ฒฝ์œ (hairpinning)ํ•œ๋‹ค. Tailscale์„ ์“ฐ๋ฉด ๋…ธ๋“œ ๊ฐ„ ์ง์ ‘ ํ„ฐ๋„์ด ์ƒ๊ฒจ ์ง€์—ฐ์ด ์ค„๊ณ , ๋ณ„๋„ ์„œ๋ฒ„ ์šด์˜ ๋ถ€๋‹ด์ด ์—†๋‹ค. ๋ฉ”์‹œ ๋„คํŠธ์›Œํฌ์˜ ์ด์ ์€ Headscale - Tailscale ๋Œ€์•ˆ ์˜คํ”ˆ์†Œ์Šค ๋ฉ”์‹œ VPN์—์„œ ๋” ์ž์„ธํžˆ ๋‹ค๋ฃฌ๋‹ค.

์„ฑ๋Šฅ ์ฐธ๊ณ 

์˜์ƒ์—์„œ๋Š” Factorio ๊ฒŒ์ž„์„ ์›๊ฒฉ์œผ๋กœ ๋Œ๋ ค ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์ค€๋‹ค. H.265 ์ฝ”๋ฑ์— ์•ฝ 8Mbps, 30fps ์ˆ˜์ค€์ธ๋ฐ, ์•ฝ๊ฐ„์˜ ์ง€์—ฐ์€ ์žˆ์–ด๋„ ์˜์ƒ ์‹œ์ฒญ์ด๋‚˜ ์ผ๋ฐ˜ ์ž‘์—…์—๋Š” ์ถฉ๋ถ„ํ•˜๋‹ค. (๊ฒŒ์ด๋ฐ์ด ๋ชฉ์ ์ด๋ผ๋ฉด SunshineยทMoonlightยทParsec ๊ฐ™์€ ์ „์šฉ ๋„๊ตฌ๊ฐ€ ๋” ๋‚ซ๋‹ค.)


4. ์„ค์ • ๋ฐฉ๋ฒ•

๊ฐ ๋…ธ๋“œ์— Tailscale ํด๋ผ์ด์–ธํŠธ๋ฅผ ์„ค์น˜ํ•ด tailnet์— ํ•ฉ๋ฅ˜์‹œํ‚จ ๋’ค, Rustdesk๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์•„๋ž˜ ๋‘ ๊ฐ€์ง€๋ฅผ ์„ค์ •ํ•œ๋‹ค.

1) ์˜๊ตฌ ๋น„๋ฐ€๋ฒˆํ˜ธ ์„ค์ •

Rustdesk ํด๋ผ์ด์–ธํŠธ์—์„œ ID ์˜† ์  ์„ธ ๊ฐœ ๋ฉ”๋‰ด โ†’ Security โ†’ Unlock security settings โ†’ ์•„๋ž˜๋กœ ์Šคํฌ๋กคํ•ด Use permanent password๋ฅผ ์ผœ๊ณ  ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ง€์ •ํ•œ๋‹ค. ๋งค๋ฒˆ ์ผํšŒ์šฉ ์ฝ”๋“œ๋ฅผ ๋ฐ›์ง€ ์•Š๊ณ  ๋ฌด์ธ ์ ‘์†(unattended)์„ ํ•˜๋ ค๋Š” ๊ฒƒ์ด๋‹ค.

2) ์ง์ ‘ IP ์ ‘๊ทผ ํ—ˆ์šฉ

๊ฐ™์€ ๋ณด์•ˆ ์„ค์ •์—์„œ Enable direct IP access ์ฒดํฌ๋ฐ•์Šค๋ฅผ ๋ฐ˜๋“œ์‹œ ์ผ ๋‹ค. ์ด๊ฑธ ์ผœ์•ผ ์ƒ๋Œ€๋ฐฉ IDยท๋น„๋ฐ€๋ฒˆํ˜ธ ๋Œ€์‹  tailnet IP ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•ด ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ ‘์† ๋ฐ•์Šค์— ์ž…๋ ฅ: <์›๊ฒฉ ๋…ธ๋“œ์˜ Tailscale IP>

Magic DNS ์ด๋ฆ„์€ ์•ˆ ๋จ

Rustdesk ํด๋ผ์ด์–ธํŠธ๋Š” Tailscale์˜ Magic DNS ์ด๋ฆ„(์˜ˆ: ubu-test)์„ ์ธ์‹ํ•˜์ง€ ๋ชปํ•œ๋‹ค. ์ด๋ฆ„์„ ๋„ฃ์œผ๋ฉด โ€œID does not existโ€๊ฐ€ ๋œฌ๋‹ค. ๋ฐ˜๋“œ์‹œ ์‹ค์ œ IP ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•ด์•ผ ์ •์ƒ ๋™์ž‘ํ•œ๋‹ค. (Magic DNS ์ž์ฒด์— ๋Œ€ํ•œ ์„ค๋ช…์€ Headscale - Tailscale ๋Œ€์•ˆ ์˜คํ”ˆ์†Œ์Šค ๋ฉ”์‹œ VPN ์ฐธ๊ณ )


5. ์™œ ์œ ์šฉํ•œ๊ฐ€ - ์–ด๋””์„œ๋“  ์ ‘์†

์ง„์งœ ์žฅ์ ์€ ๋ฐ–์— ๋‚˜๊ฐ€ ๋ด์•ผ ๋“œ๋Ÿฌ๋‚œ๋‹ค. ๋…ธํŠธ๋ถ์„ ์ง‘ ๋ฐ–์œผ๋กœ ๋“ค๊ณ  ๋‚˜๊ฐ€๋„,

  • ๋ฐฉํ™”๋ฒฝ ํฌํŠธ๋ฅผ ์—ด ํ•„์š” ์—†๊ณ ,
  • ๊ณต๊ฐœ relay ์„œ๋ฒ„๋ฅผ ์šด์˜ํ•  ํ•„์š”๋„ ์—†๋‹ค.

์นดํŽ˜์—์„œ 5G๋กœ ๊ณต์šฉ ์ธํ„ฐ๋„ท์— ๋ถ™์œผ๋ฉด ๊ทธ ๋…ธํŠธ๋ถ์€ Tailscale์„ ํ†ตํ•ด ๋‹ค์‹œ tailnet์— ํ•ฉ๋ฅ˜ํ•œ๋‹ค. ์ด์ œ ์ถ”๊ฐ€ ์„ค์ • ์—†์ด ์ง‘์— ๋‘” ํŽธ์ง‘์šฉ ๋…ธํŠธ๋ถ์ด๋‚˜ ๊ฒŒ์ด๋ฐ PC์— ์ฑ…์ƒ ์•ž์— ์•‰์€ ๊ฒƒ์ฒ˜๋Ÿผ ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋‹ค. Tailscale์ด ๋„คํŠธ์›Œํฌ ํ† ํด๋กœ์ง€๋ฅผ ์•„์˜ˆ ์•ˆ ๋ณด์ด๊ฒŒ ๊ฐ€๋ ค ์ฃผ๋Š” ์…ˆ์ด๋‹ค.

์„ค์ • ๊ณผ์ •์„ ์š”์•ฝํ•˜๋ฉด, ๊ฐ ๋…ธ๋“œ์— (1) Tailscale ์„ค์น˜๋กœ tailnet ํ•ฉ๋ฅ˜, (2) Rustdesk ์„ค์น˜, (3) ๋ฌด์ธ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ง€์ •, (4) ์ง์ ‘ IP ์ ‘๊ทผ ํ—ˆ์šฉ. ์ด๊ฒŒ ์ „๋ถ€๋‹ค.


6. ๊ด€๋ จ ๋…ธํŠธ