먼저 구분하기: 실행 차단, 확장 권한, 자격 증명 접근

세 가지 알림은 서로 다른 단계에서 발생합니다. 앱을 열기도 전에 ‘손상되어 열 수 없음’이 표시되면 설치 파일, 서명, 시스템 보안 평가를 먼저 확인하세요. 앱은 열리지만 TUN만 활성화되지 않는다면 트래픽 처리 방식과 권한이 필요한 서비스를 확인하세요. 팝업에 ‘키체인’이 명시되어 있다면 자격 증명 항목의 접근 권한을 살펴봐야 합니다. 앱을 반복해서 재설치해도 이 세 가지 문제가 한꺼번에 해결되지는 않습니다.

표시되는 증상우선 확인할 항목첫 번째 조치
손상되어 열 수 없음다운로드 파일 무결성, 앱 서명, 보안 평가알림 화면을 캡처하고 해당 아키텍처에 맞는 설치 파일을 다시 받으세요
개발자를 확인할 수 없음Gatekeeper 실행 허용 여부‘개인정보 보호 및 보안’에서 차단 사유를 확인하세요
TUN을 켜자마자 꺼짐권한이 필요한 서비스, 가상 인터페이스, 커널 로그활성화 순간의 오류를 기록하세요
키체인 암호를 반복해서 요청함로그인 키체인 상태, 앱 접근 권한요청한 프로세스와 대상 항목을 확인하세요

먼저 macOS 버전, 칩 종류, 클라이언트 버전, 커널 버전을 기록하세요. 시스템 정보는 ‘Apple 메뉴’ → ‘이 Mac에 관하여’에서 확인할 수 있습니다. 클라이언트 설정에서 커널이 mihomo로 표시된다면 해당 커널의 설정 기능을 기준으로 문제를 점검하세요. 클라이언트마다 메뉴와 권한 처리 방식이 다를 수 있으므로 Clash라는 이름만으로 네트워크 확장을 사용하는지 판단하면 안 됩니다.

‘손상되어 열 수 없음’: 설치 파일과 서명부터 확인

설치 위치와 칩 아키텍처

  1. 실행 중인 클라이언트를 종료하고, 기존 구독 URL과 로컬 설정을 백업해 두세요.
  2. 다운로드 페이지에서 플랫폼과 아키텍처를 확인하세요. Apple Silicon 칩에는 arm64, Intel 칩에는 x64를 우선 선택하세요. 범용 패키지는 보통 universal로 표시됩니다.
  3. 디스크 이미지를 끝까지 다운로드해 연 다음 앱을 ‘응용 프로그램’ 폴더로 드래그하세요. 다운로드 폴더나 디스크 이미지에서 계속 실행하지 마세요.
  4. 디스크 이미지를 추출하고 ‘응용 프로그램’ 폴더에서 앱을 한 번 실행한 뒤, 시스템에 표시된 알림의 문구를 기록하세요.

아키텍처가 맞지 않으면 프로세서 호환성이나 Rosetta 관련 알림이 표시되는 경우가 많지만, 모든 실행 오류가 아키텍처 문제인 것은 아닙니다. 디스크 이미지 자체가 마운트되지 않으면 먼저 다시 다운로드하세요. 앱만 차단된 경우에는 서명과 보안 평가를 이어서 확인하세요.

읽기 전용 진단 명령어 3개

‘터미널’을 열고 아래 명령어 부분을 입력한 다음, ‘응용 프로그램’ 폴더에서 실제 앱을 터미널로 드래그해 경로를 붙여 넣으세요. 아래의 APP은 직접 입력할 앱 경로를 나타냅니다. 바깥쪽 따옴표 없이 전체 경로를 입력하면 공백도 그대로 처리됩니다. 세 가지 검사는 파일을 삭제하거나 시스템 보안 설정을 변경하지 않습니다.

