Clash 프로필이란: 설정 파일 기본 개념과 다중 설정 전환 관리 입문
프로필은 Clash 클라이언트가 불러와 적용하는 완전한 설정 단위로, 구독·노드·규칙과는 포함 관계에 있습니다. 이 글에서는 설정 파일의 출처, 저장 위치, 업데이트 방식, 그리고 여러 설정이 공존할 때의 전환·관리 방법을 정리합니다.
프로필은 Clash 클라이언트가 불러와 적용하는 완전한 설정 단위로, 구독·노드·규칙과는 포함 관계에 있습니다. 이 글에서는 설정 파일의 출처, 저장 위치, 업데이트 방식, 그리고 여러 설정이 공존할 때의 전환·관리 방법을 정리합니다.
Clash 및 그 파생 코어(Clash Premium, Clash Meta, mihomo)의 맥락에서 프로필(설정 파일)은 클라이언트가 실제로 불러와 적용하는 완전한 YAML 파일을 가리킵니다. '구독'과 동의어도 아니고 '노드 목록'과 동의어도 아닙니다—구독은 설정 파일을 얻는 하나의 경로일 뿐이고, 노드는 설정 파일 안의 일부 내용일 뿐입니다. 이 포함 관계를 명확히 이해해야 이후에 다룰 저장 위치, 업데이트 로직, 다중 설정 전환을 혼동 없이 설명할 수 있습니다.
일반적인 Clash 설정 파일은 보통 다음 순서로 구성됩니다:
이 다섯 구간이 합쳐져야 비로소 완전하게 사용 가능한 프로필이 됩니다. proxies 구간이 없으면 정책 그룹이 선택할 노드가 없고, rules 구간이 없으면 클라이언트는 mode의 전역 기본 동작에 따라 모든 트래픽을 처리할 수밖에 없어 '트래픽 분기'라 할 수 없습니다.
획득 방식에 따라 프로필은 대체로 세 가지로 나뉘며, 실제 사용에서는 종종 섞어서 사용합니다:
가장 흔한 방식입니다. 서비스 제공자가 HTTP(S) 링크를 제공하고, 클라이언트가 이 링크를 요청하면 서버가 노드 정보를 반환합니다(완전한 YAML을 그대로 반환하는 경우도 있고, Base64로 인코딩된 노드 목록인 경우도 있습니다). 대부분의 Clash 계열 클라이언트(Clash Verge, FlClash, ClashX Meta 등)는 노드 데이터를 받은 후 내장 또는 사용자 지정 규칙 템플릿과 결합해 완전하게 사용 가능한 프로필을 조립한 뒤 로컬에 저장합니다. 같은 구독 링크라도 클라이언트마다 정책 그룹 구조나 규칙 수가 완전히 같지 않을 수 있는 이유가 바로 조립 템플릿이 다르기 때문입니다.
다른 사람이 공유했거나 직접 정리한 YAML 파일이 있다면, 클라이언트의 '파일에서 가져오기' 기능으로 네트워크 요청 없이 바로 불러올 수 있습니다. 이런 프로필은 자동으로 업데이트되지 않고 내용이 완전히 고정되어 있어, 디버깅이나 오프라인 상황에 적합합니다.
숙련된 사용자는 텍스트 에디터나 클라이언트 내장 설정 편집 패널을 이용해 proxy-groups, rules 구간을 직접 작성하거나 수정합니다. 흔한 사례로는 특정 정책 그룹에 사용자 노드를 추가하거나, 특정 앱에 별도의 출구를 지정하거나, 특정 도메인을 차단하는 경우가 있습니다. 이런 수정을 하기 전에는 원본 파일을 백업해 두는 것이 좋으며, 문법 오류로 클라이언트 로딩이 실패했을 때 되돌릴 수 없는 상황을 방지할 수 있습니다.
프로필은 로컬 파일이며 구체적인 저장 경로는 클라이언트마다 다릅니다. 문제를 진단할 때는 종종 디렉터리에 직접 들어가 파일이 실제로 업데이트됐는지 확인해야 합니다. 주요 클라이언트의 대략적인 저장 규칙은 다음과 같습니다:
| 클라이언트 | 설정 파일 저장 규칙 | 설명 |
|---|---|---|
| Clash Verge / Clash Verge Rev | 앱 데이터 디렉터리 아래 profiles 폴더, 각 구독마다 해시/UUID로 이름 지어진 .yaml 파일 하나씩 대응 | config.yaml에 현재 활성화된 파일이 기록됨 |
| ClashX Meta(macOS) | 사용자 홈 디렉터리 아래 .config/clash/ 폴더 | 터미널이나 에디터로 해당 파일을 바로 열 수 있음 |
| FlClash(크로스 플랫폼) | 앱 전용 데이터 디렉터리 내 profile 하위 폴더 | 모바일에서는 파일을 직접 수정하기보다 내장 편집 패널을 사용하는 것이 더 안전함 |
| 순수 코어(mihomo/Clash Meta core) | 실행 파라미터 -f로 지정한 경로, 기본값은 현재 디렉터리의 config.yaml | GUI 래퍼가 없어 경로가 실행 방식에 완전히 의존함 |
강조할 점은, 대부분의 그래픽 클라이언트에서는 앱 데이터 디렉터리에 있는 이 자동 생성 파일을 사용자가 직접 수정하는 것을 권장하지 않는다는 점입니다—클라이언트 자체의 업데이트 로직이 다음 새로고침 시 수동으로 수정한 내용을 덮어쓸 수 있기 때문입니다. 사용자 규칙을 장기적으로 유지해야 한다면, 클라이언트가 제공하는 '설정 병합' 또는 '오버라이드(override)' 기능을 이용해 사용자 정의 조각을 별도로 저장하고 구독으로 생성된 메인 설정 위에 덧씌우는 방식이 더 안전합니다.
구독 링크로 얻은 프로필만 '업데이트'라는 동작을 가지고 있으며, 로컬에서 가져왔거나 직접 작성한 파일은 스스로 변하지 않습니다. 업데이트 메커니즘은 주로 다음 두 항목에 좌우됩니다:
업데이트 시 클라이언트는 보통 노드 관련 내용만 교체하며, 사용자가 로컬에서 추가한 사용자 규칙은 건드리지 않습니다(단, '병합/오버라이드' 메커니즘을 사용했고 자동 생성 파일 본체를 직접 수정하지 않았다는 전제하에서입니다). 업데이트 후 사용자 정의 분기 규칙이 사라졌다면, 대부분 덮어써지는 메인 파일에 직접 수정을 가한 경우이므로 오버라이드 기능을 사용해 다시 설정해야 합니다.
대부분의 사용자는 설정 하나만 사용하지 않습니다—예를 들어 두 서비스 제공자를 동시에 구독하거나, 스트리밍 분기용 커스텀 버전과 일상용 미니멀 버전을 로컬에 각각 저장해 두는 경우입니다. 이런 상황에서는 설정 파일의 '전환'과 '관리'가 일상적인 사용에서 피할 수 없는 부분이 됩니다.
클라이언트 코어는 실행 중 프로필 하나만 불러옵니다. 그래픽 화면에서 보이는 '설정 목록'은 본질적으로 저장된 여러 개의 YAML 파일이며, 항목을 클릭하면 해당 파일이 현재 활성 설정으로 지정되고 클라이언트가 코어를 다시 읽어 새로운 proxies, proxy-groups, rules를 적용합니다. 전환 과정에서 짧은 연결 끊김이 발생하는 것은 정상적인 현상입니다.
설정 수가 많아지면 기본으로 생성된 파일명만으로는 용도를 구분하기 어렵습니다. 클라이언트에서 각 설정의 이름을 다시 지정해 출처와 용도를 명확히 표시하는 것이 좋습니다. 예를 들어 '일상 구독', '임시 테스트', '로컬 커스텀 규칙' 등으로 구분하면 잘못된 설정을 선택할 확률을 줄일 수 있습니다. 일부 클라이언트는 설정에 태그를 달거나 그룹으로 묶는 기능을 지원해 상황별로 정리할 수 있습니다.
기존 구독을 기반으로 사용자 규칙 몇 개만 추가하고 싶다면(예: 특정 내부 서비스 도메인을 강제로 직접 연결), 완전한 설정을 새로 만들 필요 없이 클라이언트의 '오버라이드(override)' 또는 '설정 병합' 기능을 사용하는 것이 좋습니다. 이 기능들은 작은 YAML 조각(보통 추가하거나 대체할 규칙만 포함)을 따로 관리할 수 있게 해주며, 적용 시 메인 설정 위에 덧씌워집니다. 메인 설정이 업데이트되어도 오버라이드 조각은 그대로 유지되어 다시 추가할 필요가 없습니다.
오랫동안 쓰지 않는 테스트 설정은 되도록 빨리 삭제하는 것이 좋습니다. 특히 실제 노드 인증 정보가 담긴 파일은 더욱 그렇습니다—구독이 이미 만료되었더라도 파일 안의 키 정보는 여전히 평문으로 로컬에 저장되어 있으므로, 오래된 설정을 정리하는 것도 기본적인 사용 습관 중 하나입니다.
| 질문 | 결론 |
|---|---|
| 프로필과 구독은 같은 것인가요 | 아닙니다. 구독은 프로필을 얻는 하나의 경로이고, 프로필은 최종적으로 적용되는 완전한 설정 파일입니다 |
| 설정 파일을 직접 수정하면 다음 업데이트 때 덮어써지나요 | 자동 생성된 메인 파일을 직접 수정하면 덮어써질 수 있습니다. 오버라이드/병합 기능으로 사용자 정의 내용을 따로 저장하는 것을 권장합니다 |
| 여러 설정이 동시에 적용될 수 있나요 | 코어는 한 번에 하나만 불러오며, 여러 설정은 동시 중첩이 아니라 전환으로 처리됩니다(중첩은 오버라이드 메커니즘으로 처리) |
| 로컬에서 가져온 파일도 자동으로 업데이트되나요 | 아닙니다. 구독 링크에 연결된 설정만 자동/수동 업데이트 기능을 가집니다 |
이 점들을 명확히 정리하고 나서 클라이언트 화면의 '설정 관리', '구독 정보', '오버라이드' 같은 항목을 보면, 본문에서 다룬 저장·업데이트·중첩이라는 세 가지 메커니즘과 자연스럽게 연결되어 프로필, 구독, 노드, 규칙이라는 개념을 더 이상 혼동하지 않게 됩니다.