먼저 앱과 설정 형식 확인하기

iPhone에서 Clash Meta 규칙을 사용하려면 같은 이름의 설치 파일을 검색하기보다 앱이 어떤 설정 형식을 지원하는지 먼저 확인해야 합니다. Clash Meta는 이후 mihomo라는 이름으로 발전했습니다. mihomo는 프록시 코어이고, 구독은 설정이나 노드 정보를 가져오는 경로이며, 규칙은 요청을 어떤 아웃바운드로 보낼지 정합니다. 이 셋은 서로 다른 개념입니다.

iOS 앱은 보통 시스템의 Network Extension으로 VPN 터널을 구성합니다. VPN 표시가 나타나면 터널이 활성화된 것이지만, 앱에서 mihomo가 실행 중이라는 뜻은 아니며 설정의 모든 규칙을 지원한다는 보장도 없습니다. 데스크톱에서 사용할 수 있는 YAML 파일이 iPhone에서 그대로 가져와지는 것도 아닙니다.

앱 유형가져오기 전 확인 사항규칙 처리 방식
Stash 등 Clash 스타일 YAML을 지원하는 앱현재 버전에서 지원하는 프로토콜, 필드 및 규칙 세트 형식 확인일부 설정 구조는 재사용할 수 있지만 mihomo 확장 필드는 항목별로 확인 필요
Shadowrocket 등 자체 설정 형식을 사용하는 앱서비스 제공업체가 해당 앱용으로 제공하는 구독 유형 선택노드 구독과 규칙 설정을 각각 가져와야 할 수 있음
그 외 iOS 프록시 앱개발자 문서와 App Store 제품 페이지 확인앱 이름으로 추측하지 말고 앱에서 명시한 파싱 기능을 기준으로 판단

App Store에서 앱 찾기와 Apple ID 국가·지역

먼저 앱 다운로드 페이지에서 iOS용 앱을 확인한 다음 App Store에서 앱 이름, 개발자, 구매 정보를 대조하세요. App Store에서 다운로드할 수 있는 앱은 Apple 계정의 스토어 국가·지역에 따라 달라집니다. iPhone의 표시 언어나 ‘언어 및 지역’ 설정을 바꿔도 App Store 국가·지역은 변경되지 않습니다.

현재 App Store 국가·지역 확인

  1. iPhone에서 ‘설정’을 열고 상단의 Apple 계정 이름을 탭합니다.
  2. ‘미디어 및 구입 항목’ → ‘계정 보기’를 차례로 탭하고 안내에 따라 인증합니다.
  3. ‘국가/지역’을 확인합니다. iOS 버전에 따라 메뉴 이름이 조금 다를 수 있으니 계정 페이지에 표시된 항목을 확인하세요.
  4. App Store로 돌아가 정확한 앱 이름으로 검색하고, 아이콘뿐 아니라 개발자도 확인합니다.

앱이 검색되지 않으면 먼저 스토어 국가·지역에서 제공되지 않는 경우인지, iOS 버전이 요구 사항에 맞지 않는지, 앱의 판매 상태가 바뀌었는지 확인하세요. iPhone의 지역 설정을 반복해서 바꾸지 말고, 제3자 웹사이트의 설치 버튼을 App Store 페이지로 착각하지 않도록 주의하세요.

계정 국가·지역을 변경하기 전에 구매 관련 조건 확인

  • Apple의 안내에 따라 계정 잔액, 구독, 가족 공유 및 유효한 결제 수단을 정리하세요. 국가·지역을 변경하려면 먼저 이러한 항목을 처리해야 할 수 있습니다.
  • 직접 관리하는 계정을 사용하고, Apple 계정 암호나 이중 인증 코드를 앱 설치 대행자에게 알려주지 마세요.
  • 앱 다운로드는 ‘미디어 및 구입 항목’에서 처리할 수 있습니다. 프록시 앱을 설치하려고 기기 전체에서 iCloud 계정까지 로그아웃할 필요는 없습니다.
  • 유료 앱의 구매 내역은 계정에 연결됩니다. 이후 업데이트, 재다운로드 및 구입 항목 복원에 처음 구매한 계정이 필요할 수 있습니다.

앱 비용과 프록시 서비스 비용은 별개입니다. 앱을 구매해도 사용할 수 있는 노드가 자동으로 제공되지는 않으며, 구독이 있다고 해서 특정 앱을 구매한 것도 아닙니다. 다운로드가 끝나면 먼저 앱을 열어 기본 화면이 표시되는지 확인한 후 설정을 가져오세요.

