Clash 설정 다중 기기 동기화: 모바일·PC 구독과 규칙 일치시키는 방법
구독 링크 자동 동기화, 개인 설정 호스팅, 수동 내보내기·가져오기 세 가지 방식을 비교하고 적용 상황과 절차, 주의점을 정리했습니다.
먼저 구분하기: 다중 기기 동기화가 다루는 두 가지 대상
다중 기기 동기화를 논하기 전에, 기기 한 대의 Clash 클라이언트 안에 실제로 무엇이 저장되어 있는지 먼저 살펴보겠습니다. 설정은 크게 두 종류로 나뉩니다. 하나는 구독에서 오는 것, 다른 하나는 로컬에 고정된 것입니다.
구독이 내려주는 내용에는 노드 목록, 프록시 정책 그룹, 분기 규칙이 포함되며, 이는 구독 링크 뒤의 제공자가 관리합니다. 제공자가 업데이트하면 각 기기에서 다시 가져오기만 하면 동일한 내용을 받게 됩니다. 반면 로컬 설정은 완전히 다릅니다. 실행 모드(규칙, 글로벌, 다이렉트), 혼합 포트, 시스템 프록시 스위치, TUN 모드, 자동 시작, 인터페이스 설정 등은 모두 각 기기의 로컬 저장소에 기록되어 있으며, 어떤 동기화 방식도 이를 대신 옮겨주지 않습니다.
즉 다중 기기 동기화의 본질은 구독 내용을 일괄적으로 내려주고 제때 업데이트하는 문제이며, 로컬 설정은 기기별로 하나씩 직접 맞춰야 합니다. 아래 세 가지 방식의 차이는 결국 앞부분을 어떻게 구현하느냐에 있습니다.
방법 1: 구독 링크로 자동 동기화
적용 상황: 노드가 모두 같은 구독 제공자에서 오고, 커스텀 규칙을 아예 쓰지 않거나 아주 조금만 씁니다. 유지 비용이 가장 낮은 방식이며, 대부분 여기서 시작합니다.
방법은 한 줄로 요약됩니다. 동일한 구독 링크를 각 기기의 클라이언트에 하나씩 추가하는 것입니다. 노드, 정책 그룹, 규칙이 모두 구독 내용에서 오므로, 제공자가 업데이트한 후 각 기기에서 업데이트 버튼을 한 번씩 눌러주면 다시 일치하게 됩니다.
- 구독 제공자의 관리 페이지에서 Clash 또는 Clash Meta(mihomo)로 표시된 구독 링크를 복사합니다.
- PC 클라이언트(Clash Verge Rev, Clash Nyanpasu 등)에서 설정 페이지로 이동해 원격 설정을 새로 추가하고, 링크를 붙여넣은 뒤 저장합니다.
- Android 클라이언트(Clash Meta for Android, FlClash) 역시 구독 설정을 새로 추가하며, iOS 클라이언트도 절차가 동일합니다.
- 각 기기에서 자동 업데이트 주기를 24시간 정도로 설정하면, 노드와 규칙이 제공자의 업데이트에 맞춰 자동으로 맞춰집니다.
구독 링크에는 인증 정보가 포함되어 있어, 링크 자체가 계정 자격증명과 같습니다. 캡처해서 채팅방에 올리거나 공개 저장소에 커밋하거나 출처 불명의 온라인 변환 사이트에 붙여넣지 마세요. 유출이 의심되면 즉시 제공자 관리 페이지에서 구독을 재설정하세요.
이 방식에서 흔히 놓치는 부분:
- 클라이언트 차이: 일부 클라이언트는 기본적으로 범용 노드 목록을 받아 로컬에서 변환하는 방식이라, Clash 설정을 직접 내려주는 구독과 동작이 다를 수 있습니다. 가능하면 제공자가 Clash 또는 mihomo로 표시한 구독 주소를 사용하세요.
- 업데이트 시점: 각 기기의 자동 업데이트 시각이 다르므로 노드 목록이 잠시 어긋나는 것은 정상이며, 수동으로 한 번 업데이트하면 다시 맞춰집니다.
- UA 템플릿: 일부 제공자는 클라이언트 식별값에 따라 다른 설정 템플릿을 내려주므로, 두 기기가 받은 규칙 세부 사항이 다를 수 있습니다. 제공자 문서를 기준으로 확인하세요.
방법 2: 개인 설정 호스팅으로 커스텀 규칙 전체 배포
적용 상황: 커스텀 규칙, 여러 정책 그룹, DNS 설정을 많이 직접 관리하며, 모든 기기가 바이트 단위까지 동일한 설정 파일을 받길 원하는 경우입니다.
방법은 정리해둔 완전한 YAML 설정을 자신만 접근 가능한 URL에 올려두고, 각 기기에서 이를 원격 구독으로 추가하는 것입니다. 이후에는 이 파일 하나만 수정하면 되며, 각 기기에서 업데이트하면 곧바로 적용되어 규칙 순서, 정책 그룹 구조, DNS 동작이 모두 일치합니다.
실현 가능한 호스팅 방식:
- 비공개 Git 저장소: GitHub 비공개 저장소의 raw 파일 링크에 액세스 토큰을 결합하거나, 비공개 Gitee 저장소를 사용합니다. 변경 사항을 커밋한 후 각 기기에서 구독을 업데이트하면 됩니다.
- 자체 배포 구독 변환기: 자신의 서버나 NAS에서 subconverter 같은 백엔드를 돌려, 상위 구독과 커스텀 규칙 템플릿을 조합해 완전한 Clash 설정을 출력하고, 주소에 별도 토큰을 붙입니다.
- 내부망 정적 서비스: NAS나 가정용 서버에서 WebDAV나 간단한 HTTP 서버로 설정 파일을 공개하되, 가정 내부망이나 암호화 터널을 통해서만 접근 가능하게 합니다.
호스팅한 설정에서 필요에 따라 원격 규칙셋을 참조하는 mihomo 예시 조각:
mixed-port: 7890
dns:
enable: true
nameserver:
- 223.5.5.5
- 119.29.29.29
rule-providers:
my-rules:
type: http
behavior: classical
url: "https://your-hosting-address/rules/my-rules.yaml"
path: ./providers/my-rules.yaml
interval: 86400
rules:
- RULE-SET,my-rules,Proxy
- MATCH,DIRECT
이 방식에서 흔히 놓치는 부분:
- 커널 차이: Clash Meta(mihomo)는 rule-providers, tun 등의 필드를 지원하지만, 업데이트가 중단된 원조 Clash는 이 키들을 인식하지 못합니다. 공유 설정은 각 기기 커널의 공통 부분만 사용하거나, 커널별로 두 개의 파일로 나눠 관리해야 합니다.
- 자격증명 보호: 설정에는 노드 서버와 비밀번호가 포함되므로, 호스팅 주소에는 추측하기 어려운 접근 자격증명을 반드시 붙여야 합니다. 유출 시 결과는 구독 유출과 동일합니다.
- 캐시 문제: Git 플랫폼의 raw 링크에는 캐시가 있어, 수정 직후 곧바로 업데이트해도 이전 버전을 받을 수 있습니다. 몇 분 기다리거나 URL에 버전 파라미터를 추가하세요.
- 경로 문제: 설정에서 참조하는 로컬 규칙 파일 경로는 플랫폼마다 다르므로, 가능하면 rule-providers로 원격 규칙셋을 쓰고 상대 경로는 피하세요.
방법 3: 수동 내보내기·가져오기
적용 상황: 기기가 두세 대뿐이고 설정 변경이 거의 없거나, 어떤 데이터도 제3자를 거치지 않길 원하는 경우입니다.
PC 클라이언트는 대체로 현재 설정을 YAML 파일이나 전체 백업으로 내보낼 수 있고, 모바일 클라이언트는 파일에서 가져오기를 지원합니다. 전송은 로컬 네트워크 공유, USB, 암호화 압축 파일 등으로 하면 됩니다.
- 주로 쓰는 기기에서 현재 적용 중인 설정 파일을 내보냅니다.
- 로컬 네트워크나 암호화 압축 파일을 통해 목표 기기로 파일을 전송합니다.
- 목표 기기의 클라이언트에서 파일로 가져오기를 선택하고, 저장한 뒤 적용합니다.
- 포트, DNS, TUN 설정이 예상대로 적용되었는지 하나씩 확인합니다.
이 방식에서 흔히 놓치는 부분:
- 버전 어긋남: 한쪽만 수정하고 다른 쪽은 잊어버리면 몇 주 뒤 두 설정 파일이 이미 갈라져 있을 수 있습니다. 문제를 확인할 땐 먼저 두 파일의 수정 시각을 비교하세요.
- 플랫폼 차이: Android 클라이언트가 지원하는 설정 필드는 PC용 mihomo와 완전히 같지 않으므로, 가져온 뒤 DNS와 TUN 항목이 실제로 적용됐는지 먼저 확인하세요.
- 인증은 옮겨지지 않음: HTTPS 복호화 인증서, TUN에 필요한 관리자 권한이나 VpnService 인증은 기기 하나에 묶여 있어 설정 파일로는 옮길 수 없으며, 기기마다 다시 인증해야 합니다.
세 가지 방식 비교와 선택 가이드
| 방식 | 동기화 대상 | 일관성 | 자격증명 위험 | 유지 비용 | 적합한 경우 |
|---|---|---|---|---|---|
| 구독 링크 자동 동기화 | 제공자가 내려주는 노드와 규칙 | 높음, 같은 소스에서 각자 받음 | 구독 링크 보안 필요 | 가장 낮음 | 노드가 같은 구독에서 오고 규칙을 손대지 않는 경우 |
| 개인 설정 호스팅 | 커스텀 전체 설정 | 가장 높음, 동일한 파일 | 호스팅 방식에 따라 다름 | 중간 | 커스텀 규칙과 정책 그룹을 많이 쓰는 경우 |
| 수동 내보내기·가져오기 | 내보낸 시점의 스냅샷 | 시간이 지나면 어긋남 | 제3자를 거치지 않음 | 낮지만 매번 수동 작업 | 기기가 적고 변경이 드물며 프라이버시를 중시하는 경우 |
대부분에게 최적의 방법은 방법 1을 기본으로 하는 것입니다. 노드와 규칙은 구독으로 해결하고, 로컬 설정은 기기마다 한 번씩 맞춰두면 됩니다. 커스텀 규칙이 규모를 갖추기 시작할 때만 방법 2로 넘어갈 가치가 있고, 방법 3은 출장 중 긴급 상황이나 프라이버시 요구가 매우 높은 경우를 위해 남겨두면 됩니다.
동기화 외에 기기별로 따로 처리해야 할 것들
- 실행 모드, 혼합 포트, 시스템 프록시, 자동 시작은 모두 로컬 설정이라 세 방식 모두 동기화하지 않으므로, 기기마다 한 번씩 직접 설정해야 합니다.
- TUN 모드는 기기별로 따로 켜고 꺼야 합니다. PC에서는 관리자 또는 root 권한이 필요하고, Android에서는 VpnService 팝업으로 인증하며, 인증 결과는 서로 공유되지 않습니다.
- 각 기기의 커널 버전은 가능한 한 비슷하게 유지하세요. 메이저 버전 차이가 클 때는 새 필드를 mihomo 문서에서 먼저 확인한 뒤 공유 설정에 반영하세요.
- 시스템 시간은 반드시 정확해야 합니다. 구독 업데이트와 노드 TLS 핸드셰이크는 모두 정확한 시간에 의존하며, 오차가 크면 곧바로 실패해 구독을 못 받거나 노드가 전부 타임아웃되는 형태로 나타납니다.
- 설정을 수정한 뒤 효과를 확인하려면 클라이언트 로그와 연결 패널에서 각 연결이 매칭된 규칙을 확인하는 것이 감으로 판단하는 것보다 훨씩 확실합니다.