먼저 권한 알림을 네 가지로 구분하세요

macOS용 Clash 클라이언트는 모두 같은 방식으로 동작하지 않습니다. Clash Verge Rev, ClashX Meta 등은 인터페이스와 코어 실행 방식, 권한 처리 방식이 서로 다릅니다. mihomo 코어를 사용한다고 해서 반드시 Apple 네트워크 확장으로 트래픽을 처리하는 것도 아닙니다. 알림에 표시된 앱 이름과 개발자, 요청 내용을 먼저 확인하세요.

첫 실행 허용, 네트워크 확장 승인, 특권 보조 서비스 설치, 키체인 접근은 각각 다른 기능입니다. 앱 실행을 허용해도 보조 서비스 설치까지 허용되는 것은 아니며, 서비스를 설치해도 시스템 프록시가 자동으로 켜지는 것은 아닙니다. 모든 알림을 ‘Clash 권한 문제’로 뭉뚱그리지 마세요.

알림 또는 증상관련 기능우선 확인할 항목
개발자를 확인할 수 없거나 앱을 열 수 없음Gatekeeper 실행 검사설치 경로, 서명, 개인정보 보호 및 보안 설정
VPN 구성 추가 또는 네트워크 확장 허용 요청VPN 구성, Network Extension 또는 시스템 확장요청한 앱과 확장 유형
보조 도구 설치 중 관리자 암호 요청특권 서비스 설치현재 클라이언트가 직접 시작한 설치 작업인지 확인
‘로그인’ 키체인 항목에 접근 요청보호된 자격 증명 접근키체인 항목 이름과 접근을 요청한 프로세스

첫 실행이 차단될 때: 설치 위치와 출처부터 확인

앱을 ‘응용 프로그램’ 폴더로 옮긴 다음 실행하세요

  1. Apple 메뉴의 ‘이 Mac에 관하여’에서 칩 종류를 확인하세요. Apple Silicon 또는 arm64 Mac에는 Apple Silicon 또는 arm64 설치 파일을, Intel Mac에는 x64 설치 파일을 선택하세요.
  2. 다운로드한 디스크 이미지를 열고 앱을 /Applications 폴더로 드래그하세요. 디스크 이미지에서 실행 중인 앱을 종료한 뒤, 설치된 앱을 실행하세요.
  3. 시스템이 실행을 차단하면 먼저 다운로드 출처와 앱 이름을 확인하세요. 출처를 신뢰할 수 있고 개발자 확인 문제로만 차단된 앱이라면, 시스템 설정에서 해당 앱만 예외로 허용하세요.

macOS Ventura 13, Sonoma 14, Sequoia 15에서는 ‘시스템 설정’ → ‘개인정보 보호 및 보안’ 하단에서 보안 알림을 확인하세요. 조건이 맞으면 ‘그래도 열기’가 표시됩니다. macOS Monterey 12 및 이전 버전에서는 ‘시스템 환경설정’ → ‘보안 및 개인정보 보호’ → ‘일반’을 확인하세요. 시스템 버전에 따라 안내 문구는 다를 수 있습니다.

일부 구버전에서는 Finder에서 앱을 Control 키를 누른 채 클릭한 다음 ‘열기’를 선택할 수 있습니다. macOS Sequoia 15에서는 일부 Gatekeeper 검사를 우회하는 절차가 변경되었습니다. 마우스 오른쪽 버튼으로 열면 모든 버전에서 해결된다고 단정하지 마세요.

네트워크 확장과 TUN은 같은 설정이 아닙니다

TUN은 가상 네트워크 인터페이스를 사용하는 방식입니다. 클라이언트에 따라 특권 서비스를 통해 코어를 실행하고 인터페이스와 라우팅을 설정할 수도 있고, Apple Network Extension으로 네트워크 트래픽을 처리할 수도 있습니다. ‘VPN 구성 추가’ 또는 ‘시스템 확장 허용’ 알림이 나타나는지는 클라이언트 구현에 따라 다르므로, ‘TUN’이라는 이름만으로 판단할 수 없습니다.