printf '앱 전체 경로를 입력하세요:'
IFS= read -r APP
/usr/bin/codesign --verify --deep --strict --verbose=2 "$APP"
/usr/sbin/spctl --assess --type execute --verbose=4 "$APP"
/usr/bin/xattr -l "$APP"
  • codesign으로 코드 서명 구조를 확인하세요. a sealed resource is missing or invalid가 표시되면 리소스 누락, 설치 파일 손상 또는 서명 후 콘텐츠 변경일 수 있습니다. 다시 받은 원본 설치 파일을 사용하세요.
  • spctl로 시스템 실행 정책의 평가 결과를 확인하세요. rejected는 현재 평가를 통과하지 못했다는 뜻입니다. 뒤에 표시되는 사유를 확인해야 하며, 이것만으로 악성 파일이라고 단정할 수는 없습니다.
  • xattr로 확장 속성을 확인하세요. com.apple.quarantine은 흔히 표시되는 항목으로, 파일에 다운로드 격리 정보가 있다는 뜻입니다. 이 항목만으로 오류 원인을 판단할 수는 없습니다.

‘그래도 열기’를 사용할 수 있는 경우

macOS 13 Ventura, 14 Sonoma, 15 Sequoia에서는 앱을 열려고 시도한 뒤 ‘시스템 설정’ → ‘개인정보 보호 및 보안’으로 이동해 아래쪽의 ‘보안’ 영역을 확인할 수 있습니다. 사용자가 확인해 허용할 수 있는 차단이라면 시스템에 ‘그래도 열기’가 표시될 수 있습니다. 출처와 앱을 확인한 뒤 시스템 안내에 따라 관리자 인증을 진행하세요.

‘손상됨’ 알림이 표시된다고 해서 이 버튼이 항상 나타나는 것은 아닙니다. 시스템에서 컴퓨터를 손상시킬 수 있다고 명시하거나 악성 콘텐츠를 감지한 경우, 또는 서명 검사에서 이상이 발견된 경우에는 시도를 멈추고 배포 정보를 확인하세요. macOS 15에서는 서명이나 공증이 제대로 되지 않은 일부 소프트웨어의 실행 절차가 변경되었습니다. 이전 안내에서 설명하는 Finder 우클릭 후 ‘열기’ 방법을 모든 상황에 적용할 수는 없습니다.

네트워크 확장 권한: 먼저 클라이언트의 트래픽 처리 방식을 확인하세요

시스템 프록시, TUN, Network Extension은 서로 다른 기능입니다. 시스템 프록시는 프록시 설정을 따르는 앱에 주로 적용됩니다. TUN은 가상 네트워크 인터페이스를 통해 트래픽을 처리합니다. Network Extension은 macOS가 제공하는 네트워크 확장 기능입니다. mihomo 기반 클라이언트 중에는 권한이 필요한 서비스를 사용해 utun 인터페이스를 만드는 경우가 있으며, 이때 별도의 시스템 네트워크 확장을 승인할 필요는 없습니다.

확장 권한이 필요한 경우의 시스템 설정 위치

  • macOS 15: ‘시스템 설정’ → ‘일반’ → ‘로그인 항목 및 확장 프로그램’으로 이동하세요. ‘확장 프로그램’ 영역에서 ‘네트워크 확장’을 확인하고, 세부 정보에서 해당 클라이언트나 개발자 항목이 맞는지 확인하세요.
  • macOS 13, 14: 시스템 소프트웨어가 차단되었다는 알림이 표시되면 ‘시스템 설정’ → ‘개인정보 보호 및 보안’에서 해당 개발자의 ‘허용’ 옵션이 있는지 확인하세요. VPN 또는 필터 설정은 ‘시스템 설정’ → ‘네트워크’ → ‘VPN 및 필터’에서 확인할 수 있습니다.
  • 관리 기기: 스위치가 비활성화되어 있거나 조직에서 관리한다는 알림이 표시되면 내용을 기록하고 관리자에게 문의하세요. 기기 관리 정책으로 확장 프로그램 설치, VPN 설정 또는 백그라운드 서비스가 제한될 수 있습니다.

현재 설치된 앱의 개발자 정보와 일치하는 항목만 허용하세요. 시스템에서 재시작을 요구하면 작업을 저장한 뒤 재시작하세요. 재시작을 요구하지 않는다면 먼저 클라이언트를 종료했다가 다시 여세요. 목록에 해당 항목이 없고 확장 프로그램 설치 알림도 없다면, 존재하지 않는 스위치를 찾아 설정을 계속 바꾸지 말고 클라이언트 로그에서 구현 방식을 확인하세요.

키체인 암호 팝업이 반복될 때: 항목, 암호, 앱 확인

팝업에서 어떤 암호를 요구하는지 먼저 확인하세요