구독 링크 가져오기

먼저 구독 제공업체의 계정 페이지에서 사용 중인 앱에 맞는 형식을 선택하세요. mihomo용 전체 YAML, 노드만 포함된 구독, 다른 앱 전용 설정은 서로 다른 메뉴에서 제공될 수 있습니다. 파일명이 같거나 주소가 모두 HTTPS로 시작하더라도 내용 형식까지 같다는 뜻은 아닙니다.

  1. 내보내기 형식 선택: Clash 스타일 설정을 사용하는 앱이라면 지원하는 YAML 형식을 먼저 확인하세요. Shadowrocket에서는 서비스 제공업체가 해당 앱용이라고 명시한 항목을 우선 선택합니다.
  2. 주소 전체 복사: 경로, 쿼리 매개변수, 토큰을 빠짐없이 복사하세요. 메신저에서 줄바꿈이 들어가거나 마지막 문자가 누락되면 인증에 실패할 수 있습니다.
  3. 원격 설정 추가: 앱의 설정 또는 구독 관리 화면에서 추가, URL 다운로드, 원격 설정 메뉴를 선택하세요. 앱마다 메뉴 이름은 다릅니다. 주소를 개별 노드의 서버 주소 입력란에 붙여넣지 마세요.
  4. 설정을 다운로드하고 선택: 목록에 설정 이름과 업데이트 시간이 표시되는지 확인하세요. 앱에서 사용할 설정을 별도로 선택해야 한다면 가져온 뒤 해당 설정을 활성화합니다.
  5. 정책 그룹 확인: 정책 또는 프록시 화면에서 최종 아웃바운드가 비어 있지 않은지 확인하고 사용할 수 있는 노드를 선택하세요.

가져오기에 실패하면 응답 유형부터 확인

HTTP 401 또는 403 오류가 나타나면 토큰, 계정 상태, 접근 제한을 먼저 확인하세요. 404 오류라면 복사한 경로가 완전한지 확인합니다. YAML 파싱 오류가 표시되면 실제 응답이 설정 파일이 아니라 로그인 페이지나 오류 안내 페이지인지 살펴보세요. 지원되지 않는 프로토콜이나 규칙 유형이라는 오류가 나면 오류 행을 삭제한 채 연결하지 말고 대상 앱에 맞는 내보내기 형식을 사용하세요.

브라우저에서 서비스 제공업체 홈페이지가 열리더라도 구독 주소에서 설정을 정상적으로 가져올 수 있다는 뜻은 아닙니다. 구독 API는 별도 도메인을 사용하거나 다른 주소로 리디렉션될 수 있습니다. 문제를 확인할 때는 오류 메시지와 발생 시간을 기록하고, 인증 정보가 포함된 응답 전체를 공개 게시판에 올리지 마세요.

로컬 YAML 및 규칙 의존성

설정 파일이 있다면 먼저 iPhone의 ‘파일’ 앱에 저장한 뒤 앱의 파일 가져오기 메뉴에서 선택할 수 있습니다. 공유 가져오기를 지원하는 앱은 공유 메뉴에서 파일을 전달해도 됩니다. 웹페이지 바로 가기나 메신저에서 텍스트 첨부 파일로 변환된 사본이 아니라 실제 설정 파일인지 확인하세요.

파일 확장자는 보통 .yaml 또는 .yml이지만 확장자만으로 호환 여부가 결정되지는 않습니다. 전체 설정에는 노드, 정책 그룹, 규칙, 원격 규칙 세트가 포함될 수 있습니다. rules만 있는 조각에는 프록시 노드가 없습니다. 아래는 일반적인 규칙의 순서를 보여 주는 예시이며, 그대로 연결할 수 있는 전체 설정이 아닙니다.

# 설정 조각: PROXY는 proxy-groups에 정의되어 있어야 합니다
rules:
  - DOMAIN-SUFFIX,example.com,DIRECT
  - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
  - MATCH,PROXY
  • DOMAIN-SUFFIX는 도메인 접미사로 일치 항목을 찾습니다. 예시 도메인은 문법을 설명하기 위한 것이므로 실제로 직접 연결해야 하는 도메인으로 바꿔야 합니다.
  • 192.168.0.0/16은 사설 IP 주소 범위입니다. 모든 LAN 주소를 포함하는 것은 아니며 프록시 앱이 LAN 트래픽을 반드시 처리한다는 뜻도 아닙니다.
  • no-resolve는 이 IP 규칙만을 위해 도메인을 직접 조회하지 않도록 하는 옵션입니다. DNS를 전역적으로 끄는 기능은 아닙니다.
  • MATCH는 마지막 기본 규칙으로 둡니다. 앞선 규칙이 일치하면 해당 연결에는 뒤의 규칙이 보통 적용되지 않습니다.

