NT-02.1네트워크 확장 프로그램 권한을 수동으로 허용해야 하는 이유
Clash 계열 클라이언트(Clash Verge, Clash Plus 등 mihomo 코어 기반 앱 포함)가 시스템 수준에서 트래픽을 처리하려면 macOS가 제공하는 NetworkExtension 프레임워크가 필요합니다. 이 프레임워크는 macOS Catalina 이후 기존 커널 확장(kext) 방식을 점차 대체했으며, 커널 모드가 아닌 사용자 모드에서 동작해 보안 경계가 더 명확해졌습니다. 다만 그 대가로 새 클라이언트를 설치할 때마다 시스템이 사용자에게 직접 승인을 요구하게 됩니다. 이는 클라이언트의 오류가 아니라 시스템 설계상 당연한 절차입니다.
구체적으로는 클라이언트 실행 후 "시스템 확장 프로그램이 차단되었습니다" 같은 알림이 뜨거나, 설정에서 프록시 모드나 TUN 모드를 켜도 아무 반응이 없고 버튼을 눌러도 다음 단계로 넘어가지 않는 형태로 나타납니다. 이런 상황의 원인은 거의 예외 없이 한 가지, 즉 네트워크 확장 프로그램이 아직 시스템 설정에서 명시적으로 허용되지 않았다는 점입니다. macOS는 네트워크 계층을 넘겨받으려는 확장 프로그램에 대해 기본적으로 보수적인 태도를 취하기 때문에, 클라이언트 자체가 정상이더라도 이 승인 절차를 거쳐야만 실제로 동작합니다.
macOS Ventura(13) 이후로는 네트워크 확장 프로그램 설정 위치가 "보안 및 개인정보 보호" 전체 항목에서 "개인정보 보호 및 보안" 하위의 별도 메뉴로 옮겨졌습니다. 예전 가이드에 나오는 메뉴 경로는 대부분 더 이상 맞지 않으니, 오래된 캡처 화면을 참고하지 말고 아래 안내된 경로를 그대로 따라가면 됩니다.
NT-02.2시스템 설정에서 네트워크 확장 프로그램 단계별로 허용하기
네트워크 확장 프로그램 승인은 두 단계로 나뉩니다. 처음 팝업이 뜰 때 바로 확인하는 방법과, 팝업을 놓쳤거나 잘못 닫았을 때 수동으로 다시 승인하는 방법입니다. 실제로는 알림음에 팝업을 놓치는 경우가 흔하므로 두 방법 모두 알아두는 것이 좋습니다.
- 클라이언트를 실행하고 프록시 모드(또는 TUN 모드)를 켜려고 하면 "네트워크 확장 프로그램"이라는 문구가 포함된 알림이 표시됩니다. 이 알림을 클릭하거나 직접 "시스템 설정"으로 이동하세요.
- "시스템 설정" → "개인정보 보호 및 보안"으로 들어가서 화면 아래쪽에 있는 "네트워크 확장 프로그램" 항목을 찾습니다(일부 버전에서는 "로그인 항목 및 확장 프로그램" 분류 아래에 있습니다).
- 항목을 클릭하면 설치된 클라이언트의 확장 프로그램 이름과 체크박스 상태가 표시됩니다. 해당 클라이언트의 스위치를 켜서 허용 상태로 전환합니다.
- 이때 시스템이 로그인 비밀번호 입력이나 터치 ID 인증을 요구하는 확인 창을 한 번 더 띄울 수 있습니다. 이는 신원 확인 절차일 뿐 클라이언트의 동작이 아니므로 정상적으로 입력하면 됩니다.
- 클라이언트로 돌아가 프록시 모드나 TUN 모드를 다시 켜면 정상적으로 적용되어 상태 표시줄이나 메인 화면에 연결 중 또는 연결됨으로 표시됩니다.
"개인정보 보호 및 보안" 페이지에서 "네트워크 확장 프로그램" 항목 자체가 보이지 않는다면, 대부분 클라이언트의 확장 프로그램 등록이 아직 완료되지 않은 경우입니다. 클라이언트를 창만 닫지 말고 완전히 종료한 뒤 다시 실행해 등록 절차를 다시 트리거하고, 설정 항목이 나타나는지 확인해 보세요.
| 증상 | 추정 원인 | 해결 방법 |
|---|---|---|
| 설정에서 네트워크 확장 프로그램 항목을 찾을 수 없음 | 확장 프로그램 등록 미완료 | 클라이언트를 완전히 종료한 뒤 다시 실행 |
| 스위치를 켜도 연결이 되지 않음 | 시스템에 이전 거부 상태가 캐시됨 | 스위치를 끄고 클라이언트를 재시작한 뒤 다시 켜기 |
| 비밀번호 인증 후 응답이 없음 | 인증 시간 초과 또는 시스템 프로세스 갱신 지연 | 확인 창에 오래 머무르지 말고 스위치를 다시 클릭 |
NT-02.3반복되는 키체인 팝업 해결 방법
또 다른 자주 걸리는 지점은 키체인(Keychain) 권한 팝업이 계속 나타나는 문제입니다. "'키체인 접근'이 사용자의 기밀 정보를 사용하도록 허용하시겠습니까?" 같은 문구나 이와 비슷한 인증서 접근 요청이 대표적입니다. 이 팝업은 네트워크 확장 프로그램 권한과는 별개로, 클라이언트가 로컬 인증서나 설정 키를 읽거나 쓸 때 발생하는 시스템 보안 확인 절차입니다. 승인되지 않은 프로세스가 민감한 인증 정보를 읽는 것을 막기 위한 장치입니다.
정상적인 경우라면 팝업이 뜰 때 "항상 허용"을 선택해야 합니다. "허용"만 누르면 시스템이 이번 승인을 세션 단위로만 기억합니다. 매번 클라이언트를 실행할 때마다 같은 키체인 요청이 다시 뜬다면 다음 두 가지 원인 중 하나일 가능성이 큽니다.
- "항상 허용" 대신 "허용"을 눌러서, 시스템이 해당 세션에만 권한을 부여하고 다음 실행 시 새 요청으로 취급하는 경우.
- 키체인에 이름은 같지만 서명 정보가 다른 이전 항목이 남아 있는 경우(클라이언트를 삭제 후 재설치했을 때 흔히 발생). 시스템이 어느 항목을 신뢰해야 할지 판단하지 못해 매번 다시 물어보게 됩니다.
두 번째 경우라면 macOS 기본 앱인 "키체인 접근"을 열어 검색창에 클라이언트 이름이나 관련 인증서 키워드를 입력해, 동일한 이름의 항목이 여러 개 있는지 확인하세요. 이전 버전의 잔여 항목으로 확인되면 불필요한 항목을 삭제한 뒤 클라이언트를 다시 실행하고, 새로 뜨는 승인 요청에서 "항상 허용"을 선택하면 반복 팝업 문제가 해결됩니다.
키체인 항목을 삭제하기 전에 해당 항목이 현재 점검 중인 클라이언트와 실제로 관련이 있는지 반드시 확인하세요. 시스템이나 다른 앱이 사용하는 인증서를 잘못 삭제하지 않도록 주의해야 합니다. 용도를 확신할 수 없는 항목은 그대로 두고, 명확히 중복되면서 이전 버전 타임스탬프가 찍힌 항목만 처리하세요.
NT-02.4네트워크 확장 프로그램과 TUN 모드의 관계
macOS가 이런 권한에 특히 신중한 이유는 네트워크 확장 프로그램 프레임워크가 바로 TUN 모드의 핵심 구현 기반이기 때문입니다. TUN 모드는 시스템에 가상 네트워크 어댑터를 만들어, 원래는 시스템 프록시 설정을 우회하던 명령줄 도구나 일부 샌드박스 앱의 트래픽까지도 함께 처리합니다. 이렇게 "전역 네트워크 경로를 통제하는" 능력에 제한을 두지 않으면 악성 프로그램이 트래픽을 감청하거나 조작하는 데 악용될 수 있습니다. 그래서 시스템은 이 권한을 요청하는 모든 프로세스에 대해 사용자가 설정에서 명시적으로 승인하도록 요구하며, 이 승인 상태는 앱 서명과 연결되어 있어 서명이 바뀌면(예: 설치 파일 출처 변경) 승인이 무효화되어 다시 절차를 거쳐야 합니다.
이 원리를 이해하면 TUN 모드 스위치를 눌러도 반응이 없을 때 클라이언트 자체를 의심할 필요가 없습니다. 가장 먼저 확인해야 할 것은 언제나 "개인정보 보호 및 보안"의 네트워크 확장 프로그램 스위치 상태이며, 이는 가장 흔하면서도 가장 쉽게 놓치는 부분입니다.
NT-02.5자주 발생하는 오류와 점검 방법
권한 팝업 자체 외에도 승인을 마친 뒤에도 발생할 수 있는 몇 가지 예외 상황을 정리했습니다.
- 확장 프로그램이 시스템에 의해 차단되었다는 알림이 뜨고 설정 스위치가 회색으로 비활성화된 경우: 대부분 macOS의 보안 무결성 보호 기능이 개입한 상황입니다. Mac을 한 번 재시작하면 시스템이 확장 프로그램 등록 상태를 다시 불러오므로, 재시작 후 설정으로 가서 스위치가 다시 활성화되는지 확인하세요.
- 비밀번호 인증 후 화면이 멈춰 진행되지 않는 경우: 시스템 확장 프로그램 로드에는 약간의 지연이 있을 수 있으니 몇 초 기다려 보세요. 30초가 지나도 변화가 없다면 클라이언트 프로세스를 종료한 뒤 다시 실행하세요.
- 여러 Clash 계열 클라이언트를 번갈아 사용할 때 권한이 서로 충돌하는 경우: 한 시점에는 하나의 클라이언트만 네트워크 확장 프로그램을 활성화 상태로 유지하세요. 클라이언트를 전환하기 전에 이전 클라이언트의 스위치를 먼저 꺼서 가상 네트워크 어댑터 자원이 동시에 점유되지 않도록 해야 합니다.
대부분의 권한 관련 문제는 클라이언트를 재설치하지 않고도 해결됩니다. 위 순서대로 설정 상태를 하나씩 확인하면 대개 몇 분 안에 문제를 해결할 수 있습니다. 네트워크 확장 프로그램을 허용하고 키체인 항목을 정리했는데도 문제가 계속된다면 설치 파일 자체가 손상되었을 가능성을 고려해, 해당 플랫폼용 설치 파일을 다시 내려받아 보세요.