먼저 앱과 구독 형식을 확인한 뒤 App Store 국가를 살펴보세요
iPhone에서는 먼저 클라이언트가 지원하는 설정 형식을 확인하고, App Store에서 앱을 받을 수 있는지 살펴본 다음 설정을 가져옵니다. 마지막으로 VPN을 승인하고 연결을 확인하세요. 앱을 설치해도 서버 노드가 자동으로 제공되지는 않습니다. 구독 주소는 보통 서비스 제공업체에서 별도로 받으며, 앱 구매 비용과 노드 서비스 이용료는 별개입니다.
데스크톱용 Clash 클라이언트, mihomo 코어, iOS 프록시 앱은 서로 같은 것이 아닙니다. iOS 앱은 보통 시스템 Network Extension을 사용해 네트워크 트래픽을 처리하며, 지원 프로토콜과 규칙 문법, 설정 관리 방식은 앱마다 다릅니다. 이름에 ‘프록시’나 ‘VPN’이 들어간다고 해서 Clash YAML을 모두 읽을 수 있는 것은 아닙니다.
| 확인 대상 | 확인할 내용 | 흔한 오해 |
|---|---|---|
| Stash 등 Clash 형식 설정을 지원하는 앱 | 현재 버전에서 지원하는 YAML 필드, 프로토콜, 확장 문법 확인 | Clash 설정 지원을 mihomo의 모든 기능 지원으로 오해 |
| Shadowrocket 등 프록시 앱 | 서비스 제공업체가 해당 앱용으로 명시한 구독 주소 사용 | 전체 Clash YAML을 모든 앱에서 쓸 수 있는 범용 노드 구독으로 오해 |
| 구독 서비스 | 노드 구독, 전체 설정 파일, 앱 전용 링크를 구분 | 같은 주소를 모든 앱에 그대로 가져올 수 있다고 생각 |
App Store 이용 방법 및 국가 확인
일부 프록시 앱은 특정 국가 또는 지역의 App Store에서만 제공됩니다. 앱을 검색할 수 없다면 iPhone의 언어, 시간대 또는 ‘언어 및 지역’ 설정을 바꾸기 전에 App Store 국가부터 확인하세요. App Store에서 앱을 볼 수 있는지는 주로 구매에 사용하는 Apple 계정의 국가 또는 지역을 따르며, 제공 여부는 달라질 수 있으므로 현재 스토어의 앱 상세 페이지를 확인해야 합니다.
앱 이름, 개발자, 시스템 요구 사항 확인
- App Store를 열고 앱의 전체 이름을 검색한 다음 개발자 정보를 확인하세요. 아이콘이 비슷하거나 검색 결과 상단에 있다는 이유만으로 판단하지 마세요.
- 앱 상세 페이지의 ‘호환성’에서 필요한 최소 iOS 버전을 확인하세요. 현재 시스템이 요구 사항을 충족하지 않으면 국가를 변경해도 호환성 문제는 해결되지 않습니다.
- 가격과 구매 계정을 확인하고, 사용 중인 기기에 설치할 수 있는지 살펴보세요. 구매 전에 구독 형식을 확인하면 앱을 설치한 뒤 설정이 호환되지 않는 문제를 피할 수 있습니다.
구매 계정의 국가 확인 또는 변경
iOS 18에서 흔히 볼 수 있는 경로는 ‘설정’ → 상단의 사용자 이름 → ‘미디어 및 구입 항목’ → ‘계정 보기’ → ‘국가/지역’입니다. 시스템 버전과 계정 상태에 따라 메뉴 이름이 조금 다를 수 있습니다. 여기서 말하는 국가는 ‘설정’ → ‘일반’ → ‘언어 및 지역’의 지역 설정과 다릅니다.
- 기존 계정의 국가 변경: Apple은 계정 잔액을 모두 사용하고 구독 및 대기 중인 주문을 처리한 뒤 새 국가 또는 지역에서 인정하는 결제 수단을 등록하도록 요구할 수 있습니다. 가족 공유 상태도 변경 가능 여부에 영향을 줄 수 있습니다.
- 본인이 보유한 다른 국가 계정 사용: ‘미디어 및 구입 항목’에서 App Store 계정을 관리하면 앱을 다운로드하기 위해 기기 전체에서 iCloud 로그아웃을 하지 않아도 됩니다. 다만 계정 전환이 구입 항목, 미디어 구독, 이후 업데이트에 영향을 줄 수 있으므로 먼저 시스템 안내를 확인하세요.
- 구입 내역 유지: 앱의 구입, 다시 다운로드, 업데이트 권한은 구매 계정에 연결됩니다. 모르는 사람이 제공하는 공유 계정에 의존하지 말고, 인증 코드를 대리 작업자에게 알려주지 마세요.
국가 및 지역 정보는 실제 상황에 맞게 입력하고 Apple의 이용 조건을 준수해야 합니다. 웹에서 받은 설치 파일은 App Store를 통한 정상적인 설치를 대신할 수 없습니다. 데스크톱용 .exe, .dmg나 Android용 .apk도 iPhone에서 사용할 수 없습니다. TestFlight는 테스트용 배포 채널이며 초대 인원과 빌드 유효 기간에 제한이 있으므로 장기간 사용할 수 있는 App Store 대안으로 보면 안 됩니다.
구독 링크로 가져오기: 원본 주소를 보관하고 업데이트 결과 확인
구독 링크는 노드를 주기적으로 업데이트해야 할 때 적합합니다. 링크에는 보통 접근 토큰이 포함되어 있어 전체 주소를 아는 사람은 해당 구독 내용을 확인할 수 있습니다. 주소를 공개 채팅방이나 스크린샷, 문의 내용에 올리지 마세요. 문제를 확인해야 한다면 상태 코드와 오류 문구, 토큰을 가린 도메인 정보만 전달하세요.
‘설정 추가 → 다운로드 → 선택’ 순서로 가져오기
- 서비스 제공업체 계정 페이지에서 해당 클라이언트용 HTTPS 구독 주소를 복사하세요. 로그인 페이지 주소나 공유 안내 문구, 따옴표가 포함된 텍스트가 아니라 링크 자체를 복사했는지 확인하세요.
- 클라이언트에서 ‘설정’, ‘구독’ 또는 ‘설정 파일’ 화면을 열고 ‘추가’, ‘URL에서 다운로드’와 같은 메뉴를 선택하세요. 앱마다 메뉴 이름은 다르지만, 개별 노드를 수동으로 추가하는 것이 아니라 원격 설정을 가져오는 기능을 찾아야 합니다.
- 전체 주소를 붙여넣고 ‘개인 구독’처럼 출처를 구분할 수 있는 이름을 지정하세요. iOS에서 다른 앱의 붙여넣기를 허용할지 묻는다면 출처를 확인한 뒤 허용하세요.
- 다운로드 또는 업데이트를 실행하고 노드, 정책 그룹, 규칙이 표시되는지 확인하세요. 설정 이름만 저장되었다고 해서 내용까지 정상적으로 가져온 것은 아닙니다.
- 새 설정을 현재 사용할 항목으로 선택하세요. 일부 클라이언트는 여러 설정을 저장할 수 있지만, 한 번에 연결에 사용되는 설정은 선택한 항목 하나뿐입니다.
Clash 형식의 전체 설정에는 proxies, proxy-groups, rules가 자주 포함되며, proxy-providers로 노드를 가져오기도 합니다. 인코딩된 노드 목록만 반환하는 구독은 전체 YAML이 아닙니다. HTML 로그인 페이지가 반환되는 경우도 사용할 수 있는 구독이 아닙니다. 파싱 오류가 발생하면 응답 형식과 앱의 지원 범위를 먼저 확인하고, 많은 규칙을 한꺼번에 수정하지 마세요.
구독을 업데이트하면 원격 내용을 다시 가져옵니다. 로컬 규칙을 덮어쓸지, 노드 선택을 유지할지는 클라이언트 구현에 따라 다릅니다. 분기 규칙을 계속 보존해야 한다면 해당 앱이 지원하는 오버라이드, 스크립트 또는 별도 규칙 기능을 사용하세요. 원격 설정 파일을 직접 수정한 결과가 계속 저장된다고 기대해서는 안 됩니다.
파일 및 QR 코드로 가져오기: 먼저 내용 형식 구분
‘파일’ 앱에서 설정 가져오기
설정 파일은 오프라인 전송, 백업 복원, 문제 진단에 적합합니다. 먼저 파일을 ‘파일’ 앱의 ‘나의 iPhone’ 또는 iCloud Drive에 저장한 뒤 클라이언트에서 ‘파일에서 가져오기’를 선택하세요. 파일 공유 메뉴에서 대상 클라이언트를 선택할 수도 있지만, 해당 앱이 파일 형식을 등록해 둔 경우에만 가능합니다.
- 파일의 실제 내용을 확인하세요.
.yaml과.yml은 Clash 형식 설정에 자주 사용되는 확장자입니다. 확장자만 바꾼다고 형식이 자동으로 변환되지는 않습니다. - 가져온 뒤 설정 검사 결과를 확인하고 들여쓰기, 필드 형식, 지원하지 않는 프로토콜이 있는지 살펴보세요. YAML 들여쓰기에는 공백을 사용해야 하며 Tab으로 임의 대체하면 안 됩니다.
- 해당 파일 설정을 선택하고 정책 그룹에서 노드를 선택할 수 있는지 확인하세요. 파일이 원격 노드 제공자나 규칙 제공자를 참조하는 경우에는 인터넷에 연결해 해당 내용을 내려받아야 합니다.
- 원본 파일을 백업해 두세요. 정적 파일은 원격 참조를 지원하는 내용이 포함된 경우가 아니라면 원격 구독처럼 새 노드를 자동으로 가져오지 않습니다.
QR 코드로 구독 또는 단일 노드 가져오기
QR 코드는 텍스트를 담는 수단일 뿐, 통일된 설정 형식이 아닙니다. 스캔 결과는 HTTPS 구독 링크일 수도 있고 단일 노드 URI나 특정 클라이언트 전용 가져오기 명령일 수도 있습니다. 클라이언트가 해당 내용을 지원해야 스캔이 의미가 있습니다.
- 다른 화면의 QR 코드 스캔: 클라이언트에서 스캔 기능을 열고 iOS 안내에 따라 카메라 접근을 허용한 다음 가져오기 미리보기를 확인하세요.
- 기기 사진 앱에 있는 QR 코드: 클라이언트가 ‘사진에서 인식’을 지원하면 스크린샷을 선택할 수 있습니다. 지원하지 않는다면 서비스 제공업체 페이지로 돌아가 구독 링크를 복사하는 편이 간단합니다.
- 시스템 카메라로 인식: 시스템 카메라는 결과를 일반 웹 주소로 열 수도 있습니다. 웹 주소가 열렸다고 해서 클라이언트에 설정이 성공적으로 가져와진 것은 아닙니다.
가져온 뒤 추가된 항목이 ‘노드 하나’인지 ‘구독 하나’인지 확인하세요. 단일 노드 QR 코드에는 전체 분기 규칙이 함께 들어 있지 않은 경우가 많고, 이후 자동 업데이트가 지원된다는 보장도 없습니다. 노드 비밀번호나 구독 토큰이 포함된 QR 코드도 원본 링크만큼 민감합니다. 스크린샷을 공유하기 전에 QR 코드 전체를 가리세요.
VPN 승인 및 첫 연결 확인
가져오기에 성공하면 먼저 설정과 노드를 선택한 뒤 연결을 누르세요. 터널을 처음 시작할 때 iOS에서 앱이 VPN 구성을 추가하도록 허용할지 묻는 경우가 많습니다. 안내에 표시된 앱이 방금 설치한 클라이언트인지 확인한 다음 허용을 선택하고, 시스템 안내에 따라 기기 암호를 입력하거나 인증을 완료하세요.
이 승인은 클라이언트가 시스템 네트워크 터널을 만들도록 허용하는 것이며, 기기 관리 프로파일, 루트 인증서 또는 MDM을 설치하는 것과는 다릅니다. 일반적인 구독 가져오기에는 이런 추가 작업이 필요하지 않습니다. 출처가 불분명한 안내에서 인증서나 관리 프로파일 설치를 요구하면 일단 중단하고 용도를 확인하세요.
VPN 아이콘만 보지 말고 세 가지 항목으로 연결 확인
- 모드와 정책 그룹 확인: 처음 연결을 확인할 때는 규칙 모드를 사용하고, 실제 규칙에서 참조하는 수동 선택 그룹에서 노드를 지정하세요. 그룹에서
DIRECT를 선택했다면 해당 규칙에 일치하는 트래픽은 계속 직접 연결됩니다. - 터널 상태 확인: 클라이언트에 연결됨으로 표시되는지 확인하세요. iOS 18에서는 ‘설정’ → ‘일반’ → ‘VPN 및 기기 관리’ → ‘VPN’에서도 상태를 확인할 수 있습니다. 메뉴는 시스템 버전에 따라 달라질 수 있습니다.
- 실제 요청 확인: 현재 규칙상 프록시를 사용해야 하는 웹사이트를 열고 클라이언트의 연결 기록이나 로그에서 대상 도메인, 적용된 정책, 출구 노드를 확인하세요. 출구 IP 조회 결과도 보조 자료로 활용하되 상태 막대 아이콘만 보고 판단하지 마세요.
규칙에 따라 일부 IP 조회 사이트가 직접 연결될 수 있으므로 조회 결과가 바뀌지 않았다고 해서 항상 연결 실패인 것은 아닙니다. 원인을 분리해 확인하려면 앱에서 제공하는 전역 프록시 모드를 잠시 사용하고 전역 정책에서 대상 노드를 선택했는지 확인하세요. 테스트가 끝나면 기존 규칙 모드로 되돌리세요. DNS, 노드, 규칙을 동시에 바꾸면 어떤 항목이 영향을 주었는지 판단하기 어렵습니다.
데스크톱 클라이언트의 ‘TUN 모드’와 iOS 시스템 터널은 모두 앱 트래픽을 처리할 수 있지만, 설정 항목과 내부 제약은 서로 다릅니다. 데스크톱 설정에 tun 필드가 있다고 해서 iOS 앱도 완전히 같은 방식으로 처리한다고 단정하지 마세요.
가져오기 실패, 연결 시간 초과, 업데이트 오류 점검 순서
| 증상 | 먼저 확인할 항목 | 다음 조치 |
|---|---|---|
| 구독 응답 HTTP 401 또는 403 | 주소 토큰이 만료되었는지, 서비스에서 접근을 제한하는지 확인 | 서비스 제공업체 페이지에서 주소를 다시 받고 계정 상태를 확인 |
| 구독 응답 HTTP 404 | 링크 경로가 빠졌는지, 복사 과정에서 잘렸는지 확인 | 전체 링크를 다시 복사하고 쿼리 매개변수를 임의로 삭제하거나 수정하지 않기 |
| 다운로드는 성공했지만 파싱 실패 | 로그인 페이지, 노드 목록 또는 지원하지 않는 YAML 필드가 반환되었는지 확인 | 해당 클라이언트 전용 구독 형식으로 변경 |
| 설정을 가져왔지만 연결되지 않음 | 설정을 선택했는지, 정책 그룹에서 사용할 수 있는 노드를 선택했는지 확인 | 노드를 수동으로 하나 선택한 뒤 연결 오류 확인 |
| VPN은 연결됐지만 웹페이지 시간 초과 | 노드 상태, DNS, 규칙 및 다른 VPN과의 충돌 여부 확인 | 다른 네트워크 터널을 끄고 Wi-Fi와 셀룰러 네트워크에서 각각 테스트 |
| 업데이트 후 규칙이 원래대로 돌아감 | 원격 설정을 직접 수정했는지 확인 | 클라이언트가 지원하는 로컬 오버라이드 기능으로 수정 사항 저장 |
변수 하나씩 바꿔 재시험
먼저 연결을 끄고 일반 네트워크에서 서비스 제공업체 페이지에 접속할 수 있는지 확인한 뒤 구독을 한 번 업데이트하세요. 그런 다음 노드를 하나 선택해 연결하고 오류가 발생한 시간과 클라이언트에 표시된 오류 유형을 기록하세요. Wi-Fi에서는 실패하지만 셀룰러 네트워크에서는 성공한다면 현재 라우터, DNS 또는 로컬 네트워크 제한을 먼저 확인하세요. 두 네트워크에서 모두 실패한다면 노드 상태와 설정 호환성을 점검하세요.
iOS의 다른 VPN, 주문형 연결 규칙 또는 네트워크 필터 확장이 테스트에 영향을 줄 수 있습니다. 문제를 확인할 때는 다른 VPN을 먼저 끊고 자동 재연결되는지도 살펴보세요. 재시동 후 클라이언트가 다시 자동으로 트래픽을 처리한다면 구독을 반복해서 삭제하지 말고 클라이언트의 ‘주문형 연결’ 설정과 시스템 VPN 구성의 해당 옵션을 확인하세요.
지연 시간 테스트에 값이 표시된다는 것은 당시 테스트 대상에 도달할 수 있었다는 뜻일 뿐, 모든 웹사이트나 스트리밍 서비스, UDP 앱이 작동한다는 보장은 아닙니다. 첫 연결의 최소 확인 기준은 설정 업데이트가 가능하고, 올바른 정책이 선택되어 있으며, 프록시를 사용해야 하는 요청이 로그에 기록되고, 대상 서비스에 정상적으로 접속되는 것입니다. 프로토콜이나 규칙 필드에 문제가 있다면 이 사이트의 YAML 매뉴얼을 참고하되, 최종적으로는 사용 중인 iOS 클라이언트의 지원 범위를 따라야 합니다.