mihomo 설정을 옮길 때 확인할 세 가지

첫째, 정책 이름이 서로 일치해야 합니다. 규칙에서 PROXY를 참조한다면 이름이 같고 사용할 수 있는 구성원이 있는 정책 그룹이 필요합니다. 둘째, 원격 규칙 세트는 다운로드 가능해야 할 뿐 아니라 형식과 동작 유형도 앱에서 지원해야 합니다. 셋째, GEOSITE와 GEOIP는 각각 필요한 데이터와 구현에 의존하므로 둘 중 하나를 지원한다고 해서 모두 지원하는 것은 아닙니다.

데스크톱 설정의 컨트롤 포트, 리스닝 주소, TUN 라우팅 매개변수를 iOS 설정 절차에 그대로 적용하면 안 됩니다. iPhone에서는 앱과 시스템이 함께 터널을 구성하며, DNS, UDP 및 라우팅 동작은 해당 앱의 구현에 따라 달라집니다. 원격 구독을 수정하기 전에는 다음 업데이트에서 수동 변경 사항이 덮어써지지 않도록 앱의 오버라이드 기능이나 로컬 복사본 기능을 우선 사용하세요.

첫 연결과 VPN 구성 승인

설정을 가져오면 데이터가 로드된 상태입니다. 처음 연결을 탭하면 iOS에서 앱이 VPN 구성을 추가하려 한다는 안내가 표시되는 경우가 많습니다. 요청을 보낸 앱이 방금 설치한 앱인지 확인한 뒤 허용을 탭하고, 시스템 안내에 따라 기기 암호를 입력하거나 인증을 완료하세요. 이 단계는 시스템 네트워크 터널을 승인하는 것이며 프록시 서비스를 구매하는 절차가 아닙니다.

  1. 현재 설정이 선택되어 있고 정책 그룹에 사용할 수 있는 아웃바운드가 하나 이상 있는지 확인합니다.
  2. 규칙에 따라 트래픽을 분기하는 모드를 선택하세요. 앱에 따라 규칙, 설정 등 다른 이름으로 표시될 수 있으므로 앱 안내를 따릅니다.
  3. 연결을 탭하고 시스템 VPN 승인을 완료한 다음 앱에 연결 상태가 표시될 때까지 기다립니다.
  4. ‘설정’ → ‘일반’ → ‘VPN 및 기기 관리’ → ‘VPN’으로 이동해 해당 구성의 연결 상태를 확인합니다.

다른 VPN, DNS 도구 또는 네트워크 필터링 앱을 사용 중이라면 같은 종류의 터널을 점유할 수 있는 연결을 먼저 중지하고 별도로 테스트하세요. Network Extension 유형 간의 공존 여부는 구현에 따라 다르므로 모든 네트워크 도구를 동시에 켤 수 있다고 가정하면 안 됩니다. 일반적인 프록시 연결 문제를 해결하려고 시스템 보안 기능을 끄지 마세요.

규칙, DNS 및 실제 아웃바운드 확인

연결 후에는 ‘노드 접속 가능 여부 → 규칙 일치 여부 → 실제 요청’ 순서로 확인하세요. 지연 시간 테스트 성공은 해당 시점에 테스트 대상에 접속할 수 있었다는 뜻일 뿐, 동영상, 게임, 모든 웹사이트가 정상적으로 작동한다는 보장은 아닙니다. 노드 지연 시간, 페이지 로딩 시간, 대역폭은 서로 다른 지표이므로 밀리초 값을 다운로드 속도로 해석하지 마세요.