‘키체인에 저장된 기밀 정보에 접근하려고 합니다’는 보통 자격 증명을 읽으려는 요청입니다. ‘변경하려고 합니다’는 관리자 권한을 요구하는 경우가 있습니다. 두 알림을 같은 방식으로 처리하면 안 됩니다. ‘로그인’ 키체인은 보통 계정에 로그인할 때 잠금이 해제됩니다. 다른 방법으로 계정 암호를 재설정했다면 키체인 암호는 이전 암호일 수 있습니다.

  1. Spotlight에서 ‘키체인 접근’을 검색해 열고, 사이드바에서 ‘로그인’을 선택한 다음 잠겨 있는지 확인하세요.
  2. 팝업에 표시된 항목 이름을 검색하세요. 항목을 열어 ‘이름’, ‘종류’, ‘계정’, ‘접근 제어’ 정보를 확인하고, 이름에 Clash가 들어 있다는 이유만으로 삭제하지 마세요.
  3. 접근을 요청한 프로세스를 확인하세요. 커널이나 보조 프로그램으로 표시된다면 해당 프로그램의 경로가 ‘응용 프로그램’ 폴더에 설치된 현재 앱과 일치하는지 확인하세요.
  4. 요청이 방금 수행한 작업과 관련 있는지 확인한 뒤 ‘허용’을 선택해 한 번 확인할 수 있습니다. 해당 프로그램을 확실히 신뢰하고 접근 목적도 분명한 경우에만 ‘항상 허용’을 고려하세요.

업데이트 후 요청이 반복되는 흔한 원인

앱을 업데이트하면 서명에 사용된 식별 정보가 달라질 수 있고, 설치 위치에 따라 보조 프로그램의 경로도 바뀔 수 있습니다. 이전 버전은 다운로드 폴더에서 실행되고 새 버전은 ‘응용 프로그램’ 폴더에 설치되어 있다면, 서로 다른 프로세스가 같은 자격 증명을 반복해서 요청할 수 있습니다. 먼저 실행 중인 앱을 모두 종료하고 설치 위치를 하나만 남긴 다음 ‘활성 상태 보기’에서 프로세스를 확인하세요.

로그인 키체인은 잠금 해제되지만 특정 항목만 계속 요청한다면, 관련 서비스 자격 증명을 백업하고 다시 로그인할 수 있는지 확인하세요. 그런 다음 해당 앱의 만료된 항목만 정리하고 클라이언트에서 다시 저장하도록 하세요. ‘시스템’ 키체인, 루트 인증서 또는 다른 앱의 항목을 한꺼번에 삭제하지 마세요. 기본 키체인을 재설정하면 저장된 암호에 영향을 줍니다. 결과를 충분히 이해한 경우에만 최후의 수단으로 고려하고, 처음부터 시도하지 마세요.

TUN 권한 오류: 서비스, 인터페이스, 라우팅, DNS 순으로 확인

시스템 프록시와 TUN을 따로 테스트하세요

먼저 TUN을 끄고 시스템 프록시만 켠 다음, 평소 안정적으로 접속되는 웹사이트를 브라우저에서 열어 보세요. 시스템 프록시도 작동하지 않으면 구독 노드, 포트, 규칙, 네트워크 연결을 먼저 확인하세요. 시스템 프록시는 정상인데 TUN만 실패한다면 권한이 필요한 서비스와 가상 인터페이스를 집중적으로 점검하세요. 이렇게 하면 노드 문제를 시스템 권한 문제로 오해하는 일을 줄일 수 있습니다.

클라이언트에 ‘서비스 설치’, ‘서비스 복구’ 등의 메뉴가 있다면 먼저 현재 버전의 안내를 확인하고 클라이언트 자체 기능으로 설치하세요. 설치에 관리자 권한이 필요하면 팝업에서 어떤 프로그램이 요청하는지 확인하세요. 업데이트 후 보조 프로그램 버전이 맞지 않는다면 클라이언트를 종료한 뒤 자체 메뉴에서 서비스를 복구하세요. /Library/PrivilegedHelperTools에 있는 정체를 알 수 없는 파일을 직접 삭제하지 마세요.

TUN 활성화 전후의 로그를 보관하세요

