macOS에서 v2rayN 설치 시 개발자를 확인할 수 없나요? 안전하게 실행 허용하고 네트워크 권한 설정하기

macOS에서 확인되지 않은 개발자의 앱을 차단할 때 시스템 설정에서 실행을 허용하고 격리 속성을 제거하는 방법, 첫 네트워크 권한 요청 처리법을 안내합니다.

macOS에서 v2rayN을 처음 열 때 표시되는 “개발자를 확인할 수 없음”, “Apple에서 악성 소프트웨어가 포함되었는지 확인할 수 없음” 또는 “앱이 손상되어 열 수 없음” 메시지는 대개 Gatekeeper 검사, 다운로드 파일의 격리 속성 또는 앱 위치 때문에 발생합니다. VMess, VLESS, 구독 주소나 노드 설정이 원인은 아닙니다. 먼저 설치 파일의 출처와 앱 위치를 확인한 뒤 macOS의 일회성 실행 허용 기능을 사용하세요. 시스템 메뉴가 나타나지 않거나 격리 상태가 제대로 해제되지 않을 때만 지정한 앱에 터미널 명령을 적용하면 됩니다.

이 글 한눈에 보기

macOS 버전 v2rayN을 다운로드했지만 처음 실행하거나 권한 안내에서 막힌 사용자를 위한 글입니다. Gatekeeper 메시지 판별, 시스템 설정에서 실행 허용, 격리 속성 제거, 네트워크 및 TUN 권한 선택, 실행부터 프록시 적용까지의 검증 과정을 순서대로 설명합니다.

먼저 차단 유형 구분하기: 실행 검사, 파일 격리, 실행 권한

macOS의 실행 차단은 앱이 실제로 실행되기 전에 발생합니다. 이때 v2rayN은 아직 Xray 코어를 로드하거나 구독을 읽고 노드에 연결하지 않았으므로 서버 변경, 로컬 포트 수정, 구독 재가져오기로 해결할 수 없습니다. 팝업의 정확한 문구를 기록하고 앱이 “응용 프로그램” 폴더로 이동되었는지 확인하세요.

이 글의 작업 환경은 macOS 15.5와 v2rayN 7.13.2입니다. 시스템 버전에 따라 버튼 이름은 조금 다를 수 있지만 메뉴는 대체로 「시스템 설정」→「개인정보 보호 및 보안」에 있습니다. v2rayN에서 자주 사용하는 로컬 HTTP 수신 포트는 10809, SOCKS 수신 포트는 10808입니다. 포트는 앱이 정상적으로 실행된 뒤에만 연결에 사용됩니다.

macOS 15.5
검증 환경
v2rayN 7.13.2
참고한 인터페이스 버전
10808
일반적인 SOCKS 포트
10809
일반적인 HTTP 포트
  • “개발자를 확인할 수 없음”: macOS가 일반적인 더블 클릭 절차로 현재 앱의 실행을 허용하지 않은 상태입니다. “개인정보 보호 및 보안”에서 명시적으로 한 번 실행을 허용할 수 있습니다.
  • “앱이 손상됨”: 다운로드가 완전하지 않거나 압축 해제 도구가 앱 패키지 내용을 변경했거나 격리 속성 때문에 검사가 더 엄격해졌을 수 있습니다. 먼저 다시 다운로드하고 압축을 푼 뒤 속성 처리를 고려하세요.
  • 앱은 열리지만 인터넷에 연결되지 않음: 이 경우 Gatekeeper 단계는 통과한 상태이므로 노드 로그, 시스템 프록시, DNS, 로컬 네트워크 또는 TUN 권한을 확인해야 합니다.
  • 앱이 잠깐 나타났다가 종료됨: v2rayN 로그와 macOS “콘솔”에서 실행 오류를 확인해야 하며, 이를 곧바로 개발자 확인 문제로 분류해서는 안 됩니다.

시스템 설정에서 일회성 실행 허용하기

