먼저 결론부터: iOS의 세 관문
안드로이드에서는 설치 파일 하나면 끝나지만 iOS는 다릅니다. 애플은 전체 경로를 세 단계로 나눠 놓았고, 각 단계마다 나름의 함정이 있습니다:
- 첫 번째 관문, App Store 국가. 클라이언트는 특정 지역 스토어에만 등록되어 있어 계정 국가가 맞지 않으면 검색조차 되지 않고 다운로드도 불가능합니다. 국가는 Apple ID의 청구 주소를 따라가며, 변경에는 선행 조건이 붙습니다.
- 두 번째 관문, 구성 프로파일. 시스템 기본 IKEv2 / IPSec 구성은
.mobileconfig프로파일로 처리합니다. Shadowsocks, VMess, Trojan 같은 사용자 정의 프로토콜은 시스템 기본 채널을 쓸 수 없고, 클라이언트 내장 코어를 통해 NetworkExtension으로 동작해야 합니다. 두 경로는 '설정'에서 들어가는 위치가 완전히 다릅니다. - 세 번째 관문, 구독 가져오기와 연결 유지. iOS의 샌드박스와 백그라운드 정책은 데스크톱과 논리가 다릅니다. 구독이 언제 갱신되는지, 터널이 끊기면 누가 다시 연결하는지에 대한 답도 달라집니다.
순서가 중요합니다. 이 세 관문을 먼저 통과한 다음에 프로토콜, 회선, 분할 라우팅을 논해야 합니다. 반대로 프로토콜부터 따지면 첫 관문에서 막히기 쉽습니다.
5가지 iOS 클라이언트 유형 비교
아래 5가지는 2026년에 iOS에서 여전히 통하는 설치 방식입니다. 다섯 개 브랜드가 아니라 다섯 가지 형태이며, 같은 서비스가 그중 두세 가지를 함께 제공하기도 합니다. 항목별 차이를 봅니다:
| 형태 | 설치 방식 | 구독 가져오기 | 백그라운드 유지 | 추천 대상 |
|---|---|---|---|---|
| 해외 스토어 정식 클라이언트 | 대상 지역 Apple ID로 App Store에서 다운로드 | 앱 안에서 구독 링크 붙여넣기 또는 QR 코드 스캔 | 시스템 NetworkExtension이 관리하므로 화면 잠금 후에도 터널 유지 | 간편하게 오래 쓰려는 사용자 |
| 범용 프록시 클라이언트 | 마찬가지로 해당 지역 계정이 필요하며 서드파티 구독을 가져옴 | ss:// vmess:// vless:// 등 다양한 링크 지원 | 코어 성능과 온디맨드 연결 등록 여부에 따라 다름 | 자체 구독이 있고 노드를 직접 고르려는 사용자 |
| TestFlight 테스트 버전 | 서비스 제공자가 테스트 자리를 배포하면 TestFlight 설치 후 받음 | 앱 안에서 가져오기, 정식 버전과 동일 | 정식 버전과 같지만 빌드 유효 기간이 90일 | 새 기능을 미리 써 보고 국가 변경은 번거로운 사용자 |
| 구성 프로파일(.mobileconfig) | 제공자가 파일을 주면 Safari로 다운로드해 설치 | 구독이 필요 없고 구성이 파일에 고정됨 | 시스템 수준 VPN, 전력 소모가 가장 적고 앱 실행 여부에 의존하지 않음 | 시스템 기본 프로토콜만 쓰고 앱 설치는 원하지 않는 사용자 |
| 자체 서명 / 기업 서명 설치 | ipa를 직접 서명하거나 기업 인증서로 배포 | 클라이언트에 따라 다름 | 서명이 만료되면 앱이 바로 종료되어 다시 서명해야 함 | 직접 다룰 줄 알고 유지 비용을 감수할 수 있는 사용자 |
뒤의 두 형태는 대가가 분명합니다. '설치된다'는 점만 보고 고르면 안 됩니다. 구성 프로파일은 전역 구성이므로 설치 전에 출처를 반드시 확인해야 합니다. 자체 서명 앱은 무료 서명이 7일, 유료 개발자 계정 서명이 1년 후 만료되며, 만료되는 날에는 앱이 바로 열리지 않아 다시 서명해야 합니다. 일상적인 사용이라면 첫 번째나 두 번째 형태로 충분합니다.
구성 프로파일에는 대부분의 사람이 생각하는 것보다 많은 것을 담을 수 있습니다. Wi-Fi, VPN, 프록시 설정, 루트 인증서가 모두 한 파일에 들어갑니다. 출처가 불분명한 .mobileconfig는 설치하지 마세요. 루트 인증서가 포함된 프로파일은 중간자가 HTTPS 트래픽을 열어 볼 수 있게 하는데, '설정'에서는 평범한 항목 하나로만 보입니다.
App Store 국가 변경 실전
국가 변경은 드롭다운 하나 바꾸는 일이 아닙니다. App Store 국가는 Apple ID의 청구 주소로 결정되며, 주소를 바꾸기 전에 잔액과 구독을 먼저 정리해야 합니다. 그렇지 않으면 시스템이 곧바로 거부합니다. 전체 절차는 다음과 같습니다:
- 대상 지역의 Apple ID를 준비합니다. 새로 만들 수도 있고 기존 계정의 국가를 바꿀 수도 있습니다. 국가를 바꾸려면 계정 잔액을 모두 사용하거나 비워야 하고, 진행 중인 구독을 모두 해지해야 합니다.
- '설정 → 사용자 이름 → 미디어 및 구입 항목'에서 현재 계정에서 로그아웃하고 대상 지역 계정으로 로그인한 뒤 App Store를 열어 클라이언트를 검색합니다.
- 다운로드가 끝났다고 바로 그 계정에서 로그아웃하지 마세요. iOS는 앱을 업데이트할 때 처음 다운로드한 계정을 확인하며, 그 계정이 로그아웃된 상태라면 비밀번호를 다시 요구합니다.
- 원래 지역 계정으로 돌아간 뒤에도 이전에 받은 클라이언트는 계속 쓸 수 있지만 업데이트가 막힙니다. 해결 방법은 두 가지입니다. '구입 항목'에서 원래 계정으로 업데이트하거나, 삭제한 뒤 새 계정으로 다시 받으면 됩니다.
국가 변경은 스토어와 결제에만 영향을 주고 시스템 언어, iCloud 콘텐츠, 이미 설치한 앱에는 영향을 주지 않습니다. 이미 받은 클라이언트는 국가를 바꾼 뒤에도 그대로 동작하니 이 부분은 고민하지 않아도 됩니다.
국가 변경이 싫다면
대안은 두 가지입니다. 하나는 TestFlight 버전, 다른 하나는 App Store에 의존하지 않는 설치 방식입니다. 전자는 빌드 유효 기간이 90일, 후자는 서명 유효 기간이 있어 둘 다 주기적인 관리가 필요합니다. '더 편한 방법'이 아니라 '감수할 수 있으면 고르는 방법'입니다. 서비스를 고를 때는 두 가지를 바로 물어보면 됩니다. iOS 클라이언트가 어느 지역 스토어에 등록되어 있는지, TestFlight 채널이 있는지.
구성 프로파일 설치와 삭제 방법
구성 프로파일(.mobileconfig)은 애플이 기업과 관리자를 위해 만든 구성 매체지만 개인도 사용할 수 있습니다. 설치 경로는 하나뿐입니다. Safari로 파일 링크를 열면 시스템이 '이 웹 사이트에서 구성 프로파일을 다운로드하려고 합니다'라고 안내합니다.
- Safari로 제공자가 준 링크를 열고 '허용'을 선택해 다운로드합니다.
- '설정 → 일반 → VPN 및 기기 관리 → 다운로드한 프로파일'로 들어가 '설치'를 누르고 잠금 화면 암호를 입력해 확인합니다.
- 설치가 끝나면 VPN 구성이 같은 페이지의 'VPN' 섹션에 나타나며, 앱을 열 필요 없이 바로 켜고 끌 수 있습니다.
삭제와 문제 해결
- 삭제: '설정 → 일반 → VPN 및 기기 관리'로 돌아가 프로파일 상세로 들어간 뒤 '프로파일 제거'를 누릅니다. 제거하면 해당 VPN 구성도 함께 사라지고 잔여물이 남지 않습니다.
- 설치했는데 반응이 없을 때: 먼저 프로파일의 서버 주소에 접속할 수 있는지 확인합니다. 시스템 기본 프로토콜은 일부 네트워크 환경에서 차단되므로, 이런 경우에는 NetworkExtension 방식 클라이언트가 더 안정적입니다.
- 프로토콜 제약: 구성 프로파일로는 Shadowsocks, VMess, Trojan 같은 사용자 정의 프로토콜을 쓸 수 없습니다. 이런 프로토콜은 클라이언트 내장 코어가 NetworkExtension 채널로 터널을 만들어야 합니다.
단축어로 할 수 있는 일
iOS '단축어'는 상황에 따라 연결을 자동으로 켜고 끌 수 있습니다. 예를 들어 '특정 Wi-Fi에 연결하면 자동으로 켜기', '특정 앱을 열면 끄기' 같은 방식입니다. 전제는 클라이언트가 단축어 동작(App Intents)을 제공하는 것이며, 제공하지 않는 클라이언트는 쓸 수 없습니다. 클라이언트가 지원하지 않는다면 NetworkExtension의 '온디맨드 연결' 규칙으로 대체할 수 있습니다. 항상 연결, Wi-Fi에서만 연결, 특정 Wi-Fi 제외 중에서 고르면 됩니다. 온디맨드 연결은 네트워크가 바뀔 때 시스템이 실행하므로 어떤 서드파티 자동화보다 안정적입니다.
구독 가져오기와 백그라운드 유지
구독 링크는 클라이언트와 서버 사이의 유일한 자격 증명입니다. 내용은 보통 base64로 인코딩된 문자열이거나 여러 프로토콜 접두사가 이어붙은 평문입니다. 흔한 형태는 다음과 같습니다:
ss://[email protected]:8388#홍콩-01
vmess://eyJ2IjoiMiIsInBzIjoi5rWm5rWmIiwiYWRkIjoibm9kZS5leGFtcGxlLmNvbSJ9
vless://[email protected]:443?type=ws&security=tls#일본-02
trojan://[email protected]:443#싱가포르-01
hysteria2://[email protected]:8443#미국-01
https://sub.example.com/delta-svc/client/subscribe?token=9f3c1a7e5b2d4c8f
가져오는 방법은 세 가지입니다. 링크 붙여넣기, QR 코드 스캔, 클립보드 자동 인식입니다. iOS에서 가장 간편한 방법은 링크를 복사한 뒤 클라이언트를 바로 여는 것으로, 대부분의 클라이언트가 클립보드를 자동으로 읽어 가져오기 안내를 띄웁니다. 가져오기에 성공하면 노드 목록이 지역별로 묶이고, 클라이언트 코어가 프로토콜별 파라미터를 해석합니다.
구독 링크 관리
구독 링크는 계정 열쇠와 같아서, 이를 가진 사람은 곧바로 트래픽을 소모할 수 있습니다. 단체 채팅방에 올리거나 공개 구성 저장소에 제출하거나 캡처 화면으로 공유하지 마세요. 만약 유출되었다면 즉시 사용자 패널에서 구독 주소를 재설정하면 기존 링크는 바로 무효가 됩니다.
백그라운드 유지에 실제로 영향을 주는 것
- NetworkExtension 터널은 시스템 프로세스가 관리하므로 화면 잠금이나 앱 전환으로 바로 끊기지 않고, 앱 본체가 시스템에 의해 정리되어도 이미 맺어진 연결에는 영향이 없습니다.
- 저전력 모드는 백그라운드 새로 고침을 제한하므로 구독 자동 갱신이 미뤄질 수 있습니다. 제때 갱신되게 하려면 클라이언트를 '백그라운드 앱 새로 고침' 차단 목록에 넣지 마세요.
- 구독 갱신은 보통 앱을 열 때 실행됩니다. 이는 iOS의 일반적인 동작이며 클라이언트가 부족해서가 아닙니다.
- 온디맨드 연결(On-Demand)은 어떤 '연결 유지 요령'보다 확실합니다. 네트워크가 바뀔 때 시스템이 실행하므로 앱이 백그라운드에 상주할 필요가 없습니다.
연결한 뒤에는 이 목록으로 한 번 점검하세요
- ✅ 아웃바운드 IP: 연결 후 Safari로 아무 IP 조회 페이지나 열어, 표시되는 위치가 현지 통신사가 아니라 노드가 있는 지역인지 확인합니다.
- ✅ DNS 누출: DNS 누출 검사 페이지로 해석 서버가 현지 통신사가 아닌지 확인합니다. 클라이언트가 DNS 요청도 함께 터널로 보내야 하며, 그렇지 않으면 'IP는 바뀌었는데 DNS는 그대로'인 누출이 생깁니다.
- ✅ 구독 상태: 구독을 한 번 직접 아래로 당겨 새로 고침하고 노드 수와 회선 표기가 정상인지 확인해 구독 만료 여부를 배제합니다.
- ✅ 프로토콜 호환: 클라이언트 코어가 구독에 담긴 프로토콜을 지원해야 합니다. sing-box 계열 클라이언트는 VLESS, Hysteria2, TUIC 지원이 폭넓지만, 오래된 클라이언트는 Shadowsocks와 VMess만 인식할 수 있습니다.
- ❌ 출처가 불분명한 구성 프로파일은 '그저' VPN 구성일 뿐이라도 설치하지 마세요.
- ❌ 구독 링크를 공유 링크처럼 전달하지 마세요. 계정 자체는 기기 수 제한이 없으니 여러 기기에서 같은 계정으로 로그인하면 되고, 링크를 외부로 돌릴 필요가 없습니다.
iOS에서 분할 라우팅 규칙은 무엇이 다른가
데스크톱에서는 프로세스 단위 분할 라우팅이 가능하지만 iOS에서는 안 됩니다. 앱 단위 분할 라우팅은 MDM 관리가 필요해 일반 사용자는 쓸 수 없습니다. iOS 클라이언트가 할 수 있는 분할 라우팅은 도메인과 IP 대역 기반 규칙입니다. 한국 도메인은 직접 연결하고 나머지는 프록시로 보내거나, 반대로 특정 도메인만 프록시를 태우는 방식입니다. 규칙 파일은 보통 서비스 제공자가 제공하며, 클라이언트에서 '규칙 모드'를 선택하면 적용됩니다. 규칙 모드의 장점은 한국 사이트 접속이 우회 경로를 거치지 않아 빠르고, 해외 접속에만 터널을 쓴다는 점입니다. 체감 차이는 노드를 바꾸는 것보다 더 큽니다.
상황별 선택
위 내용을 상황별 표로 정리했습니다. 그대로 대입하면 됩니다:
| 사용 상황 | 권장 형태 | 이유 |
|---|---|---|
| 출퇴근길 영상 시청, 일상 브라우징 | 해외 스토어 정식 클라이언트 + 온디맨드 연결 | 화면 잠금에도 끊기지 않고, 네트워크가 바뀌면 자동 재연결되어 직접 누를 필요가 없음 |
| 해외 업무, 화상 회의 | 정식 클라이언트 + IEPL 전용 회선 노드 | 전용 회선은 공용 인터넷을 거치지 않아 야간 피크에도 흔들림이 적고 통화가 안정적 |
| 자체 구독이 있는 경우 | 범용 프록시 클라이언트 | 프로토콜 지원 범위가 넓고 규칙을 직접 수정할 수 있음 |
| 잠깐 써 보고 싶고 국가 변경은 원치 않는 경우 | TestFlight 버전 | 스토어 국가를 바꾸지 않아도 되지만 빌드 유효 기간 90일에 유의 |
회선 이야기도 짚고 넘어갑니다. iOS에서 체감 차이가 가장 큰 부분이 바로 이 층입니다. 직결 노드는 클라이언트가 해외 서버에 바로 연결하는 방식으로 공용 인터넷 국제 구간을 지나갑니다. 비용은 낮지만 야간 피크에 혼잡해지기 쉽고 통신사 QoS 영향을 받기도 합니다. 중계 노드는 중국 본토 중계 서버를 먼저 거쳐 해외로 나가므로 공용 구간이 짧고 안정성은 중간 정도입니다. IEPL 전용 회선은 통신사 국제 전용 회선을 사용해 공용 인터넷을 거치지 않으므로 지연과 패킷 손실이 가장 안정적이며, 대신 가격이 더 높습니다. 화상 회의처럼 지터에 민감한 상황이라면 전용 회선을 우선 고려할 만합니다.
결론: 안정적으로 쓰기만 하려면 해외 스토어 정식 클라이언트 한 가지 형태를 고르고 구독 가져오기와 온디맨드 연결만 설정하면, 한 번 구성해 두고 오래 신경 쓰지 않아도 됩니다. 규칙을 직접 만지고 싶다면 범용 프록시 클라이언트를 고려하세요.
예산 계산: 월 결제는 ¥9.9 / 60GB, ¥18 / 250GB, ¥28 / 500GB 세 가지이고, 트래픽 패키지는 ¥158 / 300GB, ¥358 / 1000GB, ¥658 / 3000GB이며 만료되지 않습니다. 가볍게 쓴다면 60GB로 충분하고, 고화질 영상을 자주 본다면 250GB부터 시작하는 편이 좋습니다. 14일 무조건 환불이니 먼저 써 보고 결정하세요.
자주 묻는 질문 빠른 답변
iPhone에 클라이언트를 설치하려면 추가 비용을 내야 하나요?
클라이언트 자체는 App Store에서 무료로 내려받고, 비용은 서비스 요금제에 있습니다. VPNDM의 iOS 클라이언트는 Windows, macOS, Android, Linux와 같은 계정을 사용하며 기기 수 제한이 없어 여러 기기를 오갈 필요가 없습니다.
개통할 때 어떤 정보를 입력하나요?
사용자 이름과 비밀번호만 있으면 되고 이메일 주소는 필요하지 않습니다. iOS에서는 특히 이 점이 편리합니다. 인증 메일 한 통을 받으려고 브라우저와 클라이언트를 오갈 필요가 없습니다.
이메일 주소 없이 개통할 수 있으니 '인증 메일이 스팸함에 들어갔다' 같은 문제도 없습니다. 보안 측면은 양자 암호화 채널을 사용하며, 전송 내용이나 브라우징 행위를 기록하지 않습니다.
구성 프로파일과 클라이언트를 동시에 쓸 수 있나요?
가능하지만 권장하지 않습니다. 둘 다 터널을 만들기 때문에 동시에 켜면 라우팅을 서로 가져가서 속도가 들쭉날쭉하거나 일부 앱이 연결되지 않습니다. 클라이언트를 쓴다면 구성 프로파일을 삭제하고, 구성 프로파일을 쓴다면 클라이언트를 켜지 마세요.
연결이 안 될 때 무엇부터 확인하나요?
- 클라이언트에서 노드 지연이 시간 초과로 표시되는지 보고, 먼저 다른 노드로 바꿔 시도합니다.
- Wi-Fi를 끄고 셀룰러 데이터로 다시 시도해, 현재 네트워크가 프로토콜 포트를 차단하는지 판단합니다.
- 시스템 시간이 정확한지 확인합니다. TLS 핸드셰이크는 시간 오차에 민감합니다.
- 구독을 다시 한 번 가져와 구독 주소가 만료되거나 재설정되었는지 확인합니다.
앱이 시스템에 의해 정리되면 연결이 끊기나요?
터널은 시스템이 관리하므로 앱 본체가 정리되어도 이미 맺어진 연결은 유지됩니다. 실제로 연결이 끊기는 경우는 네트워크 전환과 저전력 모드의 정책 강화이며, 두 경우 모두 온디맨드 연결이 자동으로 다시 연결합니다.