시작하기 전: iOS의 3계층 구조부터 이해하기

iOS에서 VPN 연결은 특정 앱 하나가 유지하는 것이 아니라 세 계층이 맞물려 동작합니다. 이 세 계층을 구분해 두면, 나중에 문제가 생겼을 때 어느 계층을 확인해야 하는지 바로 알 수 있습니다.

  • 구독 서비스: 계정과 회선, 그리고 구독 링크 하나를 제공합니다. 링크에는 노드 주소와 접속 자격 증명이 담겨 있으며, 전체 연결의 출발점입니다.
  • 클라이언트 앱: 구독 링크의 노드 정보를 iOS가 인식할 수 있는 구성으로 변환하고, 노드 선택과 프로토콜 전환, 구독 업데이트를 담당합니다.
  • 시스템 VPN 구성: iOS의 NetworkExtension 프레임워크가 관리하며, '설정 → 일반 → VPN 및 기기 관리'에 나타납니다. 상태 표시줄의 VPN 아이콘도 여기서 비롯됩니다.

세 계층은 세 가지 유형의 문제와 대응합니다. 구독 링크가 만료되면 첫 번째 계층, 앱에서 노드는 보이는데 연결이 안 되면 대부분 두 번째 계층, 시스템 설정에 구성이 아예 없거나 상태가 계속 '연결 안 됨'에 머물면 세 번째 계층 문제입니다. 이 순서대로 거슬러 확인하는 편이 클라이언트를 반복 재설치하는 것보다 훨씬 효과적입니다.

  • 110+지원 국가 및 지역
  • 210+회선 수
  • 60일무조건 환불 기간
  • 무제한동시 접속 기기 수

가져오기 전에 구독 링크가 유효한지 먼저 확인하세요. 클라이언트에서 '구독 업데이트'를 실행했는데 실패한다면, 먼저 패널에서 링크를 다시 복사한 뒤 클라이언트를 의심하는 게 순서입니다. 순서를 바꾸면 괜히 시간만 버리기 쉽습니다.

1단계: 사용할 클라이언트 확보하기

iOS에서 클라이언트를 구하는 방법은 두 가지이며, 하나만 제대로 되면 됩니다.

  1. 패널 다운로드 페이지에서 받기: 사용자 패널에 로그인해 '다운로드' 페이지를 열고, iOS 항목에서 클라이언트와 해당 가져오기 안내를 확인합니다. 구독 형식이 패널과 바로 맞습니다.
  2. App Store에서 범용 클라이언트 직접 설치: 표준 구독 형식을 지원하는 클라이언트를 검색합니다. 예를 들어 sing-box 계열 클라이언트, Shadowrocket, Stash 등입니다. 클라이언트마다 지원하는 프로토콜 범위가 다릅니다. Hysteria2, TUIC처럼 QUIC 기반 프로토콜을 지원하는지는 버전에 따라 다릅니다.

두 방법의 차이는 이렇습니다. 패널 다운로드 페이지에서 제공하는 클라이언트는 구독 형식과의 호환성이 높고, 직접 설치한 범용 클라이언트는 익숙함이 강점입니다. 일부 범용 클라이언트는 특정 지역 App Store에만 등록되어 있어, 검색되지 않으면 현재 Apple ID의 지역을 먼저 확인하고 해당 지역에 등록된 다른 클라이언트로 바꾸면 됩니다.

클라이언트를 고를 때 볼 것은 세 가지뿐입니다. 구독 링크를 가져올 수 있는지, 구독에서 쓰는 프로토콜을 지원하는지, 필요 시 연결 같은 선택 기능이 있는지입니다. 기능이 많다고 좋은 것은 아닙니다. iOS에서는 회선 품질이 구독에 담긴 노드로 결정되고, 클라이언트는 구성을 시스템에 넘겨주는 역할만 합니다.