시스템 설정을 통한 실행 허용은 macOS의 보안 확인 절차를 유지하면서 해당 앱 하나에만 적용됩니다. 시작하기 전에 압축을 푼 v2rayN.app을 “응용 프로그램” 폴더로 옮기세요. “다운로드” 폴더나 압축 파일 미리보기에서 직접 실행하지 않는 것이 좋습니다. 앱 경로를 고정하면 이후 코어 업데이트와 설정 저장 시 권한 범위도 파악하기 쉽습니다.

  1. 앱 이동

    Finder에서 “다운로드”를 열고 v2rayN.app을 “응용 프로그램”으로 드래그하세요. 현재 위치가 “응용 프로그램”→“v2rayN.app”인지 확인하고 압축 파일 내부에서는 실행하지 마세요.

  2. 차단 메시지 표시

    v2rayN.app을 더블 클릭해 “개발자를 확인할 수 없음” 메시지를 표시한 다음 “완료” 또는 “취소”를 클릭하세요. 그러면 해당 앱의 실행 허용 기록이 시스템 설정에 나타납니다.

  3. 보안 설정 열기

    「시스템 설정」→「개인정보 보호 및 보안」으로 이동해 아래쪽의 “보안” 영역을 찾고, v2rayN의 사용이 차단되었다는 안내가 표시되는지 확인하세요.

  4. 그래도 열기

    “그래도 열기”를 클릭하고 기기 암호 또는 Touch ID로 본인 인증을 진행하세요. 시스템이 다시 확인하면 “열기”를 선택합니다. 이 메뉴는 차단이 발생한 뒤 일정 시간 동안만 표시되는 경우가 많습니다.

  5. 메인 창 확인

    v2rayN 메인 창이 표시되면 잠시 TUN을 켜지 마세요. 먼저 「설정」→「매개변수 설정」에서 기본 옵션을 확인한 뒤 구독을 가져오고 일반 시스템 프록시를 테스트하세요.

또 다른 그래픽 인터페이스 경로는 Finder에서 v2rayN.app을 Control 키와 함께 클릭한 뒤 “열기”를 선택하는 것입니다. 일부 macOS 버전에서는 두 번째 확인 창에 “열기” 버튼이 표시됩니다. 계속 닫기만 표시된다면 「시스템 설정」→「개인정보 보호 및 보안」으로 돌아가 처리하세요. 두 경로의 목적은 같으므로 반복할 필요가 없습니다.

시스템 메뉴가 작동하지 않을 때 앱 격리 속성 확인 및 제거

브라우저에서 다운로드한 앱에는 보통 com.apple.quarantine 확장 속성이 붙습니다. 이 속성은 파일이 외부 출처에서 왔음을 macOS에 알립니다. 정상적인 경우 “그래도 열기”로 확인을 완료할 수 있지만, 앱을 다시 압축하거나 이동하거나 서드파티 도구로 압축 해제한 뒤 속성 상태가 비정상적이면 시스템 메뉴가 계속 차단할 수 있습니다. 이때는 v2rayN.app에만 조치하세요.

두 가지 처리 경로: 그래픽 실행 허용 우선, 터미널 명령은 지정 앱에만 적용

시스템 설정에서 실행 허용
  • 시스템 확인 절차 유지
  • 처음 열 때 발생한 일반적인 차단에 적합
  • 터미널 명령 입력 불필요
  • 완전하게 새로 다운로드한 앱 패키지에 우선 사용
격리 속성 제거
  • v2rayN.app 경로만 지정
  • 실행 허용 버튼이 나타나지 않거나 차단이 반복될 때 적합
  • 실행 전에 경로와 파일명을 먼저 확인
  • 처리 후 “응용 프로그램”에서 다시 실행

결론: 먼저 시스템 설정에서 한 번 실행을 허용하세요. 앱 출처를 확인하고 다시 다운로드해도 실패할 때만 대상 앱의 격리 속성을 제거합니다.

“응용 프로그램”→“유틸리티”→“터미널”을 열고 아래 읽기 명령으로 먼저 속성을 확인하세요. 출력에 com.apple.quarantine이 포함되어 있으면 앱에 아직 격리 표시가 남아 있는 것입니다. 해당 속성이 없다는 메시지가 나오면 삭제 명령을 실행하지 말고 앱 패키지의 완전성과 실행 로그를 확인하세요.

xattr -p com.apple.quarantine "/Applications/v2rayN.app"

경로가 정확한지 확인한 뒤 지정된 대상에만 제거 작업을 실행하세요. -d 매개변수는 지정한 속성을 삭제하고 -r은 앱 패키지 내부 파일까지 재귀적으로 처리합니다. 명령은 v2rayN.app만 가리켜야 하며 “응용 프로그램” 폴더 전체나 사용자 폴더까지 범위를 넓히지 마세요.

xattr -dr com.apple.quarantine "/Applications/v2rayN.app"