재현 절차를 명확히 기록하세요. 현재 시간을 적고 TUN을 켠 뒤 약 10초 기다렸다가 끄고, 해당 시간대의 로그를 내보내세요. permission denied, operation not permitted, address already in use, failed to create를 찾아보세요. 이런 키워드는 문제를 좁히기 위한 단서일 뿐이므로 앞뒤 로그와 함께 확인해야 합니다.

/sbin/ifconfig
/usr/sbin/scutil --proxy
/usr/sbin/scutil --dns
/usr/sbin/netstat -rn -f inet
/usr/sbin/lsof -nP -iTCP:7890 -sTCP:LISTEN
  • ifconfig로 인터페이스 변화를 확인할 수 있지만, utun은 다른 VPN이나 시스템 서비스에서 사용할 수도 있습니다. 개수가 늘었다고 Clash가 트래픽을 정상적으로 처리한다는 뜻은 아닙니다.
  • scutil --proxy로 시스템 프록시 설정을 확인할 수 있습니다. TUN이 정상 작동 중이어도 여기에 HTTP 프록시가 활성화되어 있지 않을 수 있습니다.
  • scutil --dns로 시스템 리졸버 상태를 확인할 수 있습니다. 이 결과만으로 클라이언트 내부 DNS나 DNS 가로채기가 적용되었다고 판단할 수는 없습니다.
  • netstat으로 라우팅 테이블을 비교할 수 있습니다. TUN 구현 방식에 따라 라우팅 구조가 다를 수 있으므로 기본 경로 하나만 보고 판단하지 마세요.
  • lsof로 예시 포트 7890을 확인할 수 있습니다. 흔히 사용하는 프록시 포트일 뿐 고정값은 아닙니다. 현재 설정에서 실제로 수신 대기 중인 포트로 바꾸세요. 권한이 부족하면 결과가 일부만 표시될 수 있습니다.

문제를 확인하는 동안 다른 VPN이나 네트워크 필터 도구를 잠시 종료하고, 변화를 기록한 뒤 다시 실행할 수 있습니다. 인터페이스는 만들어졌지만 도메인 이름이 해석되지 않는다면 DNS 설정을 확인하세요. 로그에 포트 충돌이 표시되면 관리자 암호를 계속 입력하기보다 해당 포트를 사용하는 프로세스부터 확인하세요. 자세한 항목 설명은 고급 설정에서 확인할 수 있습니다.

네트워크 복구 및 문제 정보 정리

클라이언트를 종료한 뒤에도 네트워크가 비정상이라면 클라이언트를 다시 열고 TUN과 시스템 프록시를 차례로 끈 다음 정상적으로 종료하세요. 필요하면 ‘시스템 설정’ → ‘네트워크’ → 현재 네트워크 연결 → ‘세부사항’ → ‘프록시’에서 로컬 주소를 가리키는 프록시 설정이 남아 있는지 확인하세요. 이번 작업으로 추가된 설정만 제거하세요. 회사 네트워크에서 필요한 프록시, PAC, DNS 설정은 유지해야 합니다.

이어서 ‘VPN 및 필터’에 작동 중인 연결이 남아 있는지 확인하세요. 네트워크 설정 전체를 초기화하거나 가상 인터페이스를 모두 삭제하는 것은 첫 번째 해결 방법이 아닙니다. 특정 설정이 이번 설치 과정에서 추가된 것이 확실하다면, 기록해 둔 내용을 기준으로 하나씩 되돌리세요. 변경할 때마다 웹페이지 접속과 도메인 이름 해석을 확인하세요.

문제 신고에 필요한 최소 정보

  • macOS 전체 버전, 칩 종류, 클라이언트 버전, 커널 버전
  • 문제가 발생한 단계(앱 실행, 시스템 프록시, TUN)와 처음 발생했을 때 수행한 작업
  • 시스템 팝업 원문, 서명 검사 결과, 오류 시점 전후 약 30초간의 관련 로그
  • 다른 VPN을 함께 실행 중인지, 조직에서 관리하는 기기인지, 서비스 복구 후 달라진 점이 있는지

문제 해결 순서는 설치 파일과 앱 식별 정보 → 시스템 실행 권한 → 권한이 필요한 서비스 또는 확장 → TUN 인터페이스와 라우팅 → DNS로 유지하세요. 키체인 팝업은 자격 증명 접근 문제로 따로 처리하세요. 한 번에 한 가지씩만 변경하고 결과를 기록하면 어떤 단계에서 정상화되었는지 확인하기 쉽습니다.