iPhone에서 Clash 규칙 사용하기: App Store 호환 클라이언트와 설정 가져오기
iOS에서 Clash 설정을 지원하는 클라이언트를 App Store에서 찾고, 링크·파일·QR 코드로 구독을 가져오는 방법을 안내합니다. VPN 권한 허용과 백그라운드 사용 설정도 다룹니다.
호환 범위: Clash 규칙은 모든 iOS 설정에 통용되지 않습니다
iPhone에서 Clash 규칙을 사용하려면 앱 이름에 Clash가 포함됐는지가 아니라 클라이언트가 해당 설정 형식을 지원하는지 확인해야 합니다. Windows 설치 파일은 iOS에서 실행되지 않으며, iOS 클라이언트가 데스크톱 Clash 또는 mihomo 코어를 사용하는 것도 아닙니다. YAML을 읽을 수 있더라도 지원하는 필드, 프로토콜, 규칙 세트 형식은 서로 다를 수 있습니다.
이 가이드에서는 Clash 형식의 설정을 지원하는 Stash를 예시로 사용합니다. 구매 전 App Store 제품 페이지와 클라이언트 문서에서 시스템 요구 사항, 설정 호환 범위, 가격을 확인하세요. App Store 이용 가능 여부는 Apple 계정의 국가 또는 지역과 앱 판매 상황에 따라 달라질 수 있습니다. 검색 결과에 앱이 없다고 해서 기기 문제로 단정하지 마세요.
| 준비한 자료 | 가져오기 전 확인 | 처리 방법 |
|---|---|---|
| 전체 Clash YAML 설정 | 프록시, 정책 그룹, 규칙이 포함되어 있으며 대상 클라이언트에서 해당 필드를 지원함 | 설정 파일 또는 설정 URL로 가져오기 |
| 노드 구독 또는 개별 노드 링크 | 서버 정보만 포함되어 있고 정책 그룹이나 분기 규칙은 없을 수 있음 | 클라이언트가 지원하는 노드 가져오기 메뉴를 사용하고 규칙은 별도로 설정 |
| mihomo 전용 설정 | 전용 필드, 프로토콜, 규칙 세트 인코딩 확인 | 사용 중인 iOS 클라이언트에 맞게 제공된 설정을 서비스 제공자에게 요청 |
| 다른 클라이언트용 설정 | 예: Surge 설정 또는 제품 전용 구독 | 확장자만 바꾸지 말고 해당 형식이나 신뢰할 수 있는 변환 방법을 선택 |
App Store에서 받기: 앱을 확인한 뒤 설치
App Store 및 시스템 요구 사항
- App Store를 열고 ‘검색’에서 제품명을 입력합니다. 예를 들어
Stash를 검색하세요. - 제품 상세 페이지에서 개발자, 제품 설명, 업데이트 내역과 ‘호환성’에 표시된 최소 iOS 버전을 확인하세요. 비슷한 아이콘이나 검색 광고만 보고 판단하지 마세요.
- 현재 계정에 표시되는 가격과 구매 조건을 확인한 뒤 다운로드하세요. 클라이언트 구매 비용과 구독 서비스 요금은 별개입니다.
- 클라이언트를 열고 먼저 설정 가져오기 메뉴를 확인한 뒤 구독 링크나 로컬 파일을 준비하세요. 처음 실행할 때 바로 연결을 켤 필요는 없습니다.
앱이 검색되지 않으면 App Store 오른쪽 위의 프로필에서 현재 ‘미디어 및 구입 항목’에 사용하는 Apple 계정을 확인하세요. 스토어 국가는 구매 계정 등의 조건에 따라 정해집니다. ‘설정’ → ‘일반’ → ‘언어 및 지역’만 다른 국가로 바꿔서는 스토어 국가를 변경할 수 없습니다.
계정 국가 또는 지역을 변경해야 한다면 잔액, 구독, 결제 수단 제한을 포함해 Apple의 공식 절차를 따르세요. 출처가 불분명한 공유 계정을 사용하거나 다른 사람의 계정을 기기의 iCloud에 로그인하지 마세요. 기업 인증서 설치, 프로파일 배포, App Store 다운로드는 서로 다른 방식이므로 같은 설치 절차로 취급하면 안 됩니다.
설치 전 기록할 세 가지
- 클라이언트 버전: 앱의 ‘설정’ 또는 ‘정보’에 표시된 버전을 기록해 두세요. 오류 발생 시 지원 필드를 확인하는 데 도움이 됩니다.
- 시스템 버전: ‘설정’ → ‘일반’ → ‘정보’에서 iOS 버전을 확인하세요.
- 설정 출처: 구독 관리 페이지에 표시된 대상 클라이언트를 기록하세요. 제공자가 Clash, Stash, Surge용을 각각 제공한다면 현재 제품에 맞는다고 명시된 항목을 우선 선택하세요.
링크로 가져오기: 구독 주소와 업데이트 기능 유지
원격 설정은 노드나 규칙을 정기적으로 업데이트할 때 적합합니다. 아래 경로는 Stash에서 흔히 볼 수 있는 화면을 기준으로 설명합니다. 설정 목록에서 오른쪽 위 ‘+’를 누른 다음 ‘URL에서 다운로드’와 같은 메뉴를 선택하세요. 버전에 따라 ‘설정 다운로드’로 표시될 수 있습니다. 원격 설정 URL을 가져오는 기능을 선택하고, 프록시 하나를 수동으로 추가하는 메뉴는 선택하지 마세요.
- 서비스 제공자의 계정 페이지에서 현재 클라이언트에 맞는 구독 링크를 복사하세요. 로그인 페이지나 결제 페이지 주소, 화면에 표시된 텍스트가 아니라 전체 URL을 복사했는지 확인하세요.
- 붙여넣은 뒤 URL의 앞뒤가 온전한지, 불필요한 공백이나 줄바꿈, 메신저가 덧붙인 문장 부호가 없는지 확인하세요. ‘링크 정리’를 이유로 쿼리 매개변수를 삭제하지 마세요.
- 다운로드가 끝나면 ‘일상 설정’처럼 이름을 붙이고 설정 목록에서 해당 항목을 선택하세요.
- 설정 내용이나 요약을 열어 프록시, 정책 그룹, 규칙이 불러와졌는지 확인하세요. 노드만 표시된다면 전체 설정이 아니라 노드 구독을 받은 것은 아닌지 확인해야 합니다.
- 설정 상세 정보에서 업데이트 출처와 업데이트 메뉴를 확인하세요. 먼저 수동으로 한 번 업데이트한 다음 클라이언트에서 제공하는 옵션에 맞춰 업데이트 주기를 설정하세요.
구독 업데이트와 규칙 세트 업데이트는 별개의 과정일 수 있습니다. 설정 파일이 proxy-providers로 프록시 목록을, rule-providers로 규칙 목록을 참조할 수 있습니다. 기본 설정 다운로드에 성공해도 이러한 원격 리소스는 각각 다운로드에 실패할 수 있습니다. 문제를 확인할 때는 홈 화면에 설정 이름이 표시되는지만 보지 말고 로그의 리소스 주소와 오류 내용을 확인하세요.
파일 및 QR 코드로 가져오기: 로컬 복사본과 원격 출처 구분
‘파일’ 앱에서 YAML 가져오기
로컬 파일은 기존 설정을 옮기거나 네트워크 다운로드에 문제가 있을 때 문법을 확인하기에 적합합니다. 먼저 .yaml 또는 .yml 파일을 ‘파일’ 앱의 ‘다운로드’, iCloud Drive 또는 ‘나의 iPhone’에 저장하세요. 파일 확장자는 식별을 위한 단서일 뿐이며, 실제 내용이 대상 클라이언트에서 지원되는 설정이어야 합니다.
- 클라이언트 설정 목록의 ‘+’ 메뉴에서 파일 가져오기를 선택하세요. 현재 버전에 해당 메뉴가 없다면 ‘파일’ 앱에서 파일을 길게 누른 뒤 ‘공유’에서 대상 클라이언트를 찾아보세요.
- 가져온 뒤 설정을 선택하고 YAML 구문 오류가 표시되는지 확인하세요. 들여쓰기에는 공백을 사용하고 탭 문자는 넣지 마세요.
- 파일이 참조하는 외부 리소스를 확인하세요. 데스크톱 설정의 로컬 경로가 iPhone의 같은 이름 파일을 자동으로 가리키지는 않습니다. 해당 리소스를 다시 가져오거나 클라이언트가 지원하는 참조 방식으로 바꿔야 합니다.
- 수정하지 않은 원본 사본을 보관하세요. 규칙을 로컬에서 변경하기 전에 원격 업데이트가 변경 내용을 덮어쓰는지 확인하세요.
로컬 파일 가져오기는 대개 가져온 시점의 정적 복사본만 추가하며, 파일 이름만으로 기존 구독과 자동 연결되지는 않습니다. 계속 업데이트하려면 원격 설정 메뉴에서 출처를 다시 추가하세요. 새 파일을 수동으로 다운로드한 것을 기존 설정이 자동 업데이트된 것으로 착각하지 마세요.
구독 QR 코드 스캔
QR 코드는 정보를 담는 수단이지 독립적인 설정 형식이 아닙니다. HTTPS 구독 주소나 개별 노드 URI가 인코딩되어 있을 수 있습니다. 먼저 클라이언트의 설정 추가 또는 스캔 메뉴에서 인식하세요. 사진 보관함에서 가져오기를 지원한다면 저장해 둔 QR 코드 이미지를 선택할 수도 있습니다.
- 처음 스캔할 때 안내에 따라 카메라 권한을 허용하세요. 이후 권한은 ‘설정’ → ‘개인정보 보호 및 보안’ → ‘카메라’에서 변경할 수 있습니다.
- 원격 설정 URL로 인식되면 출처와 다운로드 결과를 확인한 뒤 링크 가져오기와 같은 절차를 진행하세요.
- 개별 노드로 인식되면 노드 목록에 추가됐는지 확인하세요. 이 경우 전체 분기 규칙까지 함께 나타나지는 않습니다.
- 시스템 카메라로 스캔하면 URL이나 이동 안내만 표시될 수 있으며, 내용이 프록시 클라이언트로 바로 전달된다고 보장할 수 없습니다.
QR 코드가 같은 iPhone 화면에 표시되어 있다면 클라이언트의 사진 보관함 인식 기능을 사용하거나 원본 구독 링크를 직접 복사하세요. 토큰이 포함된 스크린샷을 공용 인식 서비스에 올려 스캔하지 마세요.
VPN 권한 허용 및 첫 연결 확인
설정을 선택한 다음 클라이언트의 연결 스위치를 켜세요. 처음 연결할 때는 시스템에서 VPN 설정 추가를 허용할지 묻는 메시지가 표시됩니다. 제품 이름을 확인하고 ‘허용’을 누른 뒤 기기 암호나 생체 인증을 완료하세요. 이는 클라이언트가 네트워크 터널을 만들도록 허용하는 절차이지, 구독 서비스 제공자의 인증서를 설치하는 과정이 아닙니다.
VPN 상태는 ‘설정’ → ‘일반’ → ‘VPN 및 기기 관리’ → ‘VPN’에서 확인할 수 있습니다. 조직에서 관리하는 기기는 관리 정책에 따라 관련 권한이 제한될 수 있으므로 관리자에게 문의하세요. 설정을 반복해서 가져와 제한을 우회할 수는 없습니다.
네 단계로 트래픽 분기 확인
- 규칙 모드 선택: 클라이언트의 송신 또는 모드 설정에서 ‘규칙’을 선택하세요. 전역 모드는 임시 비교에 주로 사용되므로 규칙 적용 여부를 확인하는 기준으로 적합하지 않습니다.
- 정책 그룹 확인: 설정에 실제로 정의된 프록시 정책 그룹을 열고 사용 가능한 노드를 선택하거나 설정에 정의된 자동 선택 그룹을 사용하세요.
- 두 종류의 요청 테스트: 직접 연결되어야 하는 웹사이트와 프록시를 거쳐야 하는 웹사이트에 각각 접속하고, 요청 기록에서 적용된 규칙, 정책, 송신 경로를 확인하세요.
- 앱 재테스트: 브라우저가 정상 작동하면 대상 앱도 테스트하세요. 기존 연결이 이전 경로를 계속 사용할 수 있으므로 필요한 경우 앱을 완전히 종료한 뒤 다시 여세요.
데스크톱에서 흔히 사용하는 mixed-port: 7890은 로컬 프록시가 연결을 수신하는 포트이며, iPhone에서 VPN 터널을 시작하는 데 필수 조건은 아닙니다. Wi-Fi의 ‘프록시 구성’에 127.0.0.1:7890을 직접 입력해 클라이언트 연결 스위치를 대신하지 마세요. 이 주소는 휴대전화 자체를 가리키며, 해당 포트에서 서비스가 실행 중이라는 보장도 없습니다.
iOS 클라이언트는 보통 시스템 Network Extension으로 터널을 구성합니다. 데스크톱 mihomo의 ‘서비스 설치’나 TUN 네트워크 인터페이스 절차를 그대로 적용할 수 없습니다. 데스크톱 설정의 tun, 라우팅, DNS 매개변수가 iOS에서도 각각 동일하게 작동한다고 가정하지 마세요.
백그라운드 사용: 화면 잠금, 네트워크 전환, 필요 시 연결
iOS 터널은 네트워크 확장이 담당하므로 클라이언트 화면을 계속 앞에 띄워 둘 필요는 없습니다. ‘백그라운드 앱 새로 고침’ 설정과 터널의 지속 실행 여부는 같은 기능이 아닙니다. 새로 고침을 켜면 연결이 절대 끊기지 않는다고 보장할 수 없으며, 클라이언트를 반복해서 강제 종료해 ‘백그라운드에서 계속 실행’하려고 해도 안 됩니다.
권장 테스트 순서
- 화면 잠금 테스트: 먼저 앱을 열었을 때 정상 접속되는지 확인한 뒤 약 2분간 화면을 잠그세요. 잠금 해제 후 VPN 상태와 새 요청 기록을 확인합니다. 이 시간은 문제 해결을 위한 점검 절차이지 배터리 지속 시간이나 안정성 측정 결과가 아닙니다.
- 네트워크 전환 테스트: Wi-Fi에서 셀룰러 데이터로 전환한 뒤 연결이 복구되는지 확인하세요. 셀룰러에서만 실패한다면 ‘설정’ → ‘셀룰러’에서 클라이언트의 데이터 사용 권한을 확인하세요.
- 필요 시 연결: 클라이언트에 ‘필요 시 연결’ 옵션이 있다면 안내에 따라 네트워크 조건을 설정하세요. 이 옵션은 연결이 시작되는 시점을 정할 뿐, 사용할 수 없는 노드나 잘못된 설정을 고쳐 주지는 않습니다.
- 저전력 모드: 저전력 모드일 때만 문제가 발생한다면 비교를 위해 잠시 끄고 확인할 수 있습니다. 다만 모든 연결 끊김의 공통 원인으로 간주하지 마세요.
원격 설정 업데이트는 클라이언트의 일정 실행, 앱이 앞에 표시된 상태 또는 시스템이 허용하는 백그라운드 실행 기회에 따라 달라질 수 있습니다. 업데이트 간격을 설정해도 iOS가 매번 정확한 시각에 앱을 깨운다는 뜻은 아닙니다. 클라이언트를 오래 열지 않았다면 다시 사용하기 전에 설정 업데이트 시각을 수동으로 확인하세요.
다른 VPN, DNS 필터링 도구, 보안 네트워크 확장이 라우팅이나 이름 확인에 영향을 줄 수 있습니다. 문제를 점검할 때는 다른 서비스를 먼저 끄고 테스트할 터널 하나만 유지하세요. 회사나 학교에서 설치한 관리 설정은 바로 삭제하지 마세요.
자주 발생하는 오류: 다운로드·파싱·연결 단계별 점검
| 증상 또는 로그 | 우선 확인할 항목 | 다음 조치 |
|---|---|---|
| 다운로드 결과가 401, 403 또는 404 | 토큰, 접근 제한, 링크 재설정 여부 | 계정 페이지로 돌아가 링크를 다시 복사하고 구독 상태를 확인하세요. 상태 코드만으로 원인을 하나로 단정할 수는 없습니다. |
| 응답 내용이 HTML로 시작함 | 로그인 페이지를 잘못 사용했거나 인증 페이지에 가로막혔는지 확인 | 실제 설정 엔드포인트를 확인하세요. 웹페이지를 YAML로 저장해 가져오지 마세요. |
| YAML 파싱 실패 | 오류가 난 줄 주변의 들여쓰기, 콜론, 따옴표, 파일의 완전성 | 원본 사본으로 복원한 뒤 로컬 편집기에서 항목별로 확인하세요. 인증 정보가 포함된 파일을 공개 도구에 업로드하지 마세요. |
| 알 수 없는 필드 또는 지원되지 않는 프로토콜 | 설정이 mihomo 또는 다른 제품용인지 확인 | 대상 클라이언트 전용 설정을 요청하세요. 필드를 삭제한 뒤에도 동작이 같을 것이라고 가정하지 마세요. |
| VPN은 연결됐지만 웹사이트가 열리지 않음 | 노드 사용 가능 여부, 정책 그룹 선택, DNS, 적용된 규칙 | 먼저 사용 가능한 것으로 확인된 다른 노드로 바꾸세요. 그런 다음 요청 기록을 보고 이름 확인 실패와 연결 시간 초과를 구분하세요. |
| 기본 설정은 성공했지만 규칙 세트 로드 실패 | 원격 규칙 주소, 형식, 다운로드 경로 | 해당 리소스의 로그를 확인하고 클라이언트가 인코딩 형식을 지원하는지 확인하세요. 바이너리 규칙 세트는 클라이언트 간에 통용되지 않습니다. |
지연 시간 테스트에 응답이 있다고 해서 모든 서비스 연결이 가능한 것은 아닙니다. 속도 테스트는 특정 URL을 사용하거나 대상 웹사이트의 DNS, UDP, 규칙 경로를 확인하지 않을 수 있습니다. 반대로 테스트 시간 초과는 테스트 주소에 접속할 수 없어서 발생할 수도 있으므로 숫자 하나만으로 구독 전체가 작동하지 않는다고 판단하지 마세요.
서비스 제공자나 클라이언트 관리 담당자에게 문의할 때는 클라이언트 버전, iOS 버전, 가져오기 방식, 오류 발생 시각, 개인정보를 가린 로그를 전달하세요. 필드 이름과 오류 행 번호는 유지하고 구독 토큰, 비밀번호, 개인 키, 개인 계정 정보는 제거하세요. ‘설정 다운로드 → 파싱 → 터널 시작 → 요청의 송신 경로 확인’ 순서로 원인을 좁히면 반복해서 재설치하는 것보다 효과적입니다.