앱 이름이나 위치가 다르다면 경로를 추측해 직접 입력하지 마세요. 먼저 xattr -dr com.apple.quarantine 을 입력하고 끝의 공백을 남겨 둔 다음 Finder에서 v2rayN.app을 터미널 창으로 드래그하세요. 실제 경로가 자동으로 입력됩니다. Enter 키를 눌러 실행한 뒤 “응용 프로그램” 폴더에서 다시 여세요.

  • “Permission denied”가 표시되면 현재 계정에 해당 앱을 수정할 권한이 있는지 확인하고, 앱이 읽기 전용 디스크 이미지에 있는지도 점검하세요.
  • “No such file”이 표시되면 경로 또는 파일명이 일치하지 않는다는 뜻입니다. 드래그 앤 드롭으로 경로를 입력하세요.
  • 명령을 실행한 뒤에도 “앱이 손상됨”이 표시되면 현재 앱 패키지를 삭제하고 다시 다운로드한 다음 macOS 기본 압축 해제 방식으로 처리하세요.
  • 앱이 열린 뒤에는 같은 명령을 계속 반복하지 마세요. 격리 처리와 노드 연결 속도, 프로토콜 종류, 라우팅 규칙은 직접적인 관련이 없습니다.

처음 인터넷에 연결할 때의 권한: 시스템 프록시, 로컬 네트워크, TUN을 따로 판단하기

v2rayN을 실행하면 로컬 네트워크, 들어오는 연결 또는 VPN 구성에 관한 안내가 나타날 수 있습니다. 각 권한은 서로 다른 트래픽 경로에 해당하며 모두 허용할 필요는 없습니다. 일반 시스템 프록시는 macOS 프록시 설정을 따르는 프로그램이 로컬 127.0.0.1 포트에 연결하도록 합니다. TUN은 가상 네트워크 인터페이스를 만들어 시스템 프록시를 따르지 않는 트래픽까지 넘겨받습니다.

일반 시스템 프록시

로컬 주소
127.0.0.1
SOCKS 포트
10808
HTTP 포트
10809
시스템 경로
네트워크→세부사항→프록시

일상적인 브라우저와 시스템 프록시를 따르는 데스크톱 프로그램은 먼저 이 방식으로 확인할 수 있습니다.

로컬 네트워크 권한

설정 경로
개인정보 보호 및 보안→로컬 네트워크
일반적인 로컬 사용
대개 필요하지 않음
로컬 네트워크 공유
명시적으로 활성화 필요
수신 주소
공유 설정에 따라 결정

다른 기기에서 이 Mac의 프록시 포트에 접속해야 할 때만 로컬 네트워크 접근을 허용하세요.

TUN 가상 인터페이스

용도
더 많은 프로세스의 트래픽 넘겨받기
시스템 확인
VPN 구성 또는 관리자 승인
실행 순서
노드 사용 가능 확인 후 활성화
중지 방법
TUN을 먼저 끈 후 종료

가상 인터페이스를 처음 만들 때 시스템 수준의 확인 메시지가 나타나는 것은 정상적인 절차입니다.

방화벽 들어오는 연결

설정 경로
네트워크→방화벽→옵션
원격 노드 연결
나가는 연결에 해당
로컬 네트워크에 프록시 제공
허용이 필요할 수 있음
판단 기준
다른 기기의 접속을 허용하는지 여부

실제로 로컬 네트워크 공유가 필요할 때만 들어오는 연결을 허용하고, 수신 범위도 함께 제한하세요.

현재 Mac에서만 v2rayN을 사용한다면 수신 주소를 127.0.0.1로 유지하고 “로컬 네트워크에서 들어오는 연결 허용”을 켜지 마세요. 그러면 10808과 10809는 로컬에서만 접속할 수 있습니다. 같은 로컬 네트워크의 다른 기기가 연결해야 할 때 로컬 네트워크 공유를 켜고 방화벽에서 해당 들어오는 연결을 허용하세요.

TUN 모드에는 더 높은 수준의 네트워크 제어 권한이 필요합니다. macOS가 VPN 구성 추가, 네트워크 확장 변경 또는 관리자 자격 증명을 요청하면 현재 열어 둔 v2rayN에서 시작된 작업인지 먼저 확인하세요. 승인이 완료되면 시스템 네트워크 설정에서 해당 인터페이스나 구성을 확인할 수 있습니다. 승인을 거부해도 일반 시스템 프록시는 사용할 수 있지만 TUN 가상 인터페이스는 생성되지 않습니다.

