먼저 구분하기: 앱 실행, 네트워크 권한, 자격 증명 접근
macOS용 Clash 클라이언트는 모두 같은 권한 절차를 거치지 않습니다. 앱 창, Clash Meta(mihomo) 코어, 권한이 필요한 보조 프로그램, 네트워크 확장은 서로 다른 구성 요소입니다. 시스템 프록시만 사용하는 클라이언트가 있는가 하면, 보조 프로그램으로 TUN을 시작하거나 Apple의 네트워크 확장 기능을 사용하는 클라이언트도 있습니다. TUN 스위치가 있다고 해서 반드시 네트워크 확장을 승인해야 하는 것은 아닙니다.
해결을 시작하기 전에 팝업에 표시된 문구, 요청을 보낸 프로그램 이름, 팝업이 나타난 시점을 기록하세요. 앱 창이 뜨기도 전에 시스템이 실행을 차단했다면 실행 제한을 확인합니다. TUN을 켤 때만 실패한다면 보조 프로그램이나 네트워크 권한을 확인하고, 창은 열리지만 구독 자격 증명을 읽을 때 암호를 요구한다면 키체인을 살펴보세요. 세 가지 문제를 모두 설치 파일 손상으로 취급하지 마세요.
| 알림 또는 증상 | 먼저 확인할 항목 | 지금은 하지 않아도 되는 작업 |
|---|---|---|
| 개발자를 확인할 수 없음, Apple에서 악성 소프트웨어가 포함되어 있는지 확인할 수 없음 | 다운로드 출처, 서명, ‘개인정보 보호 및 보안’의 실행 알림 | 구독이나 DNS를 계속 변경하기 |
| 앱이 손상되어 컴퓨터를 손상시킬 수 있음 | 전체 알림 문구, 다운로드 출처, 프로젝트 릴리스 안내 | 격리 속성을 바로 제거하거나 시스템 보호를 끄기 |
| 시스템 확장이 차단됨, VPN 구성 추가 요청 | 확장 프로그램의 개발자, 네트워크 구성, 관리 정책 | 로그인 키체인 전체 삭제 |
| 프로그램에서 로그인 키체인의 기밀 정보를 사용하려고 함 | 요청 프로그램, 해당 항목, 접근 제어 | 구독 암호를 시스템 권한 승인 창에 입력하기 |
설치 전에 macOS 버전, 칩, 앱 위치 확인
macOS 버전과 프로세서 아키텍처 기록
Apple 메뉴 → ‘이 Mac에 관하여’를 클릭해 macOS 버전과 칩을 확인하세요. 다운로드 페이지에서 Apple Silicon은 일반적으로 arm64, Intel은 x86_64에 해당합니다. Universal 패키지에는 두 아키텍처가 모두 포함될 수 있으므로 프로젝트 릴리스 안내를 확인하세요. Apple Silicon에서 일부 Intel 앱을 실행할 때 Rosetta 설치를 요구할 수 있지만, 이는 네트워크 확장 승인과는 관계없습니다.
유지관리자에게 정보를 전달해야 한다면 ‘터미널’에서 다음 읽기 전용 명령을 실행하세요. 첫 번째 명령은 macOS 버전을, 두 번째 명령은 현재 실행 환경의 아키텍처를 표시합니다. 터미널 자체가 Rosetta로 실행 중이면 두 번째 결과가 x86_64일 수 있으므로 ‘이 Mac에 관하여’의 정보와 함께 확인해야 합니다.
sw_vers
uname -m
앱을 한 곳에 두고 실행하기
- 프로젝트 릴리스 페이지나 출처가 확인된 곳에서 현재 시스템에 맞는 설치 파일을 받고, 필요한 최소 macOS 버전을 확인하세요.
- DMG 파일이라면 앱을 ‘응용 프로그램’ 폴더로 드래그한 뒤 디스크 이미지를 추출 해제하세요. DMG 안에서 계속 앱을 실행하지 마세요.
- 다운로드 폴더, 데스크탑, 이전 디스크 이미지에 있는 다른 클라이언트를 종료하고, 이후에는 ‘응용 프로그램’에서만 실행하세요.
- 클라이언트 버전과 코어 이름을 기록하세요. 앱 업데이트와 코어 업데이트는 항상 함께 이루어지는 것이 아니므로 오류를 신고할 때 각각 구분해 알려야 합니다.
앱 위치를 고정하면 잘못된 복사본을 실행하거나 보조 프로그램 경로가 달라지는 등의 혼선을 줄일 수 있지만, 키체인에서 더 이상 암호를 묻지 않는다고 보장할 수는 없습니다. 프로그램 서명, 항목 권한, 시스템 보안 정책도 승인 결과에 영향을 줍니다.
‘개발자를 확인할 수 없음’과 ‘손상됨’은 따로 해결하기
시스템에 ‘그래도 열기’가 표시되는 경우
출처가 확인됐고 시스템에서 아직 승인되지 않은 앱이라면 먼저 평소처럼 한 번 실행해 보세요. 그런 다음 Apple 메뉴 → ‘시스템 설정’ → ‘개인정보 보호 및 보안’으로 이동해 ‘보안’ 영역에 방금 차단된 앱과 ‘그래도 열기’ 버튼이 표시되는지 확인합니다. 앱 이름이 방금 실행한 앱과 일치할 때만 진행하고, 시스템 안내에 따라 인증을 완료하세요.
macOS 15에서는 ‘Control 키를 누른 채 아이콘을 클릭하면 항상 우회할 수 있다’는 이전 안내를 더 이상 믿지 마세요. 서명이 올바르지 않거나 공증되지 않은 일부 소프트웨어는 ‘개인정보 보호 및 보안’에서 처리해야 합니다. 세부 버전에 따라 알림 문구가 다를 수 있으며, 차단 사유에 따라 버튼이 나타나지 않을 수도 있습니다.
- 악성 소프트웨어를 확인할 수 없다는 알림: 출처를 추가로 확인해야 한다는 보안 안내이며, 앱의 안전성이 확인되었다는 뜻은 아닙니다.
- 컴퓨터를 손상시키거나 휴지통으로 이동될 수 있다는 알림: 실행을 중단하고 프로젝트에서 해당 빌드의 배포를 철회했는지 확인한 뒤 신뢰할 수 있는 버전을 다시 받으세요.
- 손상되었다는 알림: 다운로드가 완료되지 않았거나 서명에 문제가 있거나 앱이 변경되었을 수 있습니다. 이 문구만으로 원인을 단정할 수는 없습니다.
- 이 Mac에서 지원되지 않는다는 알림: 먼저 칩 아키텍처와 최소 시스템 요구 사항을 확인하세요. 권한 승인 버튼으로 호환성 문제를 해결할 수는 없습니다.
설치 파일을 다시 받아도 같은 경고가 나타나면 팝업 화면, macOS 버전, 설치 파일 출처를 기록해 두세요. 학교나 회사에서 관리하는 Mac은 관리 정책에 따라 ‘그래도 열기’가 제한될 수 있습니다. 관리자에게 문의하고 기기 관리 기능을 우회하지 마세요.
네트워크 확장, VPN 구성, TUN 보조 프로그램 권한
먼저 클라이언트가 사용하는 방식을 확인하기
시스템 프록시는 대개 HTTP, HTTPS 또는 SOCKS 프록시 설정만 변경하며, 해당 설정을 따르는 앱에서 사용됩니다. TUN은 가상 네트워크 인터페이스를 통해 트래픽을 처리합니다. mihomo는 TUN을 지원하지만 macOS 클라이언트가 권한을 얻는 방법은 앱 구현에 따라 다릅니다. 권한이 필요한 서비스를 사용하거나 다른 네트워크 구성 요소를 사용할 수 있습니다. 네트워크 확장 항목이 없다는 사실만으로 TUN 설치가 실패했다고 판단할 수는 없습니다.
클라이언트에서 서비스나 보조 프로그램 설치를 명시적으로 안내한다면 해당 클라이언트가 제공하는 설치 경로만 사용하고, 시스템 승인 창에 표시된 앱 이름을 확인하세요. 이 과정에는 관리자 인증이 필요한 경우가 많으며 구독 서비스 계정 암호와는 무관합니다. 출처가 불분명하거나 관리자 권한으로 실행하라는 긴 터미널 명령은 사용하지 마세요.
macOS 15에서 확장 프로그램 및 네트워크 구성 확인 위치
- 시스템 확장이 차단되었다는 팝업이 표시되면 ‘시스템 설정’ → ‘일반’ → ‘로그인 항목 및 확장 프로그램’으로 이동해 ‘확장 프로그램’ 영역의 ‘네트워크 확장’에서 개발자와 구성 요소 이름을 확인하세요.
- 시스템에서 VPN 구성을 추가하라는 요청이 표시되면 먼저 요청에 나온 앱 이름을 읽고 허용 여부를 결정하세요. 이후 ‘시스템 설정’ → ‘네트워크’ → ‘VPN 및 필터’에서 관련 구성을 확인할 수 있습니다.
- macOS 13 및 14에서는 일부 확장 프로그램 승인 항목이 ‘시스템 설정’ → ‘개인정보 보호 및 보안’ 하단에 표시됩니다. 팝업의 안내를 따르세요. 최신 버전 화면에 특정 항목이 있다는 이유만으로 이전 버전의 시스템에 문제가 있다고 판단하지 마세요.
- 승인한 뒤에는 시스템 안내에 따라 앱을 종료하거나 다시 열거나 재시동하세요. 코어가 실행 중일 때 여러 보조 프로그램 복사본을 연달아 설치하지 마세요.
‘백그라운드에서 허용’은 주로 백그라운드 항목 실행 권한을 뜻하며, 네트워크 확장이 승인되었다는 의미는 아닙니다. 마찬가지로 ‘전체 디스크 접근 권한’을 부여해도 네트워크 권한을 대신할 수는 없습니다. 해당 기능에 꼭 필요한 권한이라고 클라이언트 문서에 명시된 경우에만 별도로 검토하세요.
systemextensionsctl list
위의 읽기 전용 명령으로 시스템 확장 프로그램과 상태를 확인해 팝업에 표시된 개발자 정보와 비교할 수 있습니다. 일반 보조 프로그램 전체가 표시되는 것은 아니며, 모든 VPN 구성 요소가 정상 작동한다는 뜻도 아닙니다. 목록이 비어 있다는 이유만으로 시스템을 다시 설치하지 마세요.
키체인에서 암호를 계속 묻는 경우: 먼저 요청 주체 확인
키체인 팝업은 ‘로그인’ 키체인을 잠금 해제하라는 요청일 수도 있고, 프로그램이 키체인에 저장된 특정 암호 항목을 읽으려는 요청일 수도 있습니다. 두 경우의 해결 방법은 다릅니다. 먼저 팝업에 항목 이름, 요청 프로그램, ‘거부’, ‘허용’, ‘항상 허용’ 등의 선택지가 표시되는지 확인하세요. 요청자는 클라이언트나 보조 구성 요소일 수 있으므로 아이콘이 비슷하다는 이유만으로 승인하지 마세요.
어떤 암호를 입력해야 하나요?
- 시스템에서 보조 프로그램 설치를 관리자에게 승인받으라고 하면 보통 이 Mac의 관리자 계정 암호를 입력하거나 시스템이 제공하는 Touch ID를 사용합니다.
- 팝업에 ‘로그인’ 키체인 암호를 입력하라고 명시되어 있다면, 일반적으로 해당 키체인을 생성했거나 마지막으로 동기화했을 때 사용한 이 Mac의 로그인 암호를 뜻합니다.
- 복구 절차 등으로 최근 계정 암호를 재설정했다면 키체인에는 이전 암호가 남아 있을 수 있습니다. 이 경우 현재 로그인 암호로 잠금을 해제하지 못할 수 있습니다.
- Apple 계정 암호, 노드 암호, 구독 링크를 이 Mac의 키체인 승인 창에 입력하면 안 됩니다.
‘키체인 접근’에서 해당 항목 찾기
Spotlight에서 ‘키체인 접근’을 검색해 연 다음 ‘로그인’ 키체인을 선택하고 팝업에 표시된 항목 이름을 검색하세요. 최신 macOS의 ‘암호’ 앱은 ‘키체인 접근’과 다른 관리 화면이며, 일부 앱 자격 증명은 여전히 후자에서 확인해야 합니다. 항목을 찾으면 정보 창을 열어 이름, 계정, 관련 서비스를 확인하세요. ‘접근 제어’ 탭이 있다면 접근이 허용된 앱도 확인합니다.
- 알 수 없는 요청은 먼저 거부하고 클라이언트를 종료해 요청도 함께 멈추는지 확인하세요.
- ‘응용 프로그램’ 폴더에 있는 대상 복사본만 실행해 같은 작업을 한 번 수행한 뒤, 팝업이 예상한 항목을 가리키는지 확인하세요.
- 출처를 확인한 뒤에는 우선 한 번만 ‘허용’을 선택해 기능이 복구되는지 확인하고, 이후 지속적인 권한을 부여할지 결정할 수 있습니다.
- 업데이트할 때마다 반복해서 암호를 묻는다면 이전 및 새 앱 버전과 요청 프로그램 이름을 기록하고, 서명이나 보조 구성 요소가 변경되었는지 확인하세요.
‘항상 허용’은 해당 항목과 접근 조건에만 적용되며 알림을 전역적으로 끄는 기능이 아닙니다. 모든 앱이 해당 항목에 접근하도록 설정하거나 ‘로그인’ 키체인 암호를 비워 두지 마세요. 팝업이 계속 나타나는 원인은 잘못된 암호, 키체인 잠금, 접근 조건 변경, 구성 요소 중복 실행 등일 수 있으므로 하나씩 구분해야 합니다.
승인 완료 후 프록시 및 네트워크 연결 확인
앱이 정상적으로 열리는 것과 프록시가 작동하는 것은 별개의 확인 단계입니다. 먼저 TUN은 끄고 클라이언트의 시스템 프록시만 활성화한 다음, 코어가 정상적으로 시작되는지 확인하고 브라우저 요청이 연결 또는 로그 화면에 표시되는지 살펴보세요. 이렇게 하면 앱 실행, 프록시 수신 대기, 가상 네트워크 인터페이스 문제를 나눠 확인할 수 있어 여러 설정을 동시에 바꾼 뒤 원인을 놓치는 일을 방지할 수 있습니다.
프록시 포트와 수신 대기 프로세스 확인
터미널에서 다음 읽기 전용 명령을 실행하세요. 여기서는 클라이언트의 실제 설정이 mixed-port: 7890인 경우를 예로 듭니다. 설정 화면에 다른 포트가 표시되면 실제 값을 사용하세요. 7890이 모든 클라이언트의 고정 기본 포트는 아닙니다.
scutil --proxy
lsof -nP -iTCP:7890 -sTCP:LISTEN
scutil --proxy로 현재 프록시 구성을 확인하고 활성화 상태, 호스트, 포트를 살펴보세요. 일반 HTTP/HTTPS 시스템 프록시를 사용한다면 해당 항목이 활성화되어 있어야 합니다. PAC를 사용한다면 자동 프록시 구성 항목을 확인하세요. lsof는 지정한 포트에서 수신 대기 중인 프로세스를 확인하는 명령입니다. 일반 사용자 계정에서는 조회 권한이 있는 프로세스만 표시될 수 있습니다.
- 시스템 프록시는 로컬 포트를 가리키지만 해당 포트에서 수신 대기 중인 프로세스가 없음: 네트워크 확장을 다시 승인하기보다 코어 시작 로그, 구성 로드 오류, 포트 충돌을 먼저 확인하세요.
- 시스템 프록시는 꺼져 있지만 TUN은 켜져 있음: 프록시 항목만으로 실패 여부를 판단할 수 없습니다. TUN 상태, 라우팅, 클라이언트 연결 기록도 확인해야 합니다.
- 요청은 로그에 표시되지만 연결 시간이 초과됨: 구독 유효성, 아웃바운드 노드, 규칙 적용 결과를 확인하세요. 보통 이 단계에서는 실행 권한이 더 이상 문제의 원인이 아닙니다.
- 특정 앱만 프록시를 사용하지 않음: 해당 앱이 시스템 프록시 설정을 따르는지 확인하세요. 시스템 프록시와 TUN은 트래픽을 처리하는 범위가 다릅니다.
시스템 프록시가 정상 작동하는 것을 확인한 뒤 TUN을 켜세요. 이때부터 실패한다면 전환 시점의 로그를 보관하고 서비스 권한, 가상 인터페이스 생성, 라우팅 설정을 중점적으로 확인하세요. 테스트 중에는 트래픽을 처리하는 클라이언트를 하나만 실행하세요. 다른 VPN, 네트워크 필터, 유사 TUN 서비스는 각 앱 화면에서 정상적으로 연결을 끊고 테스트가 끝난 뒤 다시 연결하세요.
여전히 실패한다면 재현 가능한 정보 정리
문제를 신고하기 전에 ‘앱 실행 → 시스템 프록시 활성화 → TUN 켜기’ 순서로 한 번 재현하고 처음 실패한 단계를 기록하세요. 구독을 반복해서 다시 가져오기보다 권한, 구성, 네트워크 문제를 구분할 수 있는 정보를 보관하는 편이 좋습니다.
- 환경: 정확한 macOS 버전, Apple Silicon 또는 Intel 여부, 관리 대상 기기인지 여부.
- 프로그램: 클라이언트 이름과 버전, 코어 이름, 앱 위치, 이전 복사본이 남아 있는지 여부.
- 알림: 팝업의 전체 문구, 요청 프로그램 이름, 표시 시점, 관련 설정 화면에 나타난 상태.
- 확인 결과: 시스템 프록시 사용 가능 여부, TUN을 켠 뒤에만 오류가 발생하는지 여부, 프록시 수신 대기 포트 존재 여부.
- 관련 로그: 실패 시점 전후의 내용만 남기고, 제출 전에 구독 주소, 토큰, 암호, 개인 네트워크 정보를 가리세요.
클라이언트를 더 이상 사용하지 않는다면 먼저 앱에서 시스템 프록시와 TUN을 끈 뒤 프로젝트에서 제공하는 서비스 제거 방법으로 보조 구성 요소를 정리하세요. 앱 아이콘을 삭제해도 시스템 프록시, 백그라운드 서비스, VPN 구성이 함께 제거되는 것은 아닙니다. 제거 후 인터넷에 연결되지 않는다면 먼저 ‘네트워크’ 설정에서 남아 있는 프록시를 확인하세요. 정체를 모르는 시스템 파일을 한꺼번에 삭제하지 마세요.