2단계: 구독 링크를 클라이언트로 가져오기

  1. 구독 링크 복사: 패널에서 구독 링크를 찾아 전체를 복사합니다. 링크에는 보통 토큰 문자열이 포함되며 계정 자격 증명과 같으므로, 외부에 공유하거나 공개 채널에 캡처해 올리지 마세요.
  2. 새 구독 만들기: 클라이언트를 열고 '구독' 또는 '구성' 메뉴에서 새 구독을 만들고, 링크를 붙여넣은 뒤 저장합니다.
  3. 구독 업데이트: 수동으로 한 번 업데이트를 실행하고 노드 목록이 나타날 때까지 기다립니다. 노드는 보통 지역별로 묶여 있으며, 개수는 구독한 회선 수와 일치합니다.
  4. 노드 선택: 첫 화면에서 특정 노드나 정책 그룹을 선택합니다. 대부분의 클라이언트는 기본이 '지연이 가장 낮은 노드 자동 선택'이며, 지역을 고정해야 할 때는 직접 지정하는 편이 더 통제하기 쉽습니다.

클라이언트가 분할 터널링을 지원한다면 규칙도 함께 켜 두는 것을 권합니다. 국내 도메인과 국내 IP는 직접 연결, 나머지는 프록시를 거치게 하는 방식입니다. 이렇게 하면 국내 서비스에 접속할 때 굳이 밖으로 돌아가지 않아도 되고, 요금제 기준으로 계산되는 트래픽도 아낄 수 있습니다. 아래는 분할 터널링 규칙 예시입니다(sing-box 기준, 필드 이름은 사용 중인 버전의 공식 문서를 따르세요).

{
  "route": {
    "rules": [
      { "domain_suffix": [".cn"], "outbound": "direct" },
      { "ip_is_private": true, "outbound": "direct" }
    ],
    "final": "proxy"
  }
}

규칙을 붙여넣은 뒤에는 구성을 다시 불러오는 것을 잊지 마세요. 분할 터널링 규칙이 잘못돼도 연결 자체가 실패하지는 않지만, '연결은 됐는데 특정 사이트가 안 열리는' 현상이 생깁니다. 이럴 때는 규칙을 잠시 전역 프록시로 바꿔 확인해 보면 됩니다.

3단계: 시스템 팝업과 구성 권한 허용

클라이언트에서 처음 연결을 켜면 iOS가 시스템 대화상자를 띄웁니다. 내용은 대략 '앱 이름이 VPN 구성을 추가하려고 합니다'라는 것이고, 아래에 허용과 허용 안 함 두 버튼이 있습니다. 이 팝업은 클라이언트가 그린 것이 아니라 시스템이 대신 확인해 주는 절차입니다. '허용'을 눌러야만 구성이 시스템의 VPN 및 기기 관리에 기록됩니다.

  1. '허용' 누르기: 이어서 Face ID나 기기 암호를 한 번 더 요구할 수 있습니다. 이는 시스템이 'VPN 구성 추가'를 재확인하는 절차로, 정상적인 흐름입니다.
  2. 상태 확인: 구성이 기록되면 '설정 → 일반 → VPN 및 기기 관리 → VPN'에서 확인할 수 있고, 상태 표시줄이나 제어 센터에 VPN 아이콘이 나타납니다.
  3. '허용 안 함'을 잘못 눌렀을 때: 구성이 저장되지 않으므로, 클라이언트로 돌아가 연결을 다시 누르면 팝업이 다시 뜹니다. 팝업이 더 이상 뜨지 않으면 '설정 → 일반 → VPN 및 기기 관리'에서 남은 항목이 있는지 확인하고, 삭제한 뒤 다시 가져오세요.

시스템 팝업은 '구성 추가' 시점에만 나타납니다. 어느 날 연결할 때 팝업이 뜨지 않는데 상태가 계속 '연결 중'에 머문다면, 문제는 대부분 노드나 로컬 네트워크에 있습니다. 설정에서 구성을 반복해서 지우지 마세요. 지우면 다시 권한을 허용해야 합니다.

iOS만의 제약이 하나 더 있습니다. 동시에 하나의 개인 VPN 구성만 연결 상태일 수 있습니다. 두 번째 클라이언트를 설치해 새로 연결하면 기존 연결은 자동으로 끊깁니다. 이는 시스템 동작이며 클라이언트 오류가 아닙니다. 전환할 때는 '설정 → 일반 → VPN 및 기기 관리'에서 사용할 구성을 직접 선택하세요.

4단계: 실제로 국제 회선을 타는지 확인하기