v2rayN 기본 설정: 일반 프록시를 먼저 확인한 뒤 TUN 활성화 여부 결정

앱이 실행되면 「설정」→「매개변수 설정」→「Core 유형」으로 이동해 현재 노드에서 사용하는 코어를 확인하세요. VLESS, VMess 등의 프로토콜 매개변수는 보통 구독에서 가져오며 프로토콜 이름 자체가 macOS 권한을 결정하지는 않습니다. 구독에서 Xray가 지원하는 전송 및 보안 매개변수를 지정했다면 Xray 코어를 선택하세요. 필드의 의미를 이해하지 못한 상태에서 UUID, 주소, 포트, 전송 계층 또는 TLS 매개변수를 직접 수정하지 마세요.

  1. 코어 선택

    「설정」→「매개변수 설정」→「Core 유형」을 열고 구독 노드에 필요한 프로토콜에 따라 Xray를 선택하세요. 저장한 뒤 메인 창으로 돌아가 코어 시작 로그에 오류가 없는지 확인합니다.

  2. 구독 가져오기

    “구독 그룹”에 전체 구독 주소를 추가하세요. 구독을 업데이트한 뒤 노드 수, 주소, 포트 및 프로토콜이 정상적으로 표시되는지 확인합니다.

  3. 노드 선택

    노드 하나를 선택해 활성 서버로 지정한 뒤 먼저 지연 시간을 테스트하세요. 지연 결과는 탐색 가능 여부만 보여 주므로 실제 웹 페이지 접속으로도 확인해야 합니다.

  4. 시스템 프록시 시작

    먼저 “시스템 프록시 자동 구성” 또는 현재 버전에서 제공하는 시스템 프록시 메뉴를 사용해 브라우저 트래픽이 127.0.0.1:10809로 들어가도록 하세요.

  5. 그다음 TUN 활성화

    일반 프록시가 정상 작동하는 것을 확인한 뒤 「설정」→「매개변수 설정」→「TunMode 설정」에서 옵션을 확인하고 TUN을 활성화하세요. 시스템 안내에 따라 승인을 완료합니다.

일반 시스템 프록시

권장

경로가 짧고 필요한 권한이 적어 노드, 수신 포트, 시스템 프록시 상태를 각각 점검하기 쉽습니다. 처음 설치했다면 이 방식으로 기본 검증을 먼저 완료하세요.

적합한 경우: 브라우저, 시스템 프록시를 따르는 데스크톱 프로그램, 초기 문제 해결

TUN 모드

가상 인터페이스를 통해 더 넓은 범위의 트래픽을 넘겨받습니다. 시스템 수준의 네트워크 승인이 필요하며 DNS와 라우팅 분할 설정도 함께 확인해야 합니다.

적합한 경우: 시스템 프록시를 읽지 않는 프로그램, 일괄적으로 넘겨받아야 하는 트래픽

로컬 네트워크 공유

다른 기기에서 Mac의 수신 포트에 연결하게 하려면 수신 주소, 방화벽 들어오는 연결, 로컬 네트워크 권한을 조정해야 합니다.

적합한 경우: 이 Mac을 로컬 네트워크 프록시 진입점으로 명확히 제공해야 할 때

v2rayN 상태가 실행 중인데 macOS 프록시 설정이 바뀌지 않는다면 「시스템 설정」→「네트워크」→현재 네트워크 인터페이스→「세부사항」→「프록시」를 열어 웹 프록시와 보안 웹 프록시가 127.0.0.1 및 10809를 가리키는지 확인하세요. 다른 네트워크 도구가 입력한 프록시 주소를 동시에 유지하지 마세요. 프로그램을 종료한 뒤 충돌하는 설정이 남을 수 있습니다.

10808 또는 10809를 다른 프로세스가 사용 중이면 코어 로그에 주소 바인딩 실패가 나타나는 경우가 많습니다. 이때 v2rayN의 매개변수 설정에서 로컬 포트를 변경할 수 있습니다. 예를 들어 HTTP 포트를 10819, SOCKS 포트를 10818로 바꾸세요. 변경 후에는 macOS 네트워크 프록시 설정도 반드시 함께 수정해야 하며 포트가 다르면 브라우저 연결이 바로 실패합니다.

실행부터 인터넷 연결까지 확인 목록

