소개 · Clash 문서

자주 묻는 질문

라우터나 컨테이너에서 Clash 노드가 제대로 작동하지 않거나 Premium 연결 실패, RULE-SET 오류가 발생하나요? 증상에 따라 GOAMD64 아키텍처, 규칙 일치, DNS 하이재킹을 확인하고 규칙 복잡도가 동작에 미치는 영향도 살펴보세요.

  • GOAMD64
  • RULE-SET
  • Premium 코어
  • DNS 하이재킹
  • tun.auto-route
소개
본문 목차

이 과거 문서의 적용 범위

이 문서는 이전 설정을 확인할 수 있도록 원본 Clash / Clash Premium의 과거 사용법을 보존한 자료입니다. “Premium 전용”, “미지원” 또는 플랫폼 제한은 현재 Mihomo의 기능을 뜻하지 않습니다. 이 내용을 그대로 적용해 현재 클라이언트 설정을 덮어쓰거나 권한 관련 명령을 실행하지 마세요.

Mihomo를 사용한다면 현재 Mihomo 설정 문서를 확인하세요. 화면 조작, 설치 및 권한 설정은 사용 중인 클라이언트의 프로젝트 문서를 따르세요.

여기에는 원본 Clash의 과거 질문과 답변을 보존했습니다. 현재 GUI 클라이언트의 문제는 해당 클라이언트 유지보수자에게 보고하세요. Mihomo 코어 문제임을 확인한 경우에만 Mihomo 이슈 페이지를 이용하세요. 어느 프로젝트의 문제인지 모르겠다면 클라이언트 및 프로젝트 출처를 먼저 확인하세요. 원본 Clash의 새 Issue 작성 페이지는 더 이상 사용할 수 없습니다. 보고 전에 로그와 설정에서 구독 토큰, 암호 등 민감한 정보를 삭제하세요.

amd64와 amd64-v3의 차이는 무엇인가요?

golang/go에서 인용:

Go 1.17 이전에는 Go 컴파일러가 항상 모든 64비트 x86 프로세서에서 실행할 수 있는 x86 바이너리를 생성했습니다.

Go 1.18은 AMD64에 4개의 아키텍처 수준을 도입했습니다. 수준마다 서로 다른 x86 명령어 집합이 있으며, 컴파일러는 생성된 바이너리에 해당 명령어를 포함할 수 있습니다:

  • GOAMD64=v1(기본값): 기준 수준. 모든 64비트 x86 프로세서에서 실행할 수 있는 명령어만 생성합니다.
  • GOAMD64=v2: 모든 v1 명령어와 CMPXCHG16B, LAHF, SAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3를 포함합니다.
  • GOAMD64=v3: 모든 v2 명령어와 AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, OSXSAVE를 포함합니다.
  • GOAMD64=v4: 모든 v3 명령어와 AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL을 포함합니다.

예를 들어 GOAMD64=v3로 설정하면 Go 컴파일러가 생성된 바이너리에서 AVX2 명령어를 사용할 수 있으며, 경우에 따라 성능이 향상될 수 있습니다. 그러나 이 바이너리는 AVX2를 지원하지 않는 오래된 x86 프로세서에서 실행되지 않습니다.

Go 도구 체인은 최신 명령어도 생성할 수 있지만, 동적 검사로 보호하여 해당 기능을 갖춘 프로세서에서만 실행합니다. 예를 들어 GOAMD64=v1 환경에서 CPUID가 POPCNT 명령어를 사용할 수 있다고 보고하면 math/bits.OnesCount는 해당 명령어를 사용합니다. 그렇지 않으면 일반 구현으로 대체됩니다.

현재 Go 툴체인은 AVX512 명령어를 생성하지 않습니다.

여기서 프로세서만 언급하는 것은 단순화한 설명입니다. 실제로는 전체 시스템, 즉 펌웨어, hypervisor, 커널이 모두 지원해야 합니다.

내 시스템에는 어떤 버전을 사용해야 하나요?

다음은 Clash를 실행하는 대표적인 시스템과 각 시스템에 권장되는 버전입니다:

  • NETGEAR WNDR3700v2: mips-hardfloat #846
  • NETGEAR WNDR3800: mips-softfloat #579
  • ASUS RT-AC5300: armv5 #2356
  • MediaTek MT7620A 및 MT7621A: mipsle-softfloat (#136)
  • mips_24kc: #192

장치가 목록에 없다면 uname -m 명령으로 CPU 아키텍처를 확인한 뒤 릴리스 페이지에서 해당 빌드를 찾으세요.

수정하지 않을 문제

원본 Clash 프로젝트는 당시 다음 기능을 구현하거나 수정할 계획이 없다고 명시했습니다. 이는 현재 Mihomo나 다른 클라이언트의 지원 여부를 뜻하지 않습니다:

공식 Go QUIC 라이브러리가 공개되면 다음 항목의 구현을 검토합니다:

로컬 시스템에서는 노드가 정상 작동하지만 라우터나 컨테이너에서는 작동하지 않음

시스템 시간이 표준 시각과 동기화되지 않았을 수 있습니다. 사용 중인 플랫폼의 시간 동기화 문서를 확인하세요. 시간이 맞지 않으면 일부 프로토콜이 정상적으로 작동하지 않을 수 있습니다.

규칙 매칭의 시간 복잡도

다음 토론을 참고하세요: #422

Clash Premium에서 인터넷에 연결할 수 없음

다음 관련 논의를 참고할 수 있습니다:

오류: 지원되지 않는 RULE-SET 규칙 유형

다음 오류 메시지가 표시된다면:

txt
FATA[0000] Parse config error: Rules[0] [RULE-SET,apple,REJECT] error: unsupported rule type RULE-SET

현재 사용 중인 것은 Clash 오픈 소스 버전입니다. Rule Providers는 Premium 코어에서만 사용할 수 있습니다.

DNS 하이재킹이 작동하지 않음

tun.auto-route 설정은 LAN 트래픽을 가로채지 않습니다. 따라서 사설 서브넷의 서버를 시스템 DNS로 사용하면 DNS 하이재킹이 작동하지 않습니다. 해결 방법:

  1. 시스템 DNS로 1.1.1.1 같은 공용 DNS 서버를 사용합니다
  2. 또는 시스템 DNS를 Clash DNS로 직접 설정합니다(기본값: 198.18.0.1)