연결됐다고 해서 제대로 연결된 것은 아닙니다. 확인은 두 단계로 나눕니다. 먼저 시스템 상태를 보고, 다음으로 출구를 봅니다.

  • 시스템 계층: 제어 센터나 상태 표시줄에 VPN 아이콘이 나타나고, '설정 → 일반 → VPN 및 기기 관리'에서 해당 구성이 '연결됨'으로 표시됩니다.
  • 출구 계층: 브라우저에서 아무 IP 위치 조회 페이지나 열어, 출구 IP의 위치가 선택한 노드 지역과 일치하는지 확인합니다. 일본 노드를 골랐는데 위치가 로컬로 나온다면 트래픽이 터널을 타지 않은 것입니다.

이어서 DNS를 확인합니다. DNS 유출이란 도메인 조회 요청이 터널을 따라가지 않는 상황을 말합니다. 조회가 로컬 네트워크에서 나가면 현지화된 결과를 받을 수 있고, 증상은 'IP 위치는 맞는데 특정 사이트가 안 열리거나 인증 요구가 반복되는' 형태로 나타납니다. 해결 방법은 클라이언트에서 원격 DNS를 켜거나(클라이언트에 따라 'DNS 프록시'로 표기), 분할 터널링 규칙에서 DNS 조회를 터널로 넘기는 것입니다. 켠 뒤에는 DNS 유출 테스트 페이지에서 조회 서버의 위치를 다시 확인하세요.

  • ✅ 출구 IP 위치가 선택한 노드 지역과 일치하고, 새로고침해도 로컬로 돌아가지 않습니다.
  • ✅ DNS 테스트 페이지에 표시되는 조회 서버가 로컬 네트워크 출구 쪽에 있지 않습니다.
  • ✅ 클라이언트에서 실시간 업로드·다운로드 트래픽이 변하는 것이 보입니다.
  • ❌ 클라이언트는 '연결됨'인데 웹페이지가 열리지 않음: 먼저 다른 노드로 바꾸고, 분할 터널링 규칙이 해당 도메인을 직접 연결로 분류했는지 확인하세요.
  • ❌ 위치는 맞는데 속도가 눈에 띄게 이상함: 프로토콜을 바꾸거나(예: TCP 계열에서 QUIC 기반 Hysteria2, TUIC로) 회선 유형을 바꿔 다시 측정해 보세요.

결론: iOS에서 확인할 것은 두 가지뿐입니다. 시스템에 구성이 '연결됨'으로 표시되는지, 출구 IP가 노드 지역과 일치하는지. 이 두 가지가 충족되면 남은 것은 속도와 안정성 문제이며, '연결됐는지'와는 무관합니다.

프로토콜과 회선: iOS에서 고르는 기준

구독에는 보통 여러 프로토콜이 함께 제공되며, iOS에서의 차이는 주로 전송 방식에서 나옵니다.

프로토콜 전송 방식 주요 특징 iOS에서의 유의점
Shadowsocks TCP, UDP 포워딩 지원 가능 핸드셰이크가 가볍고 호환 범위가 가장 넓음 거의 모든 클라이언트가 지원하므로, 문제 진단 시 먼저 이걸로 전환
VMess TCP, WebSocket / gRPC 사용 가능 V2Ray 계열, 설정 항목이 많음 UDP 포워딩 사용 가능 여부는 클라이언트 구현에 따라 다름
Trojan TLS, 보통 443 포트 사용 트래픽 특성이 일반 HTTPS와 유사 도메인과 인증서가 필요하며, 주요 클라이언트가 대체로 지원
VLESS TCP + TLS / Reality 조합 내장 암호화 계층이 없어 추가 오버헤드가 작음 주로 Reality와 조합하며, 오래된 클라이언트는 인식하지 못할 수 있음
Hysteria2 QUIC, UDP 기반 패킷 손실에 민감한 국제 구간에서 유리 일부 네트워크는 UDP를 제한하거나 차단하므로, 연결이 안 되면 먼저 TCP 계열로 전환
TUIC QUIC, UDP 기반 핸드셰이크 오버헤드가 낮음 위와 같으며, 현재 네트워크의 UDP 허용 여부에 따라 달라짐

회선 유형은 프로토콜보다 체감에 더 직접적인 영향을 줍니다. 노드를 고를 때 한 번 더 살펴볼 만합니다.

  • 직접 연결: 클라이언트가 착지 서버에 바로 연결되어 경로가 가장 짧지만, 국제 구간이 흔들리면 그대로 체감으로 이어집니다.
  • 중계: 중계 서버에 먼저 연결한 뒤 전달하는 방식으로, 한 홉이 늘어나는 대신 더 안정적인 경로를 얻습니다.
  • IEPL 전용선: 통신사급 전용선으로 피크 시간대에도 흔들림이 적어, 화상 회의나 원격 데스크톱처럼 패킷 손실에 민감한 상황에 적합합니다.