따라서 Clash Verge Rev에서 TUN을 켰는데 VPN 구성 알림이 나타나지 않는다고 해서 설치에 실패한 것은 아닙니다. 다른 클라이언트에 VPN 구성 승인 알림이 나타나더라도 같은 서비스 설치 절차가 필요하다는 뜻은 아닙니다. 해당 클라이언트의 설정 안내와 실행 로그를 기준으로 확인하세요.

알림 유형에 따라 시스템 설정 확인하기

시스템 설정의 메뉴는 macOS 버전과 설치된 구성 요소에 따라 달라집니다. 메뉴를 찾을 수 없다면 시스템 설정 검색창에서 ‘VPN’ 또는 ‘확장’을 검색하세요. 요청 기록도 없고 해당 구성 요소도 없다면, ‘권한을 모두 갖추기 위해’ 다른 소프트웨어를 추가로 설치할 필요는 없습니다.

읽기 전용 명령으로 상태 확인하기

sw_vers
systemextensionsctl list
ifconfig -l
scutil --nc list

sw_vers는 macOS 버전을 표시합니다. systemextensionsctl list는 등록된 시스템 확장을 나열하지만, 앱 확장이나 특권 서비스를 모두 보여 주지는 않습니다. ifconfig -l로 인터페이스 이름을 확인할 수 있고, scutil --nc list는 시스템에 등록된 네트워크 연결 서비스를 확인하는 데 도움이 됩니다.

utun 인터페이스가 보인다는 것은 시스템에 터널 인터페이스가 있다는 뜻일 뿐입니다. iCloud 기능이나 다른 VPN·네트워크 도구도 이를 만들 수 있으므로, ‘utun이 보인다’는 사실만으로 Clash TUN이 트래픽을 정상적으로 처리한다고 판단할 수 없습니다.

서비스 모드 설치: 관리자 승인은 어디에 쓰이나요?

일반 사용자 프로세스는 모든 시스템 수준 라우팅 작업을 직접 수행할 수 없습니다. 일부 클라이언트는 특권 보조 서비스를 사용해 관련 작업을 처리하므로, 그래픽 인터페이스를 항상 관리자 권한으로 실행할 필요가 없습니다. Clash Verge Rev의 서비스 모드는 TUN 트래픽 처리와 관련이 있지만, 서비스 설치 메뉴의 이름과 위치는 클라이언트 버전에 따라 달라집니다. 현재 버전의 설정에서 ‘서비스 모드’ 또는 서비스 상태를 확인하세요.

  1. 시스템 프록시나 라우팅을 변경 중인 다른 클라이언트를 먼저 종료하세요. 여러 프로그램이 동시에 네트워크 설정을 되돌리거나 덮어쓰는 일을 방지할 수 있습니다.
  2. 현재 클라이언트 안에서 서비스 설치 또는 복구를 시작한 다음, 시스템 승인 창에 표시된 앱 이름을 확인하세요.
  3. 관리자 승인이 필요하면 이 Mac의 관리자 계정 자격 증명을 입력하세요. Apple 계정 암호나 구독 서비스 암호를 입력하는 곳이 아닙니다.
  4. 설치가 끝나면 클라이언트로 돌아가 서비스 상태를 확인한 뒤 TUN을 별도로 켜세요. 로그에 권한 부족, 인터페이스 생성 실패, 라우팅 추가 실패가 표시되는지 확인하세요.

서비스를 설치한 뒤에도 권한 오류가 발생하면 클라이언트 앱과 보조 서비스가 같은 설치본에서 나온 것인지 먼저 확인하세요. 기존 앱을 덮어쓰거나 앱 복사본을 여러 개 남겨 두면 인터페이스는 업데이트됐지만 서비스는 이전 구성 요소인 상황이 생길 수 있습니다. 클라이언트에 포함된 서비스 복구 기능이나 제거 후 재설치 기능을 우선 사용하고, 출처를 알 수 없는 시스템 파일을 직접 삭제하지 마세요.

키체인 알림: 어떤 항목에 접근하는지 확인하세요

‘앱이 키체인에 저장된 기밀 정보를 사용하려고 합니다’라는 알림은 해당 프로세스가 보호된 항목을 읽으려 한다는 뜻입니다. 항목은 클라이언트에 저장된 자격 증명이나 프록시 인증 정보 등과 관련될 수 있으며, 구체적인 용도는 클라이언트 구현에 따라 다릅니다. 구독 링크를 가져올 때 반드시 필요한 단계는 아니며, 알림이 나타났다는 이유만으로 요청이 정당하다고 단정할 수도 없습니다.

