이 글의 목차
같은 장치에 IP로는 접속되지만 전체 도메인 이름으로는 실패한다면 이름 해석을 더 확인해야 합니다. 라우터와 로컬 네트워크 장치가 서로 다른 해석기를 사용할 수 있으므로 각각 테스트하세요. 원래 설정과 관리 접속 수단을 확보한 뒤 어떤 변경이 필요한 서비스를 복구하는지 비교하세요.
Tailscale은 온라인인데 왜 라우터에서 도메인을 해석하지 못할까요?
OpenClash와 Tailscale이 같은 OpenWrt 라우터에서 실행되는지 확인한 뒤 장치 IP와 전체 ts.net 이름으로 접속한 결과를 기록하세요. Tailscale DNS를 받아들인 뒤 라우터 자체의 도메인 요청에 문제가 생겼다면 라우터 자체 DNS와 로컬 네트워크 장치의 결과도 함께 기록하세요.
OpenClash는 2026년 10월 12일 v0.48.002를 출시하면서 기본 Tailscale 모듈을 추가했다고 밝혔습니다. 라우터 자체 프록시를 사용할 때 accept-dns를 켜면 발생할 수 있는 이상을 처리하기 위한 모듈입니다. 실제로는 ts.net 도메인의 이름 해석에 Tailscale DNS를 사용하도록 지정할 뿐이며, 모든 DNS·라우팅·방화벽 문제를 해결하는 범용 수정은 아닙니다.
라우터에서 tailscaled가 실행 중이고 Tailscale이 연결되어 있어야 합니다. 컴퓨터에서만 데스크톱 Clash를 쓰거나 로컬의 다른 기기에서 Tailscale을 실행한다면 라우터 모듈 설정을 그대로 적용하지 마세요. 로그인하지 않았거나 MagicDNS가 꺼져 있거나 기기가 오프라인이거나 접근 정책이 거부한다면 해당 문제부터 해결하세요.
기기 IP, 전체 도메인 이름, 두 DNS 결과로 원인 좁히기
먼저 LAN 주소로 LuCI에 접속하세요. OpenWrt와 OpenClash 설정 백업, 현재 구독, 사용자 정의 모듈을 보관하고 플러그인 및 Tailscale 버전, 라우터 자체 프록시 스위치, 기존 accept-dns 값과 모듈 스위치 상태를 기록하세요. 관리 수단이 Tailscale 원격 접속뿐이라면 재시작과 DNS 변경을 미루고 로컬에서 관리할 방법을 먼저 마련하세요.
라우터에서 Tailscale 상태를 확인하고, 자신의 관리 콘솔에서 온라인 기기 하나의 전체 MagicDNS 이름과 IP를 가져오세요. 같은 서비스에 IP와 도메인 이름으로 각각 접속해 비교하세요. IP 접속도 실패한다면 기기, 서비스, 라우팅, 접근 권한을 확인해야 하며, DNS 모듈만으로 원인을 판단하거나 해결할 수 없습니다.
아래 두 nslookup 명령의 이름을 자신의 실제 전체 이름으로 바꾸세요. 두 번째 서버에는 현재 라우터의 로컬 DNS 주소를 사용하세요. 127.0.0.1은 흔히 쓰는 예시일 뿐이므로 해당 주소에서 실제로 DNS를 제공하는지 먼저 확인해야 합니다. 두 테스트 모두 라우터에서 실행하세요. Tailscale DNS 주소를 일반 공개 DNS처럼 모든 기기에 배포하면 안 됩니다.
라우터의 DNS 가로채기 규칙은 특정 서버로 보낸 요청도 다른 곳으로 리디렉션할 수 있습니다. 100.100.100.100을 지정했다고 해서 플러그인을 우회한 것은 아닙니다. 필요하다면 로컬 관리 연결을 확보한 상태에서 기존 상태를 기록하고 OpenClash를 잠시 중지하되 Tailscale은 계속 실행한 채 다시 테스트한 다음 원래 상태로 복구하세요. LAN 프록시에 일시적인 영향을 주므로 잠깐의 중단을 감수할 수 있는 시간에 진행하세요.
Fake-IP 모드에서 로컬 DNS가 198.18.x를 반환한다고 해서 이름 해석에 문제가 있다고 단정할 수는 없습니다. 전체 이름으로 같은 서비스에 접속하고 코어 로그에서 실제 목적지도 확인해야 합니다. 타임아웃, SERVFAIL, NXDOMAIN, 또는 IP 접속은 성공하지만 이름으로 접속하면 실패하는 경우가 이름 해석 경로를 더 살펴볼 단서입니다.
tailscale version
tailscale status
nslookup device.your-tailnet.ts.net 100.100.100.100
nslookup device.your-tailnet.ts.net 127.0.0.1비교 결과에 따른 다음 조치
| 관찰 결과 | 다음 단계 |
|---|---|
| 기기 IP에 접속되고 Tailscale DNS의 이름 해석도 확인했지만 로컬에서 이름으로 접속하면 실패함 | 요청이 OpenClash DNS로 들어가는지, 실행 중인 설정에서 ts.net 해석 정책이 빠졌거나 덮어써졌는지 확인한 뒤 내장 모듈을 적용해 보세요. |
| DNS 가로채기를 배제했는데도 Tailscale DNS가 전체 이름을 해석하지 못함 | tailscaled, 로그인 상태, MagicDNS, 이름 철자부터 확인하세요. 모듈이 Tailscale DNS 서비스를 대신할 수는 없습니다. |
| 도메인 해석 결과는 올바르지만 서비스 연결은 실패함 | 대상 서비스, Tailscale 라우팅, 접근 정책을 확인하세요. 해결되기를 기대하며 DNS를 계속 바꾸지 마세요. |
| 라우터에서 일반 공개 도메인만 문제가 있고 LAN 기기는 정상임 | 양쪽 결과의 차이를 기록하고 라우터 자체 DNS와 accept-dns를 확인하세요. 이 증상을 ts.net 모듈이 없는 탓으로 바로 단정하면 안 됩니다. |
실행 상태 페이지에서 내장 Tailscale 모듈 켜기
이전 버전에 이 기본 메뉴가 없다면 업그레이드 대신 모르는 스크립트를 붙여 넣지 마세요. 이번 조정에는 라우터 펌웨어 전체 업그레이드나 모든 설정 초기화도 필요하지 않습니다.
현재 실행 설정에 모듈 적용하기
실제 플러그인 버전 확인하기
글 끝의 공식 v0.48.002 Release와 기존 업그레이드 방식으로 플러그인을 업데이트하고 이전 백업은 보관하세요. 완료 후 LuCI에서 실제 버전을 확인하고 원래 구독으로 시작되는지 확인하세요. 설치가 실패하면 오류와 백업에 따라 복구하세요.
실행 상태 페이지에서 덮어쓰기 모듈 열기
서비스 → OpenClash의 실행 상태 페이지로 이동하세요. 상단의 덮어쓰기 모듈(Overwrite Module) 버튼을 누르고 팝업 창 왼쪽에서 내장 Tailscale을 선택하세요. 메뉴의 덮어쓰기 설정 페이지와는 별도의 진입점입니다.
적용 범위를 확인한 뒤 모듈 켜기
새로 설치한 내장 Tailscale 모듈은 기본적으로 꺼져 있으며 모든 설정에 적용하도록 되어 있습니다. 업그레이드 시 기존 설정을 유지한 경우 미설정(Unset)으로 표시되고 스위치가 없다면 모듈의 톱니바퀴 버튼에서 적용 대상을 전체 또는 현재 설정 파일의 전체 경로로 지정한 뒤 켜세요. 기존 값을 기록하세요. 내용 편집, 복사본 생성, 원격 구독 새로고침은 필요하지 않습니다.
재시작 후 실행 설정 확인하기
편집기를 닫고 실행 상태 페이지에서 OpenClash를 재시작하세요. 실제 실행 중인 dns.nameserver-policy에서 +.ts.net이 100.100.100.100#DIRECT를 가리키는지 확인하세요. 저장만 하거나 방화벽을 다시 로드하는 것으로는 모듈이 다시 적용되지 않습니다.
아래는 공식 모듈 내용으로, 기존 모듈과 대조하는 용도로만 사용하세요. [YAML]과 nameserver-policy+는 OpenClash 덮어쓰기 형식이며, 실행 시 Mihomo 설정에는 nameserver-policy가 사용됩니다. 전체 내용을 구독 YAML에 그대로 붙여 넣거나 중복 모듈을 추가하지 마세요.
[YAML]
dns:
nameserver-policy+:
'+.ts.net':
- 100.100.100.100#DIRECT100.100.100.100은 이 기기의 Tailscale이 제공하는 DNS 서비스 주소입니다. #DIRECT는 해당 DNS 요청을 직접 연결로 처리하게 합니다. 이 모듈은 tailscaled를 대신 시작하지 않으며 Tailscale 라우팅, 접근 정책, accept-dns도 변경하지 않습니다. 다른 모듈에도 같은 도메인 정책이 있다면 편집기에 표시된 내용만 보지 말고 최종 실행 설정을 기준으로 확인하세요.
accept-dns를 꺼야 할까요? 기존 값을 기록하고 비교하세요
모듈을 켜기 위해 Tailscale DNS를 무조건 끄지 마세요. 기존 accept-dns 값이 true이고 일반 도메인 문제가 해당 설정을 켰을 때 발생하는 경우에만 LAN 관리 연결로 접속한 상태에서 한 번 꺼서 비교하세요. 기존 값을 먼저 기록하세요. 끄면 이 기기가 tailnet DNS 설정을 더 이상 받아들이지 않으므로 시스템의 MagicDNS 짧은 이름이나 사용자 정의 도메인 해석에 영향을 줄 수 있습니다.
해당 기능을 지원하는 Tailscale CLI에서는 tailscale get accept-dns로 현재 값을 볼 수 있습니다. 이전 버전은 도움말부터 확인하고, 지원하지 않으면 기존 설정 기록에서 값을 확인하세요. 알 수 없는 값을 true로 간주하면 안 됩니다. 기존 값을 확인한 뒤 아래 명령을 이번 비교에만 사용하세요. 모든 기기에서 false를 계속 사용해야 한다는 뜻은 아닙니다.
tailscale set --accept-dns=falsetailscale set은 명시한 매개변수만 업데이트합니다. reset, 재로그인, 경로 수락, 출구 노드 관련 매개변수를 추가하지 마세요. 끈 뒤 같은 공개 도메인, 전체 ts.net 이름, 서비스 접속 테스트를 반복하고 차이를 기록하세요. 개선되지 않으면 기존 값으로 복구하고 DNS 변경을 계속 추가하지 마세요.
기존 값이 true였다면 tailscale set --accept-dns=true로 복구하세요. 기존 값이 false였다면 false를 유지하세요. 시스템 리졸버가 Tailscale DNS 설정을 받아들이는 것과 OpenClash가 ts.net 질의를 이 기기의 DNS로 보내는 것은 서로 다른 설정입니다. 이 모듈이 시스템의 짧은 이름, 다른 사설 도메인, 모든 LAN 기기를 자동으로 사용할 수 있게 만드는 것은 아닙니다.
전체 이름이 다시 동작해도 라우터와 LAN을 각각 확인하세요
같은 실제 전체 ts.net 이름으로 앞서 실행한 두 DNS 테스트를 반복한 뒤 같은 기기의 같은 서비스에 접속하세요. Tailscale DNS가 반환한 실제 주소는 기기 기록과 일치해야 합니다. 로컬 Fake-IP 응답은 실제 요청 및 로그와 함께 확인하세요. 서비스 요청을 끝까지 성공해야 해당 접근 경로가 복구되었다고 볼 수 있습니다.
모듈은 ts.net 접미사만 일치시킵니다. 짧은 이름, 다른 사설 도메인, Tailscale을 사용하지 않는 기기에서 문제가 생기면 각각의 DNS, 검색 도메인, 네트워크 경로를 확인해야 합니다. LAN 기기의 요청도 실제로 이 정책을 설정한 리졸버에 전달될 때에만 해당 정책을 사용할 수 있습니다. 모든 기기의 모든 앱이 자동으로 복구되었다고 판단하면 안 됩니다.
이번 변경의 완료 확인
- tailscaled가 온라인이며 테스트 기기와 서비스에 기존 IP로 계속 접속할 수 있음
- 실행 설정에 의도한 ts.net 해석 정책이 있고 다른 모듈이 덮어쓰지 않았음
- 라우터에서 전체 MagicDNS 이름이 해석되고 실제 서비스 요청도 성공함
- 일반 공개 도메인은 여전히 정상이며 실제 사용하는 LAN 기기에서 도메인 해석과 서비스 접속을 별도로 테스트
- OpenClash가 정상 재시작된 뒤에도 정책이 유지되고 같은 테스트가 성공함
- 기존 모듈 상태, accept-dns 값, 별도 백업을 모두 기록해 둠
해결되지 않거나 다른 기기에 영향을 주면 어떻게 되돌릴까요?
덮어쓰기 모듈 창으로 돌아가 Tailscale 모듈의 스위치와 적용 범위를 변경 전 상태로 복구하고 OpenClash를 재시작하세요. 실행 설정의 정책이 원래 상태로 돌아갔는지 확인하세요. accept-dns도 임시로 바꿨다면 기록한 기존 값으로 복구한 뒤 일반 인터넷 연결과 원래의 Tailscale 접속을 다시 테스트하세요. 설정 디렉터리 전체를 삭제할 필요는 없습니다.
업그레이드 자체가 실패했다면 설치 오류와 현재 데이터를 보관하고, 업그레이드 전 백업으로 기존 플러그인 설정, 구독, 사용자 정의 리소스를 복구하세요. 설정 복구와 프로그램 다운그레이드는 서로 다른 작업입니다. 이전 플러그인이 새 버전의 모든 설정을 읽을 수 있다고 가정하지 마세요. 호환성을 확인할 근거가 없다면 우선 이번 모듈을 끄고 이전에 정상 동작하던 방법으로 돌아가세요.
계속 실패한다면 OpenClash 디버그 로그를 생성하세요. 플러그인·코어·Tailscale 버전, 라우터 자체 프록시 및 DNS 설정, 최종 도메인 정책, 라우터와 LAN의 결과 차이, IP·전체 이름·두 리졸버의 비교 결과를 함께 전달하세요. 공유하기 전에 구독 토큰, 비밀번호, 기기 식별 정보, 사설 도메인을 삭제하고 원본 로그 전체를 공개하지 마세요.
