Tailscale 설정

Chute는 네이티브 Tailscale 네트워킹을 내장합니다. 설정이 완료되면 규칙이나 정책 그룹에서 내장 정책 TAILSCALE을 참조하여 트래픽을 tailnet으로 보낼 수 있습니다. tailnet 내의 다른 장치에 도달하거나, 출구 노드(exit node)를 통해 외부로 나가거나, 피어가 광고하는 서브넷에 액세스할 수 있습니다.

일반적인 프록시 프로토콜과 달리 Tailscale은 [Proxy]에서 줄 단위로 정의하는 정책이 아니라, 전역적으로 고유한 단일 [Tailscale] 섹션으로 구성됩니다. auth key(인증 키)를 사용하여 제어 서버에 노드를 등록하므로 대화형 브라우저 로그인이 필요하지 않습니다.

Tailscale 섹션

[Tailscale] 섹션은 장치가 tailnet에 참여하는 데 필요한 모든 설정을 정의합니다:

[Tailscale]
auth-key = tskey-auth-xxxxxxxxxxxx
control-server = https://controlplane.tailscale.com
hostname = my-device
exit-node = 100.101.102.103
accept-routes = true
force-derp = false

참고: 전체 설정 파일에서 허용되는 [Tailscale] 섹션은 하나뿐입니다. 중복된 [Tailscale] 섹션은 설정 오류로 처리됩니다. Tailscale 엔진이 무겁고 tailnet 주소 범위가 서로 배타적이어서 한 번에 하나의 tailnet에만 참여할 수 있기 때문입니다.

매개변수

필수 설명
auth-key Tailscale 인증 키. 공식 제어 플레인 사용 시 tskey-로 시작해야 합니다. 서드파티 제어 서버(예: Headscale)는 자체 키 형식을 허용합니다
control-server 아니오 제어 서버 주소. http(s):// URL이어야 합니다. 비워두면 공식 제어 플레인 controlplane.tailscale.com을 사용합니다
hostname 아니오 tailnet에 보고하는 장치 이름(MagicDNS 호스트 이름)
exit-node 아니오 출구 노드. tailnet IP(100.x) 또는 MagicDNS 이름을 허용합니다. 비워두면 출구 노드를 사용하지 않습니다
accept-routes 아니오 피어가 광고하는 서브넷 경로를 수락할지 여부(불리언, 기본값 false)
force-derp 아니오 DERP 릴레이만 강제하고 직접 연결을 비활성화할지 여부(불리언, 기본값 false)

불리언 값은 다음 표기(대소문자 구분 안 함)를 허용합니다: true/false, 1/0, yes/no, on/off.

참고: 알 수 없는 키는 경고와 함께 무시됩니다(설정 로딩을 막지 않음). 키의 철자 오류(예: force-derpforce_derp로 작성)는 해당 옵션을 조용히 비활성화합니다. 위 표에서 확인하세요.

TAILSCALE 내장 정책

[Tailscale] 섹션을 구성하면 내장 정책 식별자 TAILSCALE을 사용할 수 있습니다. DIRECTREJECT와 나란히 위치하며 규칙과 정책 그룹에서 직접 참조할 수 있습니다. [Tailscale] 섹션이 구성되지 않았거나 Tailscale이 꺼져 있을 때 TAILSCALE을 참조하는 규칙은 REJECT로 폴백합니다(fail-closed).

[Proxy Group]
Mesh = select, TAILSCALE, DIRECT

[Rule]
IP-CIDR,100.64.0.0/10,TAILSCALE,no-resolve
FINAL,DIRECT

자동 라우팅

Tailscale을 활성화하면 Chute는 모든 규칙 앞에 다음 세 가지 규칙을 자동으로 주입하므로, 보통 tailnet 도달용 규칙을 직접 작성할 필요가 없습니다:

DOMAIN-SUFFIX,ts.net,TAILSCALE
IP-CIDR,100.64.0.0/10,TAILSCALE,no-resolve
IP-CIDR6,fd7a:115c:a1e0::/48,TAILSCALE,no-resolve

이 주입된 규칙은 런타임 전용이며 설정 파일을 수정하지 않습니다. accept-routes = true를 설정하면 피어가 광고하는 서브넷도 해당하는 IP-CIDR / IP-CIDR6 규칙으로 자동 주입되며, 피어가 서브넷을 추가하거나 철회할 때 자동으로 갱신됩니다.

사용법

tailnet 내 장치에 도달하기

[Tailscale] 섹션을 구성하면 tailnet 내 다른 장치에 도달하는 데 추가 규칙이 필요 없습니다. 주입된 규칙이 이미 tailnet 범위와 MagicDNS 접미사를 덮습니다. MagicDNS 이름이나 tailnet IP로 직접 주소 지정할 수 있습니다:

[Tailscale]
auth-key = tskey-auth-xxxxxxxxxxxx
hostname = my-iphone

[Rule]
FINAL,DIRECT

