기본 개념
클라이언트, 코어, 프록시 모드를 구분하세요. 설치 완료나 테스트 성공만으로 모든 연결이 처리된다고 볼 수는 없습니다.
Clash, mihomo, GUI 클라이언트는 어떤 관계인가요?
Clash는 규칙 기반 프록시 도구 프로젝트의 이름이고, mihomo는 관련 설정 체계를 계승하고 확장한 코어입니다. Clash Verge Rev, FlClash 같은 GUI 클라이언트는 구독 가져오기, 프록시 그룹 선택, 시스템 설정을 담당합니다. 화면이 실행된다고 해서 코어가 설정을 정상적으로 불러온 것은 아닙니다. 설정 항목을 지원하지 않는다는 오류가 나면 클라이언트의 정보 또는 코어 설정에서 실제 사용 중인 코어를 확인한 다음, 로그에서 구문 분석 오류를 살펴보세요. 튜토리얼에 나온 mihomo 설정 항목이 모든 구버전 Clash 코어에서 작동한다고 단정할 수는 없습니다.
클라이언트를 설치한 뒤에도 구독이나 설정 파일이 필요한 이유는 무엇인가요?
클라이언트는 설정을 읽고 연결을 전달할 뿐, 설치만으로 사용할 수 있는 프록시 서버가 생기지는 않습니다. 구독에는 보통 서버 정보, 프록시 그룹, 분기 규칙이 포함되지만 노드만 제공되는 경우에는 클라이언트에서 규칙을 별도로 만들어야 할 수도 있습니다. 실제 서비스 제공업체에서 현재 코어와 호환되는 설정을 받은 뒤 설정 페이지에서 가져와 활성화하세요. 로그인 페이지 주소를 구독 주소로 사용하거나 구독 링크를 공개 댓글에 올리지 마세요. 링크에 포함된 접근 식별 정보로 다른 사람이 같은 설정을 읽을 수 있습니다.
규칙·전역·직접 연결 모드 중 무엇을 선택해야 하나요?
평소에는 규칙 모드를 권장합니다. mode: rule에 해당하며, 연결은 rules 순서에 따라 출구가 결정됩니다. 전역 모드는 코어에 들어온 연결을 전역 프록시 그룹으로 보내므로 짧은 비교 테스트에 적합하지만, 모든 시스템 앱의 연결을 가로채는 것은 아닙니다. 직접 연결 모드는 코어에 들어온 연결이 대상에 바로 접속하게 하지만 시스템 프록시를 끄는 것과는 다릅니다. 모드를 바꾼 뒤에는 테스트 연결을 새로 만들고 연결 페이지에서 실제 출구를 확인하세요. 기존 연결은 생성 당시의 정책을 계속 사용할 수 있습니다.
시스템 프록시와 TUN 모드는 어떻게 다른가요?
시스템 프록시는 운영체제의 HTTP 프록시 설정을 주로 바꾸며, 앱이 이 설정을 읽는지에 따라 적용 여부가 달라집니다. 일부 명령줄 프로그램, 게임, 독립 네트워크 스택은 시스템 프록시를 우회합니다. TUN은 가상 네트워크 어댑터와 라우팅을 통해 더 많은 IP 트래픽을 처리하며, tun.enable에 해당합니다. 시스템 권한이나 서비스 권한도 필요합니다. 먼저 시스템 프록시로 기본 동작을 확인하고, 필요한 경우 TUN을 켜세요. TUN의 적용 범위는 라우팅, 제외 규칙, 다른 VPN의 영향을 받으므로 스위치가 켜져 있다는 표시만으로 모든 연결이 코어에 들어간다고 판단해서는 안 됩니다.
노드 지연 시간 테스트는 성공했는데 실제 웹사이트가 열리지 않는 이유는 무엇인가요?
지연 시간 테스트는 보통 노드를 통해 지정된 테스트 주소에 접속하는 데 걸리는 시간만 확인합니다. 대상 웹사이트, 모든 프로토콜, 현재 분기 규칙이 정상적으로 작동한다는 뜻은 아닙니다. 먼저 프록시 페이지에서 대상 프록시 그룹이 테스트한 노드를 선택했는지 확인한 다음, 웹사이트를 열어 연결 페이지에서 적용된 규칙과 출구를 살펴보세요. 연결이 클라이언트에 들어오지 않으면 시스템 프록시나 앱 프록시 설정을 확인하고, 연결은 들어왔지만 실패한다면 DNS, TLS 또는 연결 시간 초과 로그를 확인하세요. 지연 시간 숫자만 보고 설정을 계속 바꾸지 마세요. 대상 서비스가 해당 출구를 제한할 수도 있습니다.
개념 정리: 코어, 프록시 그룹, 네트워크 스택 용어.
설치 및 설정
설정 형식, 계정 상태, 로컬 권한부터 확인하세요. 먼저 구독을 불러온 뒤 추가 권한이 필요한 기능을 켜면 됩니다.
구독 링크를 가져올 수 없거나 형식 오류가 표시되면 어떻게 해야 하나요?
설정 페이지에서 원격 설정을 새로 만들고 전체 구독 주소를 붙여 넣으세요. 앞뒤 공백이 없고 메신저에서 링크가 잘리지 않았는지도 확인합니다. 로그에 YAML 구문 분석 오류나 프록시 정보 누락이 표시된다면 유효한 설정 대신 로그인 페이지, 오류 페이지 또는 호환되지 않는 구독 형식을 내려받았을 수 있습니다. 서비스 제공업체에 Clash 또는 mihomo 형식 중 어떤 것을 선택해야 하는지 확인한 뒤 다시 가져오세요. Base64 노드 링크만 있다면 완전한 YAML 설정처럼 바로 사용할 수 없습니다. 문제를 확인할 때 오류가 난 줄 번호는 남기되, 화면을 공유하기 전 구독 주소와 서버 인증 정보는 가리세요.
구독이 만료되었거나 업데이트 후 노드 수가 줄었다면 무엇부터 확인해야 하나요?
먼저 서비스 제공업체의 계정 페이지에서 이용권 상태, 구독 주소 변경 여부, 노드 조정 여부를 확인한 다음 클라이언트 설정 페이지에서 직접 한 번 업데이트하세요. HTTP 401이나 403은 인증 또는 접근 제한과 관련된 경우가 많고, 404는 주소가 바뀌었을 수 있습니다. 업데이트 버튼을 반복해서 누르는 것만으로 해결되지는 않습니다. 업데이트가 성공했다면 현재 활성화된 설정이 해당 구독인지 확인하고, 클라이언트에 노드 필터가 설정되어 있는지도 살펴보세요. 출처가 불분명한 변환 서비스에 접근 식별 정보가 포함된 구독을 입력하지 마세요. 사용할 수 있는 로컬 백업이 있다면 덮어쓰기 전에 따로 보관하세요.
혼합 포트는 어디서 설정하며 앱에는 어떤 주소를 입력해야 하나요?
혼합 포트는 보통 클라이언트 설정의 포트 또는 프록시 설정에서 확인할 수 있으며, 설정 항목은 mixed-port입니다. 7890은 흔히 쓰이는 예시일 뿐 모든 클라이언트의 고정값은 아닙니다. 변경 후 설정을 저장하고 필요한 경우 코어를 다시 불러오세요. HTTP 또는 SOCKS5 프록시를 직접 설정할 수 있는 로컬 앱이라면 127.0.0.1과 실제 혼합 포트를 입력하고 앱에서 요구하는 프로토콜을 선택하면 됩니다. 포트가 이미 사용 중이라는 메시지가 나오면 중복 실행 중인 클라이언트를 종료하거나 사용 가능한 포트로 바꾸세요. 앱의 프록시 설정도 함께 변경해 양쪽 포트가 서로 달라지지 않도록 합니다.
TUN을 켤 때 권한 부족 또는 가상 네트워크 어댑터 생성 실패 오류가 나면 어떻게 해야 하나요?
먼저 TUN을 끄고 클라이언트 설정에서 서비스 모드가 설치되어 실행 중인지 확인하세요. Windows 데스크톱 클라이언트는 보조 서비스를 설치하고 관리자 권한을 승인해야 하는 경우가 많습니다. macOS에서는 클라이언트 안내에 따라 네트워크 관련 권한을 허용하고, Linux에서는 서비스가 TUN 장치를 만들고 라우팅을 관리할 권한이 있는지 확인하세요. 전체 인터페이스를 계속 관리자 권한으로 실행하는 것을 유일한 해결책으로 삼지 마세요. 로그에서 권한 또는 장치 오류를 확인한 뒤 해당 클라이언트의 안내에 따라 서비스를 복구하세요. 가상 네트워크 어댑터와 라우팅 충돌을 확인할 수 있도록 다른 VPN도 잠시 비활성화합니다.
macOS에서 앱을 열 수 없다는 메시지가 나오면 어떻게 확인해야 하나요?
먼저 설치 파일의 아키텍처가 맞는지 확인하세요. Apple Silicon은 보통 ARM64, Intel은 x64를 선택하며 다운로드와 압축 해제가 정상적으로 끝났는지도 살펴봐야 합니다. 개발자를 확인할 수 없다는 메시지가 표시되면 출처를 확인한 다음 시스템 설정의 개인정보 보호 및 보안에서 해당 앱을 열 수 있도록 허용하는 옵션이 있는지 확인하고 안내에 따라 승인하세요. 앱이 손상되었다는 오류와 권한 관련 알림은 서로 다른 문제이므로 같은 명령으로 모두 해결할 수는 없습니다. 클라이언트 하나를 실행하려고 시스템 보안 기능 전체를 끄지 마세요. 계속 실패하면 운영체제 버전과 오류 메시지 전체를 기록하고 프로젝트의 설치 안내와 대조하세요.
관련 안내: 클라이언트 및 플랫폼 설치 안내, 포트 설정.
사용 팁
시작, 노드 전환, 덮어쓰기 설정은 각각 확인해야 합니다. 실제 적용된 설정과 새로 만든 연결을 기준으로 판단하세요.
시작 프로그램 등록과 자동 연결은 같은 설정인가요?
아닙니다. 시작 프로그램 등록은 클라이언트 프로세스를 실행할 뿐이며, 시스템 프록시나 TUN을 자동으로 켜거나 이전 설정을 복원하는지는 클라이언트의 시작 옵션에 따라 다릅니다. 설정 페이지에서 시작 프로그램 등록을 켠 다음 시스템 프록시, 서비스 모드, 설정 복원 옵션을 각각 확인하세요. Windows에서는 작업 관리자에서 시작 앱을, macOS에서는 시스템 설정의 로그인 항목을 확인할 수 있습니다. 재시작 후 먼저 코어가 정상적으로 실행되는지 확인하고 프록시 상태를 살펴보세요. 클라이언트가 실행되기 전에 시스템에 이전 프록시 주소가 남아 있으면 브라우저가 잠시 인터넷에 연결되지 않을 수 있습니다.
노드를 바꾼 뒤 현재 연결이 새 노드를 사용하는지 어떻게 확인하나요?
프록시 페이지에서 대상 프록시 그룹을 바꾼 다음 테스트 페이지를 다시 열거나, 연결 페이지에서 해당 앱의 기존 연결을 종료해 새로 연결하도록 하세요. 기존 TCP 연결이나 일부 재사용 세션은 이전 출구를 계속 사용할 수 있으므로 페이지를 한 번 새로고침하는 것만으로는 비교가 끝나지 않을 수 있습니다. 연결 상세 정보에서 규칙, 프록시 체인, 대상 도메인을 확인해 트래픽이 예상한 프록시 그룹을 거치는지 살펴보세요. 설정에서 url-test 또는 fallback 자동 그룹을 사용한다면 그룹 유형에 따라 수동 선택이 제한될 수 있습니다. 관련 없는 그룹을 임의로 바꾸기보다 웹사이트 연결을 실제로 제어하는 그룹부터 확인하세요.
다른 웹사이트에는 영향 없이 특정 웹사이트만 직접 연결하려면 어떻게 해야 하나요?
규칙 모드를 유지하고 클라이언트의 규칙 덮어쓰기 또는 로컬 덮어쓰기 기능에 대상 도메인 규칙을 추가하세요. 예를 들어 DOMAIN-SUFFIX,example.com,DIRECT를 사용할 수 있습니다. 이 규칙은 먼저 적용될 수 있는 포괄적인 규칙과 MATCH보다 앞에 두세요. example.com은 문법을 보여 주기 위한 예시이므로 실제 대상 도메인으로 바꿔야 합니다. 웹페이지에서 로그인, 이미지, API 등 다른 도메인에 요청할 수도 있으니 연결 페이지에서 항목별로 확인하세요. 설정을 계속 유지하려면 지속형 덮어쓰기 기능을 우선 사용하세요. 구독에서 생성된 파일만 수정하면 다음 구독 업데이트 때 변경 사항이 덮어써질 수 있습니다.
휴대폰이나 다른 컴퓨터에서 이 기기의 프록시를 사용하려면 어떻게 해야 하나요?
신뢰할 수 있는 로컬 네트워크에서 LAN 연결 허용을 켜세요. 설정 항목은 allow-lan: true입니다. 수신 주소와 시스템 방화벽이 같은 네트워크의 접속을 허용하는지도 확인합니다. 다른 기기에는 이 컴퓨터의 로컬 IP 주소와 실제 혼합 포트를 입력하세요. 127.0.0.1은 기기마다 자기 자신을 가리키므로 사용할 수 없습니다. authentication을 설정하고 접속할 수 있는 출발지 주소를 제한하는 것이 좋습니다. 공유가 필요하지 않을 때는 기능을 끄세요. 공유기에서 프록시 포트를 공용 인터넷으로 포트 포워딩하지 마세요. 휴대폰 앱이 Wi-Fi 프록시를 사용하는지는 앱 구현에 따라 다릅니다.
구독을 업데이트하면 규칙 수정이 덮어써지나요? 로컬 설정을 유지하려면 어떻게 해야 하나요?
원격 구독에 해당하는 YAML 파일을 직접 수정하면 다음 업데이트 때 변경 내용이 덮어써지는 경우가 많습니다. 계속 유지해야 하는 rules, dns, tun 설정은 클라이언트에서 제공하는 덮어쓰기, 병합 또는 스크립트 기능에 넣고 병합 순서도 확인하세요. 규칙 목록을 추가하는지 교체하는지, MATCH 앞에 배치되는지는 클라이언트마다 다를 수 있습니다. 업데이트 후에는 편집기 내용만 볼 것이 아니라 실제 적용된 설정과 연결 로그를 확인하세요. 변경 전에는 되돌릴 수 있는 로컬 사본을 저장해 두세요. 문제를 점검할 때 덮어쓰기 기능을 잠시 끄면 구독 문제와 로컬 수정 문제를 구분하는 데 도움이 됩니다.
설정 경로: 시작 프로그램 등록, 프록시 그룹 및 노드 선택.
문제 해결
기본 네트워크, 앱 연결, 적용 규칙, 프록시 출구 순서로 확인하세요. 시간 초과, 인증 실패, DNS 오류는 각각 따로 해결해야 합니다.
Clash로 인터넷에 연결할 수 없을 때 순서대로 점검하는 방법
먼저 시스템 프록시와 TUN을 끄고 평소 직접 연결되던 웹사이트에 접속할 수 있는지 확인하세요. 여전히 연결되지 않으면 Wi-Fi, 게이트웨이 또는 시스템에 남아 있는 프록시 설정부터 살펴봅니다. 기본 네트워크가 정상이라면 클라이언트 하나만 실행하고 설정이 정상적으로 불러와졌는지, 코어가 실행 중인지, 프록시 그룹에 사용할 수 있는 노드가 있는지 확인하세요. 다음으로 요청이 연결 페이지에 표시되는지 살펴봅니다. 기록이 없으면 앱 프록시와 라우팅을 점검하고, 기록이 있으면 적용된 규칙과 DNS, 연결 오류를 확인하세요. 한 번에 설정 하나만 바꾸고 다시 테스트하세요. 모드, 노드, DNS를 동시에 바꾸면 어떤 변경이 효과가 있었는지 알기 어렵습니다.
노드가 계속 시간 초과될 때 구독, 네트워크, 노드 문제를 구분하는 방법
먼저 구독 업데이트가 성공했고 계정을 사용할 수 있는지 확인한 다음 같은 구독의 다른 노드도 각각 테스트하세요. 일부 노드만 시간 초과된다면 노드 점검이나 출구 제한을 우선 확인합니다. 모든 노드가 실패하면 시스템 시간, 서버 도메인 이름 해석, 현재 네트워크의 연결 차단 여부를 살펴보세요. 신뢰할 수 있는 다른 네트워크로 바꿔 비교할 수 있지만, 시간 초과를 곧바로 포트 오류로 단정하지 마세요. 로그의 인증 실패, 인증서 오류, 연결 시간 초과는 원인이 서로 다르므로 원본 오류 키워드를 보존하세요. 지연 시간 테스트만 실패하고 실제 접속은 정상이라면 테스트 주소가 해당 출구를 통해 접속 가능한지도 확인해야 합니다.
시스템 프록시를 켰는데도 브라우저나 명령줄이 직접 연결되는 이유는 무엇인가요?
먼저 시스템 프록시 주소가 현재 클라이언트의 수신 포트를 가리키는지 확인한 다음, 브라우저 확장 프로그램이나 기업 정책, 별도 프록시 설정이 이를 덮어쓰는지 살펴보세요. 명령줄 도구는 시스템 프록시를 읽지 않을 수 있습니다. curl -I --proxy http://127.0.0.1:7890 https://example.com 명령으로 명시적 프록시 연결을 비교해 볼 수 있으며, 포트는 실제 값으로 바꿔야 합니다. 명시적 프록시 요청은 연결 페이지에 표시되는데 일반 요청은 표시되지 않는다면 앱의 프록시 연결 방식에 문제가 있을 가능성이 큽니다. 앱 안내에 따라 프록시 환경 변수를 설정하거나 TUN 사용을 검토하세요. 코어에 들어오지 않은 요청을 해결하려고 노드를 계속 바꾸지는 마세요.
Windows UWP 앱에서 로컬 프록시를 사용할 수 없을 때는 어떻게 해야 하나요?
AppContainer 샌드박스에서 실행되는 일부 Windows 앱은 로컬 루프백 접속이 제한됩니다. 브라우저에서는 프록시가 되는데 이런 앱만 실패한다면 해당 제한을 확인해 보세요. 먼저 앱이 실제로 로컬 프록시에 접속을 시도하는지 확인한 다음, 클라이언트에서 제공하는 UWP 루프백 도구로 필요한 앱에만 루프백 예외를 설정하세요. 도구가 없다면 패키지 패밀리 이름을 확인한 뒤 Windows의 CheckNetIsolation 사용법에 따라 설정할 수 있습니다. 관리자 권한이 필요할 수 있습니다. 모든 스토어 앱에 같은 제한이 있는 것은 아니며, 예외를 설정해도 노드나 DNS 문제는 해결되지 않습니다. 모든 앱에 일괄적으로 예외를 허용하는 것은 권장하지 않습니다.
TUN을 켠 뒤 DNS에 문제가 생기거나 인터넷이 완전히 끊기면 어떤 설정 항목을 확인해야 하나요?
먼저 TUN을 꺼서 연결을 복구한 다음 서비스 권한과 로그를 확인하고, 다른 VPN이 동시에 라우팅을 바꾸고 있지 않은지 살펴보세요. tun.enable, tun.auto-route, tun.auto-detect-interface, dns.enable을 확인해 현재 플랫폼에서 출구 네트워크 어댑터 감지와 DNS 처리가 올바른지 살펴봅니다. dns.enhanced-mode: fake-ip를 사용한다면 코어가 도메인 매핑과 이후 연결을 올바르게 연결해야 합니다. 특정 앱과 호환성 문제가 있다면 실제 증상에 따라 fake-ip-filter를 조정할 수 있습니다. 변경 후 설정을 다시 불러오고 관련 앱의 DNS 캐시를 비우세요. 여러 DNS 설정 블록을 무작정 복사해 섞어 쓰지 마세요. 연결이 복구되면 TUN 기능을 하나씩 다시 켭니다.
전체 설정을 확인하려면 고급 설정 매뉴얼을 참고하세요. 낯선 설정으로 현재 정상 작동하는 설정을 그대로 덮어쓰지 마세요.