관리자 암호와 키체인 암호 구분하기

시스템 복구 절차를 사용하거나 관리자가 계정 암호를 재설정한 뒤에도 ‘로그인’ 키체인에는 이전 암호가 설정되어 있을 수 있습니다. 새 로그인 암호로 데스크톱에 들어갈 수 있어도 기존 키체인이 잠금 해제되지는 않을 수 있습니다. Apple의 키체인 복구 절차를 따르고, 관련 없는 구독 암호를 계속 입력하지 마세요.

‘키체인 접근’에서 요청 확인하기

  1. Spotlight에서 ‘키체인 접근’을 검색해 여세요. 최신 시스템의 ‘암호’ 앱이 모든 키체인 항목 관리 기능을 대신하지는 않습니다.
  2. ‘로그인’ 키체인을 선택한 다음, 알림에 표시된 항목 이름으로 검색하세요. 추측만으로 항목을 여러 개 삭제하지 마세요.
  3. 해당 항목의 정보를 열어 이름과 유형, 확인할 수 있는 접근 제어 정보를 살펴보세요. 접근을 요청한 프로세스가 현재 설치된 클라이언트에 속하는지도 확인하세요.
  4. 이번 요청이 타당하다고 확인한 뒤 ‘허용’을 선택하면 이번 한 번의 접근을 승인할 수 있습니다. 앱의 신원과 지속적으로 사용할 필요성을 확인한 경우에만 ‘항상 허용’을 고려하세요.

앱을 업데이트한 뒤 다시 묻는다고 해서 반드시 암호가 틀린 것은 아닙니다. 앱 서명이나 경로, 키체인 항목의 접근 제어 조건이 바뀌면 다시 확인을 요청할 수 있습니다. 실행할 때마다 반복된다면 항목 이름과 요청 프로세스를 기록하고, 다운로드 폴더와 ‘응용 프로그램’에 있는 앱을 동시에 실행 중인지 확인하세요.

프록시와 관계없는 민감한 항목에 대한 요청이라면 먼저 ‘거부’를 선택한 다음 해당 기능의 출처를 확인하세요. 기본 키체인을 재설정하면 기존에 저장한 암호를 더 이상 사용할 수 없을 수 있으므로, 일반적인 첫 번째 해결책으로 삼지 마세요.

승인 후 확인하기: 포트, 시스템 프록시, 라우팅을 각각 점검하세요

권한 승인은 시스템이 특정 작업을 허용했다는 뜻일 뿐입니다. 네트워크 연결을 확인하려면 코어 실행 여부, 설정 로드 여부, 규칙과 정책 그룹의 정상 작동도 확인해야 합니다. 먼저 TUN을 끄고 시스템 프록시만 확인하세요. 시스템 프록시가 작동하면 그다음 TUN이 필요한 앱을 테스트하세요.

1단계: 실제로 열려 있는 포트 확인

아래 예시는 현재 설정된 혼합 프록시 포트가 7890이라고 가정합니다. 설정 예시일 뿐 모든 클라이언트의 기본값은 아닙니다. 설정에 다른 포트가 표시된다면 명령에 입력하는 숫자도 함께 바꾸세요.

mixed-port: 7890
allow-lan: false
mode: rule

위 내용은 설정 일부일 뿐, 노드·정책 그룹·규칙이 포함된 전체 Profile을 대신하지 않습니다. 예시를 적용하려고 구독 설정을 덮어쓰지 마세요. mixed-port는 HTTP와 SOCKS 프록시 연결을 받을 수 있습니다. 외부 제어 인터페이스는 용도가 다르므로, 설정에서 9090을 사용하더라도 이를 브라우저 프록시 포트로 입력하면 안 됩니다.

lsof -nP -iTCP:7890 -sTCP:LISTEN
scutil --proxy
curl --proxy http://127.0.0.1:7890 --connect-timeout 10 --max-time 20 -I https://example.com

