이 글의 목차
구성 오류가 나면 파일 전체를 보내는 것이 가장 빨라 보이지만 구독과 노드 비밀번호까지 노출할 수 있습니다. 복원용 원본 백업과 문의용 사본은 따로 보관하세요. 원본은 완전한 상태로 암호화하고, 사본에는 오류 재현에 필요한 구조와 임시 값만 남깁니다. 스크린샷, 스캔 코드, 로그도 함께 확인해야 합니다.
도움을 요청할 파일에서 어떤 정보를 숨겨야 할까요?
아래 표에 따라 구성, 로그, 스크린샷을 확인하고 구독 token, 노드 비밀번호, 컨트롤러 secret, 내부 네트워크 정보를 가리세요. 문의용 사본을 별도로 저장하고 로컬에서 원래 문제가 계속 재현되는지 확인합니다. 원본 백업은 직접 수정하지 말고 다음 절의 보관 방법을 따르세요.
공유 전에 항목별로 찾기
| 위치 또는 필드 | 노출될 수 있는 내용 | 처리 방법 |
|---|---|---|
| 구독 URL 쿼리 매개변수 | 전체 구성을 직접 가져올 수 있는 token | 전체 URL을 삭제하고 도메인과 상태 코드만 남김 |
| proxies 노드 | server、UUID、password、PSK、private-key | example.com과 REDACTED로 대체 |
| external-controller / secret | 로컬 제어 주소와 API 키 | 필드 구조는 유지하고 실제 값은 교체 |
| 로그와 화면 | Authorization, Cookie, 사용자 이름과 QR 코드 | 관련 없는 화면을 잘라내고 다시 전체 확인 |
| LAN과 회사 도메인 | 내부망 주소, 호스트 이름과 토폴로지 | 문제에 반드시 필요한 최소 범위만 유지 |
원본 백업은 암호화하고 최소 재현 사본은 따로 만들기
원본 백업에는 실제 구독, 노드와 로컬 덮어쓰기 설정을 그대로 두고, 직접 관리하는 암호화된 저장 공간에만 보관하세요. 문제 확인용 사본은 새 파일에서 시작해 문제를 재현하는 데 필요한 필드만 추가하세요. 원본 내용을 하나씩 지우는 방식으로 만들지 마세요. 긴 URL, Provider header, 스크립트 인수를 놓치기 쉽습니다.
백업 파일 이름에 클라이언트, 코어와 날짜를 포함할 수 있습니다. 예를 들면 verge-macos-2026-07-16-private.zip입니다. 압축만으로 파일이 암호화되는 것은 아닙니다. 클라우드 저장소에 보관하려면 플랫폼의 종단 간 암호화 또는 암호화 아카이브를 사용하고 공유 권한을 제한하세요.
자리표시자 값으로 구조를 이해할 수 있는 최소 구성 만들기
mixed-port: 7890
external-controller: 127.0.0.1:9090
secret: REDACTED
proxies:
- name: test-node
type: socks5
server: example.com
port: 1080
username: REDACTED
password: REDACTED
proxy-groups:
- name: Test
type: select
proxies: [test-node, DIRECT]
rules:
- DOMAIN,example.org,Test
- MATCH,DIRECTDNS 문제라면 DNS, 테스트 정책 그룹 하나와 관련 규칙만 남기세요. YAML 파싱 문제라면 오류 줄 앞뒤의 계층을 보존합니다. 값을 대체한 뒤에도 로컬에서 같은 오류를 유발하는지 확인해야 합니다. 그렇지 않으면 다른 사람이 보는 것은 이미 원래 문제가 아닙니다.
보내기 전에 텍스트 검색으로 수동 검사 한 번 더 수행
먼저 공유할 사본 디렉터리로 이동하세요. 첫 번째 rg 명령은 그 안의 파일만 검색합니다. 뒤의 Git 명령들은 실제 Git 저장소에서만 실행하세요. 해당 저장소의 루트 디렉터리로 이동한 뒤 path/to/config.yaml을 저장소 루트 기준 설정 파일의 실제 경로로 바꾸세요.
git diff --staged는 커밋할 내용을, git log --all은 각 참조의 관련 이력을 보여 줍니다. 명령 오류, 잘못된 경로, 일치하는 커밋이 없는 결과만으로 자격 증명이 저장소에 들어간 적 없다고 입증할 수는 없습니다. Git 저장소가 아닌 사본은 텍스트만 검사하고 이력 정리가 끝났다고 간주하지 마세요.
rg -n -i 'token|secret|password|passwd|uuid|private-key|authorization|cookie' .
git diff --staged
git log --all -- path/to/config.yaml검색은 일반적인 필드만 알려 줄 뿐 사용자 header, QR 코드와 이름을 바꾼 인증 정보는 식별하지 못합니다. 검색 결과를 확인한 뒤에도 공유할 파일을 줄마다 읽고 터미널 프롬프트, 브라우저 탭과 화면 알림을 검사해야 합니다.
실제 구성을 이미 보냈다면 계속 가리지 말고 인증 정보 교체
원본 파일을 그룹 채팅, 지원 요청 또는 공개 저장소에 올렸다면 민감 정보를 가린 사본을 다시 올려도 이후의 오용을 줄일 뿐 기존 인증 정보는 무효가 되지 않습니다. 노출된 인증 정보를 변경해 이전 값을 사용할 수 없게 하세요.
| 유출된 내용 | 즉시 처리 |
|---|---|
| 전체 구독 URL | 서비스 관리 페이지에서 token/구독 주소를 재설정하고 모든 기기 업데이트 |
| external-controller secret | 새 secret을 만들고 제어 포트가 신뢰할 수 없는 네트워크에 열려 있지 않은지 확인 |
| 노드 인증 정보 | 서버 관리자가 비밀번호, UUID, PSK 또는 개인 키를 교체 |
| Git 기록 | 노출된 인증 정보를 모두 폐기하거나 교체한 뒤 필요에 따라 기록을 정리하세요. 최신 파일만 삭제해서는 충분하지 않습니다. |
| 공개 로그 또는 화면 | 확산을 줄이도록 게시물을 회수하고 그 안에 노출된 실제 인증 정보를 모두 변경하세요 |
교체 후 로그인하지 않은 창에서 기존 구독 주소에 접근하거나 기존 secret으로 제어 인터페이스에 요청해 실제로 무효화되었는지 확인합니다. 클라이언트 표시 이름을 바꾸거나 공개 게시물을 삭제하는 것으로 이 검증을 대신할 수 없습니다.
설정, 로그와 스크린샷을 공유할 수 있는 조건
전송 가능한 조건
- 최소 사본으로도 로컬에서 같은 오류를 재현할 수 있음
- 모든 URL 쿼리 매개변수, 노드 인증과 secret을 교체함
- 로그에 Authorization, Cookie, 로컬 사용자 이름과 절대 경로가 없음
- 화면에 QR 코드, 계정, 알림과 관련 없는 탭이 없음
- 원본 전체 백업이 공개 저장소 또는 공유 링크에 들어간 적이 없음