이제 my-pc.<tailnet>.ts.net 또는 100.101.102.103 같은 대상은 자동으로 Tailscale을 경유합니다.

출구 노드를 통해 외부로 나가기

TAILSCALEFINAL 대상으로 설정하여 더 구체적인 규칙에 일치하지 않은 모든 트래픽을 출구 노드로 보낼 수 있습니다:

[Tailscale]
auth-key = tskey-auth-xxxxxxxxxxxx
exit-node = 100.101.102.103

[Rule]
FINAL,TAILSCALE

참고: exit-node만 설정해도 트래픽이 출구 노드를 통해 라우팅되지 않습니다. TAILSCALE로 트래픽을 보내는 규칙(예: FINAL,TAILSCALE)도 추가해야 합니다. 그런 규칙이 없으면 출구 노드는 구성되어 있어도 사용되지 않으며, 앱의 구성 편집기가 이를 알려줍니다.

서브넷 경로 수락하기

tailnet 내 장치가 서브넷 라우터로 동작하여 로컬 서브넷을 광고할 때, accept-routes = true를 활성화하면 그 서브넷에 도달할 수 있습니다. 해당 라우팅 규칙이 자동으로 주입됩니다:

[Tailscale]
auth-key = tskey-auth-xxxxxxxxxxxx
accept-routes = true

사용자 정의 제어 서버(Headscale)

공식 제어 플레인 외에도 Chute는 자체 호스팅한 Headscale / Ionscale 제어 서버를 지원합니다. 해당 URL을 입력하기만 하면 됩니다:

[Tailscale]
auth-key = your-headscale-preauth-key
control-server = https://headscale.example.com
hostname = my-device

서드파티 제어 서버는 tskey- 접두사를 강제하지 않고 자체 인증 키를 허용합니다. http:// 평문 주소 사용은 신뢰할 수 있는 네트워크(예: 로컬에서 자체 호스팅한 Headscale)에서만 권장됩니다.

알려진 제한 사항 및 권장 사항

Tailscale 구현은 프록시 시나리오에서 가장 자주 사용되는 기능에 중점을 두며, 공식 클라이언트의 일부 기능은 아직 지원되지 않습니다. 다음 동작 차이에 유의하세요:

  1. force-derp = true는 문제 해결 옵션으로만 사용하세요. Chute는 일반적으로 피어와의 직접 UDP 연결(disco 홀 펀칭)을 우선하며, 직접 연결은 보통 DERP 릴레이보다 지연 시간이 짧고 처리량이 높습니다. 특정 네트워크에서 직접 연결이 계속 불안정하거나 DERP보다 느린 경우 두 모드를 비교한 뒤 해당 환경에서만 force-derp를 활성화하세요.

  2. auth-key 로그인만 지원. SSO / 대화형 브라우저 로그인, Tailscale SSH, Taildrop, Funnel / serve는 지원되지 않습니다. Chute는 로컬 서브넷 경로를 광고하거나 이 장치를 출구 노드로 제공할 수도 없으며, 컨슈머로서만 참여합니다.

  3. 출구 노드를 사용해도 일반 DNS는 로컬에서 해석됩니다. Chute는 일반 DNS 해석 요청을 선택한 출구 노드로 보내지 않습니다. MagicDNS 이름은 로컬 tailnet 맵에서 해석됩니다. 전역 리졸버와 원격 split-DNS 리졸버는 지원되지 않으므로, 사설 이름을 원격 네트워크에서만 해석할 수 있다면 IP 주소를 사용하세요.

  4. MagicDNS는 A / AAAA 레코드만 지원. 전역 Resolvers, split-DNS 라우트(전용 리졸버가 있는 항목), 비주소형 ExtraRecords(TXT / CNAME / SRV)는 무시됩니다. 감지 시 경고가 로그에 기록됩니다.

  5. 직접 경로의 내부 MTU는 1280으로 고정. 경로 MTU 발견이 없으며, 이 보수적인 값으로 PPPoE / 중첩 터널 링크에서 블랙홀을 방지합니다. DERP 릴레이 경로는 영향을 받지 않습니다.

  6. Tailnet Lock(네트워크 잠금)은 미지원. 네트워크 잠금이 활성화된 tailnet에서 이 노드의 키는 서명되지 않으며, 잠긴 피어는 이 장치의 트래픽을 조용히 폐기합니다.

  7. Mullvad 출구 등 소스 재작성 시나리오는 사용 불가. 로컬 소스 주소 재작성을 필요로 하는 출구 노드 기능은 아직 구현되지 않았습니다.

  8. 네트워크 변경 후 복구는 시스템 알림에 의존합니다. Wi-Fi / 셀룰러 전환 시 Chute는 즉시 연결을 재구성하지만, 네트워크 변경 알림이 수신되지 않은 드문 경우 약 3분의 와치독 재연결로 폴백합니다.

S. Smart Rabbit LLC © All Rights Reserved            updated 2026-07-21 15:12:55

results matching ""

    No results matching ""