첫 번째 명령으로 포트를 사용하는 프로세스를 확인하고, 두 번째 명령으로 현재 시스템 프록시 상태를 확인하며, 세 번째 명령으로 지정한 프록시 포트를 통해 페이지를 요청합니다. 대상 사이트에서 HTTP 응답을 받으면 해당 프록시 요청은 확인된 것이지만, 모든 웹사이트와 UDP 트래픽, 앱까지 프록시를 거친다는 뜻은 아닙니다.

2단계: 시스템 프록시가 같은 포트를 가리키는지 확인

macOS Ventura 13 및 이후 버전에서는 ‘시스템 설정’ → ‘네트워크’ → 현재 네트워크 서비스 → ‘세부사항’ → ‘프록시’로 이동하세요. 클라이언트 설정의 주소와 포트를 비교하세요. 로컬 프록시 주소로는 보통 127.0.0.1을 사용합니다. Wi-Fi와 이더넷은 서로 다른 네트워크 서비스이므로, 연결을 바꾼 뒤 실제로 사용 중인 서비스도 다시 확인해야 합니다.

시스템 프록시가 적용되는지는 각 앱이 해당 설정을 따르는지에 따라 달라집니다. 터미널 프로그램도 시스템 프록시를 자동으로 읽는다고 보장할 수 없습니다. 따라서 위의 curl 명령은 프록시를 명시적으로 지정합니다. 터미널 명령 하나가 직접 연결된다는 이유만으로 네트워크 확장 승인에 실패했다고 판단하지 마세요.

3단계: TUN과 DNS 확인

TUN을 켠 뒤 시스템 프록시를 따르지 않던 대상 앱에서 요청을 보내고, 클라이언트의 연결 기록과 로그를 함께 확인하세요. 연결이 현재 코어로 들어가는 것을 확인한 후에야 어떤 규칙과 정책 그룹이 적용됐는지 판단할 수 있습니다.

로그에 DNS 시간 초과가 표시되면 키체인을 반복해서 승인하지 말고 DNS 리스너와 라우팅, 다른 네트워크 도구와의 충돌을 확인하세요. fake-ip 설정을 사용한다면 도메인 조회가 예상한 경로로 처리되는지도 점검하세요. 가상 인터페이스가 보이는 것만으로 DNS와 트래픽 분배가 모두 올바르다고 볼 수 없습니다.

알림이 반복되거나 인터넷이 끊길 때의 복구 순서

  1. 증상 기록: macOS 및 클라이언트 버전, 알림 원문, 오류가 발생한 시점(실행, 서비스 설치, TUN 활성화)을 기록하세요. 스크린샷을 공유할 때는 구독 주소와 토큰, 계정 정보를 가리세요.
  2. 현재 클라이언트의 TUN 끄기: 클라이언트가 라우팅을 정상적으로 복구하도록 한 뒤 네트워크가 다시 연결되는지 확인하세요.
  3. 시스템 프록시 끄기: 현재 네트워크 서비스의 ‘프록시’ 페이지를 확인하세요. 앱이 비정상 종료된 뒤 로컬 프록시 설정만 남고 포트의 리스너 프로세스가 중단되면 브라우저 요청이 응답하지 않는 포트로 전달될 수 있습니다.
  4. 충돌 구성 요소를 하나씩 끄기: 다른 VPN 연결을 잠시 해제하고, 필요한 경우 확인된 필터를 비활성화한 다음 프록시 클라이언트 하나만 실행해 테스트하세요. 네트워크 구성을 한꺼번에 모두 삭제하지 마세요.
  5. 문제가 생긴 구성 요소만 복구: 서비스 오류는 서비스 복구 메뉴를 사용하고, 키체인 오류는 해당 항목을 확인하며, 시스템 확장 오류는 관련 승인 기록을 확인하세요. 작동 중인 Profile은 유지한 채 설정을 조정하세요.

클라이언트를 바꾸기 전에 이전 클라이언트의 시스템 프록시와 TUN을 끄고, 제공되는 서비스 제거 기능으로 보조 구성 요소를 정리하세요. 앱 아이콘을 휴지통으로 옮겨도 시스템 확장, VPN 구성, 백그라운드 서비스가 제거되지 않을 수 있습니다. 반대로 소속을 확인할 수 없는 구성 요소를 삭제해서도 안 됩니다.