권한 처리를 마친 뒤 “앱 프로세스→코어 프로세스→로컬 수신→시스템 프록시→원격 노드→DNS” 순서로 확인하세요. 단계별로 점검하면 Gatekeeper, 포트 충돌, 노드 장애를 한꺼번에 혼동하지 않을 수 있습니다. 한 번에 변수 하나만 바꾸고 조정할 때마다 다시 테스트하세요.

  • 앱 단계: v2rayN 메인 창이 안정적으로 열리고 종료한 뒤에도 “응용 프로그램” 폴더에서 다시 실행됩니다.
  • 코어 단계: 로그에 Xray가 시작되었다고 표시되며 파일 누락, 구성 분석 실패 또는 권한 거부 메시지가 없습니다.
  • 수신 단계: 127.0.0.1:10808과 127.0.0.1:10809 중 현재 설정에서 활성화한 포트가 하나 이상 수신 대기 상태입니다.
  • 프록시 단계: macOS 현재 네트워크 인터페이스의 프록시 주소가 v2rayN 로컬 포트와 일치하고, 시스템 프록시 모드를 종료하면 관련 설정이 복원됩니다.
  • 노드 단계: 활성 노드의 서버 주소, 포트 및 프로토콜이 유효한 구독에서 제공되며 연결 로그에 지속적인 시간 초과나 핸드셰이크 오류가 없습니다.
  • TUN 단계: 일반 프록시가 작동한 뒤에만 가상 인터페이스, 라우팅 규칙 및 DNS를 확인해 서로 다른 두 진입 경로를 동시에 점검하지 않도록 합니다.
lsof -nP -iTCP:10808 -sTCP:LISTEN
lsof -nP -iTCP:10809 -sTCP:LISTEN

위 명령은 포트가 수신 대기 중인지 확인하는 데 사용합니다. 출력된 프로세스가 v2rayN 관련 코어가 아니라면 해당 프로그램을 먼저 종료하거나 v2rayN의 로컬 수신 포트를 변경하세요. 아무 출력도 없으면 코어가 아직 시작되지 않았을 수 있으므로 로그로 돌아가 구성 로드 결과를 확인해야 합니다. macOS 방화벽을 계속 수정하지 마세요.

구독 업데이트는 실패했지만 기존 노드에 연결할 수 있다면 구독 요청 로그, 시스템 시간 및 현재 네트워크를 확인하세요. 구독은 설정을 배포하는 경로일 뿐 프록시 코어가 작동하지 않는다는 뜻은 아닙니다. 반대로 구독 업데이트에 성공해도 노드 사용 가능 여부가 보장되는 것은 아니므로 연결 로그와 실제 접속으로 확인해야 합니다.

“그래도 열기”를 클릭한 뒤 다음 실행에서도 다시 표시되나요?

같은 앱 패키지에 대한 확인을 완료했다면 보통 계속 실행할 수 있습니다. 새 전체 버전을 다운로드했거나 이동 중 격리 속성이 다시 생성되었거나 앱 패키지 내용이 변경되면 시스템에서 다시 확인을 요청할 수 있습니다.

격리 속성을 제거했는데도 앱이 열리지 않는 이유는 무엇인가요?

격리 속성은 특정 실행 검사만 해결합니다. 앱 패키지가 불완전하거나 CPU 아키텍처가 맞지 않거나 코어 파일이 없거나 구성 디렉터리 권한에 문제가 있으면 여전히 실행되지 않을 수 있습니다. 해당 macOS 빌드를 다시 다운로드하고 “콘솔”과 v2rayN 로그를 확인하세요.

로컬 네트워크 권한을 거부하면 현재 Mac 사용에 영향을 주나요?

127.0.0.1 로컬 프록시만 사용한다면 보통 프록시 포트를 로컬 네트워크에 제공할 필요가 없습니다. 다른 기기에서 이 Mac의 수신 포트에 접속해야 한다면 「개인정보 보호 및 보안」→「로컬 네트워크」, 수신 주소 및 방화벽 규칙을 다시 확인하세요.

TUN 승인을 완료했는데도 트래픽이 없으면 어떻게 하나요?

먼저 TUN과 시스템 프록시를 끄고 현재 노드와 일반 시스템 프록시가 작동하는지 확인하세요. 그런 다음 TUN을 다시 켜고 가상 인터페이스, 기본 라우팅, DNS 및 분할 라우팅 규칙을 점검합니다. 일반 프록시도 작동하지 않는다면 노드나 로컬 포트 문제부터 해결해야 합니다.

클라이언트 다운로드