VPNEM의 210+ 회선은 지역별로 정리되어 있고 회선 유형도 목록에 표시되므로 용도에 맞게 고르면 됩니다. 어떤 지역과 도시가 있는지 보고 싶다면 회선 목록 페이지를 참고하세요.

iOS에서 자주 막히는 지점

아래 현상들은 iOS에서 발생 빈도가 가장 높은 것들이며, 원인도 거의 다 짚을 수 있습니다.

증상 원인 해결
두 번째 클라이언트를 연결하면 첫 번째가 자동으로 끊김 iOS는 동시에 하나의 개인 VPN 구성만 연결 상태로 허용 시스템 동작입니다. 전환할 때는 '설정 → 일반 → VPN 및 기기 관리'에서 구성을 직접 선택하세요
수동으로 끊었는데 잠시 후 다시 연결됨 클라이언트나 시스템에서 '필요 시 연결'이 켜져 있음 먼저 필요 시 연결을 끄고 나서 연결을 해제하세요
Wi-Fi에서는 정상인데 셀룰러로 전환하면 끊김 클라이언트의 셀룰러 데이터 권한이 꺼져 있음 '설정 → 셀룰러'에서 해당 클라이언트를 찾아 셀룰러 데이터 스위치를 켜세요
화면 잠금 상태가 한동안 이어지면 앱 내 상태 표시가 이상해짐 iOS는 백그라운드 앱을 일시 중단하지만 터널은 시스템 프로세스가 유지함 보통 연결에는 영향이 없습니다. 실제로 끊겼다면 앱으로 돌아가 다시 연결하고, 저전력 모드가 켜져 있는지 확인하세요
새로 추가된 회선이 클라이언트에 보이지 않음 iOS 백그라운드에서는 클라이언트가 구독을 주기적으로 업데이트하지 않음 클라이언트에서 '구독 업데이트'를 직접 한 번 실행하세요

자주 묻는 질문

구독을 가져왔는데 노드 목록이 비어 있나요?

먼저 링크가 온전히 복사됐는지 확인하세요. 일부 클라이언트는 붙여넣을 때 들어간 줄바꿈을 링크의 일부로 처리해 가져오기에 실패합니다. 그다음 '구독 업데이트'를 다시 눌러 보세요. 그래도 비어 있으면 패널에서 링크를 다시 복사하고, 다른 기기에 있는 예전 구독도 함께 업데이트하세요.

연결은 정상인데 특정 앱만 열리지 않나요?

먼저 전역 프록시 모드로 바꿔 확인해 보세요. 열리면 분할 터널링 규칙이 해당 도메인을 직접 연결로 분류한 것이고, 그래도 안 열리면 노드를 바꿔 보세요. iOS에서는 모든 앱의 트래픽이 같은 시스템 터널을 지나므로, 앱별로 따로 설정할 필요가 없습니다.

기기를 바꾸면 다시 구매해야 하나요?

아니요. 같은 계정으로 동시 접속 기기 수 제한 없이 iPhone과 iPad를 함께 연결할 수 있으며, 기기마다 구독을 한 번씩 가져오면 됩니다. 개통 시 이메일 주소가 필요 없어 기억할 자격 증명이 하나 줄어듭니다.

며칠 써 보고 맞지 않으면 어떻게 하나요?

본 사이트는 60일 무조건 환불을 제공합니다. 위 네 단계를 먼저 마치고 판단하시길 권합니다. 출구 IP가 노드 지역과 일치하고 DNS 유출도 없다면, 남은 것은 회선이 용도에 맞는지의 문제이므로 그때 환불 여부를 정하세요.

한 줄 요약: iOS VPN은 처음부터 시작해도 네 단계뿐입니다. 클라이언트 설치, 구독 가져오기, 시스템 팝업에서 '허용' 누르기, 출구 IP로 작동 확인하기. 막힐 때는 '구독 → 클라이언트 → 시스템 구성' 순서로 거슬러 확인하면 대부분 원인을 찾을 수 있습니다.