자주 묻는 질문을 정리했습니다. 여기에 없는 질문이 있다면 언제든지 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 코어 프로젝트에서는 다음 항목을 구현하거나 수정하지 않습니다:
공식 Go QUIC 라이브러리가 공개되면 다음 항목의 구현을 검토합니다:
로컬 시스템에서는 노드가 정상 작동하지만 라우터나 컨테이너에서는 작동하지 않음
시스템 시간이 표준 시각과 동기화되지 않았을 수 있습니다. 사용 중인 플랫폼의 시간 동기화 문서를 확인하세요. 시간이 맞지 않으면 일부 프로토콜이 정상적으로 작동하지 않을 수 있습니다.
규칙 매칭의 시간 복잡도
다음 토론을 참고하세요: #422
Clash Premium에서 인터넷에 연결할 수 없음
다음 관련 논의를 참고할 수 있습니다:
오류: 지원되지 않는 RULE-SET 규칙 유형
다음 오류 메시지가 표시된다면:
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 하이재킹이 작동하지 않습니다. 해결 방법:
- 시스템 DNS로
1.1.1.1같은 공용 DNS 서버를 사용합니다 - 또는 시스템 DNS를 Clash DNS로 직접 설정합니다(기본값:
198.18.0.1)