재현 가능한 테스트 수행

  1. 테스트 결과 확인: 선택한 노드 이름, 테스트 대상, 시간 초과 여부를 기록하세요. 테스트가 끝나기 전에 정책을 연달아 바꾸지 마세요.
  2. 프록시를 사용하는 사이트 열기: 앱의 연결 기록에서 대상 도메인, 일치한 규칙, 최종 노드를 확인하세요. 모든 앱에서 상세 로그를 제공하는 것은 아니므로 실제 화면에서 확인할 수 있는 정보를 기준으로 합니다.
  3. 출구 IP 비교: 같은 IP 조회 페이지를 사용해 연결을 끊었을 때와 연결했을 때의 결과를 각각 기록하세요. 조회 도메인이 프록시 정책에 일치해야 합니다. 그렇지 않다면 결과가 같아도 설정상 정상일 수 있습니다.
  4. 직접 연결 확인: 직접 연결로 설정한 서비스에 접속해 계속 사용할 수 있는지 확인하세요. 프록시 출구만 확인하고 로컬 서비스가 작동하는지 놓치지 않도록 합니다.

연결 기록에 대상 도메인이 표시되지만 이름 조회에 실패한다면 DNS 설정과 DNS 서버 연결 상태부터 확인하세요. 설정에서 fake-ip를 사용한다면 앱이 해당 방식을 지원하는지 확인합니다. 가상 매핑 주소를 웹사이트의 실제 서버 주소로 착각하지 말고, 로그의 가상 주소를 없애려고 DNS 설정 전체를 바꾸지 마세요.

테스트 중에는 Wi-Fi나 셀룰러 중 한 가지 네트워크를 유지해 네트워크 전환으로 변수가 생기지 않도록 하세요. iCloud 비공개 릴레이, 브라우저의 기존 연결 및 캐시도 비교 결과에 영향을 줄 수 있습니다. 이전 페이지를 닫고 새 요청을 보낸 다음 프록시 로그와 함께 확인하세요. 한 번 페이지가 열렸다고 해서 규칙이 일치했다는 기록을 대신할 수는 없습니다.

자주 발생하는 문제와 정기 업데이트

구독을 가져왔는데 선택할 노드가 없는 이유는 무엇인가요?

먼저 가져온 항목이 노드 구독인지, 전체 설정인지, 별도의 규칙 파일인지 확인하세요. 원격 프록시 그룹으로 노드를 불러오는 설정이라면 해당 그룹의 다운로드 결과와 참조 이름도 확인해야 합니다. 설정 파일을 파싱했다고 해서 모든 외부 리소스의 다운로드까지 끝난 것은 아닙니다.

VPN은 연결됨으로 표시되는데 웹페이지가 열리지 않으면 무엇부터 확인해야 하나요?

정책 그룹 구성원, 노드 테스트 결과, DNS 오류, 최종 일치 규칙을 차례로 확인하세요. 비교를 위해 확실히 사용할 수 있는 노드로 잠시 바꿔 볼 수 있지만 DNS, 규칙, 실행 모드를 동시에 변경하지 마세요. 한 번에 변수 하나만 바꾸고 원래 설정을 보관해 복구할 수 있도록 합니다.

데스크톱에서 작동하는 구독이 iPhone에서 오류를 일으키는 이유는 무엇인가요?

데스크톱용 mihomo와 iOS 앱은 지원하는 프로토콜, 규칙 파싱, 확장 필드가 다를 수 있습니다. 먼저 오류가 발생한 필드와 앱의 지원 안내를 확인한 다음 서비스 제공업체가 해당 앱용으로 제공하는 형식을 선택하세요. 파일 이름만 YAML로 바꾸거나 구독 주소를 다시 붙여넣는 것으로 파싱 기능 차이가 해결되지는 않습니다.

구독을 업데이트한 뒤 수동 규칙이 사라지는 이유는 무엇인가요?

원격 설정을 업데이트하면 로컬 내용이 바뀔 수 있습니다. 개인 설정은 앱에서 지원하는 오버라이드, 병합 기능 또는 별도 로컬 설정에 넣고 백업을 보관하세요. 업데이트 후에는 현재 설정, 정책 그룹 선택, 원격 규칙 세트 상태를 다시 확인해야 합니다. 업데이트 시간이 바뀌었는지만 확인해서는 안 됩니다.

정기적으로는 명확한 순서만 유지하면 됩니다. App Store에서 앱을 업데이트하고, 필요에 따라 구독을 갱신한 다음 노드, 규칙, DNS가 정상인지 확인하세요. 앱을 바꾸면 설정 형식을 다시 확인하고, 이전 앱의 메뉴 경로, 리스닝 포트, TUN 매개변수를 새 앱의 기본값으로 간주하지 마세요.