컴퓨터와 Android 기기에서 같은 서버 그룹을 사용할 때 ‘설정 동기화’에는 보통 서로 다른 세 가지 목표가 포함됩니다. 노드 동기화, 라우팅 규칙 동기화, 클라이언트 매개변수 동기화입니다. 이 셋은 구분해야 합니다. 구독 링크는 노드 목록을 통일하는 데 적합하지만 v2rayN의 시스템 프록시 모드까지 자동으로 복사하지는 않습니다. QR 코드는 단일 노드를 임시로 옮기기 좋지만 구독 업데이트를 계속 따라가지는 못합니다. 내보내기·가져오기는 더 많은 로컬 정보를 보존할 수 있지만, 파일 구조가 클라이언트와 코어 버전의 제약을 받을 수 있습니다.
이 글은 v2rayN과 v2rayNG 또는 v2flyNG를 함께 사용하는 사용자를 대상으로 합니다. v2rayN 7.12.5, v2rayNG 1.10.16, v2flyNG 1.10.16을 기준으로 구독, 파일, QR 코드 세 가지 이전 경로를 비교하고 노드, DNS, 라우팅 규칙을 각각 확인하는 방법을 설명합니다.
먼저 동기화할 설정 계층을 정하세요
V2Ray 클라이언트 화면에 표시되는 노드 하나에는 최소한 프로토콜, 서버 주소, 포트, 사용자 식별자, 전송 방식, 보안 계층, 서버 이름 등의 필드가 포함됩니다. VMess와 VLESS 노드는 TCP, WebSocket, gRPC, TLS 또는 Reality를 조합할 수도 있습니다. 이전 과정에서 핵심 필드 하나라도 빠지면 클라이언트는 가져오기를 완료한 것처럼 보여도 실제 연결을 수립하지 못할 수 있습니다.
라우팅 분할은 별도의 계층입니다. v2rayN의 LAN 우회, 도메인별 라우팅, 사용자 지정 규칙은 대개 클라이언트가 실행 설정을 생성한 뒤 Xray 또는 v2ray 코어에 전달하는 방식으로 처리됩니다. v2rayNG의 사전 정의 규칙, 앱별 프록시, 로컬 DNS 옵션은 Android 기기에 저장됩니다. 양쪽이 같은 구독을 사용해도 노드 이름과 주소만 같을 뿐 라우팅 동작은 달라질 수 있습니다.
구독 링크
권장구독 소스에서 노드 추가·삭제, 주소 변경, 프로토콜 매개변수를 통합 관리하므로 양쪽 기기에서 각각 업데이트하면 같은 서버 목록을 받을 수 있습니다.
적합: 장기 사용, 다중 노드, 지속적인 업데이트가 필요한 경우
내보내기 및 가져오기
공유 링크, 클라이언트 백업 또는 구조화된 설정 파일을 사용해 일괄 이전하는 방식으로, 구독 소스가 없는 자체 구축 노드와 로컬 메모에 적합합니다.
적합: 일회성 기기 교체, 오프라인 백업, 자체 구축 설정
QR 코드 이전
단일 VMess 또는 VLESS 공유 정보를 QR 코드로 인코딩한 뒤 Android 기기에서 스캔해 노드 기록을 생성합니다.
적합: 노드 1~3개를 임시로 전달할 때
방법 1: 같은 구독으로 노드 목록 통합하기
안정적인 여러 기기 사용 방법은 데스크톱과 Android 기기가 같은 구독 주소를 읽도록 구성하는 것입니다. 구독 서버는 노드 집합을 반환하고, 클라이언트가 그 내용으로 로컬 기록을 생성합니다. 업데이트할 때는 양쪽에서 각각 ‘구독 업데이트’를 실행해야 하며, v2rayN의 데이터베이스 파일을 Android 기기에 직접 복사해서는 안 됩니다.
아래 절차는 v2rayN 7.12.5를 기준으로 합니다. 세부 버전에 따라 버튼 위치는 달라질 수 있지만 대상은 여전히 ‘구독 그룹’입니다. 추가하기 전에 링크 전체를 복사해 채팅 도구나 줄바꿈 때문에 쿼리 매개변수가 잘리지 않도록 하세요.
-
그룹 만들기
v2rayN을 열고 「구독 그룹」→「구독 그룹 설정」→「추가」로 이동한 다음 알아보기 쉬운 별칭을 입력합니다.
-
링크 붙여넣기
전체 구독 주소를 URL 필드에 입력하고 주소의 경로, 물음표, 매개변수를 그대로 유지한 뒤 확인하고 설정 창을 닫습니다.
-
노드 업데이트
「구독 그룹」→「모든 구독 업데이트(프록시 사용 안 함)」로 이동합니다. 현재 네트워크에서 구독 소스에 직접 접속할 수 없다면 프록시를 통한 업데이트 항목을 사용하세요.
-
코어 선택
「설정」→「매개변수 설정」→「Core 유형」을 열고 노드 프로토콜에 따라 Xray 또는 v2ray 코어를 선택한 뒤 관련 서비스를 다시 시작합니다.
-
Android에서 가져오기
v2rayNG 메인 화면에서 사이드 메뉴를 열고 「구독 설정」으로 이동해 같은 주소를 추가한 다음 돌아와 「구독 업데이트」를 실행합니다.
권장 구성: 양쪽 기기에서 하나의 구독 공유
데스크톱(v2rayN)
- VLESS 및 Reality 처리는 Xray 코어 사용
- 로컬 SOCKS 인바운드는 10808 포트 유지
- 업데이트 후 지연 시간에 따라 활성 노드 다시 선택
Android(v2rayNG)
- 같은 구독 링크로 노드 가져오기
- 필요에 따라 앱별 프록시와 로컬 DNS 설정
- 업데이트 후 현재 선택된 노드 다시 확인
구독은 노드 소스를 통합하지만 프록시 모드, DNS, 라우팅 규칙은 양쪽 기기에서 따로 관리해야 합니다.
구독 업데이트 후 기존 노드가 삭제되는지는 클라이언트 버전, 그룹 설정, 구독 결과에 따라 달라집니다. 이전 전에 노드 총 개수만 비교하지 말고 서버 주소, 포트, 프로토콜, 보안 계층, 전송 방식을 일부 표본으로 확인하세요. 노드 이름이 같다고 해서 내부 매개변수까지 같다는 뜻은 아닙니다.
방법 2: 기기 교체와 로컬 백업에는 내보내기·가져오기
구독 링크가 없다면 클라이언트의 공유 링크, 일괄 내보내기 또는 백업 기능을 사용할 수 있습니다. 여기서는 ‘노드 공유 설정’과 ‘실행 시 JSON’을 구분해야 합니다. 전자는 보통 vmess:// 또는 vless://로 시작하며 서버 기록 하나를 설명합니다. 후자는 inbounds, outbounds, routing, dns 등의 전체 블록을 포함해 주로 코어 실행에 사용되며, 다른 그래픽 클라이언트에서 편집 가능한 노드로 바로 복원되지 않을 수 있습니다.
| 이전 대상 | 권장 전달 형식 | 보존 가능한 내용 | 주요 제한 |
|---|---|---|---|
| 단일 VMess/VLESS 노드 | 공유 링크 | 주소, 포트, 사용자 식별자, 전송 및 보안 매개변수 | 클라이언트 프록시 모드는 포함하지 않음 |
| 여러 로컬 노드 | 일괄 공유 텍스트 또는 클라이언트 백업 | 여러 서버 기록과 일부 메모 | 클라이언트 간 필드 매핑이 다를 수 있음 |
| 전체 코어 실행 구조 | JSON 파일 | 인바운드, 아웃바운드, DNS, 라우팅, 정책 | 일반적으로 그래픽 인터페이스의 노드로 바로 변환할 수 없음 |
| 장기 노드 집합 | 구독 링크 | 서버에서 지속적으로 배포하는 노드 매개변수 | 로컬 규칙과 환경 설정은 구독과 함께 동기화되지 않음 |
v2rayN에서 자체 구축 노드를 이전할 때는 서버 목록에서 대상 기록을 선택한 뒤 서버 메뉴에서 공유 링크를 복사할 수 있습니다. 여러 링크는 ‘한 줄에 하나’ 형식을 유지한 다음 대상 클라이언트에서 ‘클립보드에서 일괄 가져오기’를 사용하세요. 가져오기가 끝났다고 기존 기기의 설정을 바로 삭제하지 말고, 연결 상태와 필드를 먼저 확인하세요.
vless://사용자 식별자@server.example:443?type=grpc&security=tls&sni=server.example#office-grpc
vmess://인코딩된 단일 노드 공유 내용
- 주소가 여전히 도메인인지, 이전 IP로 잘못 바뀌지 않았는지 확인합니다.
- 포트가 443, 8443 또는 노드에서 실제 사용하는 값으로 유지되는지 확인합니다.
- WebSocket 경로, gRPC serviceName, Host 필드가 모두 포함되어 있는지 확인합니다.
- TLS 서버 이름과 지문 매개변수를 확인해 기본 연결 필드만 이전되는 일을 방지합니다.
- 메모의 한글 문자가 정상적으로 표시되는지 확인합니다. 글자가 깨진다면 텍스트 인코딩 또는 디코딩 과정에 문제가 있을 가능성이 큽니다.
방법 3: 소수 노드는 QR 코드로 빠르게 이전하기
QR 코드는 본질적으로 공유 텍스트를 그래픽으로 인코딩한 것입니다. 컴퓨터의 노드 하나를 Android 기기로 옮길 때 유용하며, 긴 사용자 식별자와 쿼리 매개변수를 직접 입력할 필요가 없습니다. QR 코드는 지속적인 동기화 관계를 만들지 않습니다. 컴퓨터에서 포트, 경로, 보안 설정을 바꿔도 Android에 이미 있는 기록은 자동으로 변경되지 않으므로 다시 스캔하거나 가져와야 합니다.
-
노드 선택
v2rayN 서버 목록에서 대상 기록을 선택하고 프로토콜, 주소, 포트, 현재 사용 가능 상태를 확인합니다.
-
QR 코드 표시
서버 메뉴를 열고 공유 QR 코드 표시를 선택한 뒤 화면에는 현재 노드에 해당하는 QR 코드만 남겨 둡니다.
-
스캔하여 가져오기
v2rayNG 또는 v2flyNG 메인 화면에서 오른쪽 위 ‘+’를 누르고 「QR 코드 스캔」을 선택한 다음 컴퓨터 화면을 향해 인식시킵니다.
-
필드 확인
새로 생성된 설정을 열고 별칭, 주소, 포트, 전송 방식, TLS, SNI, 경로 필드를 확인합니다.
-
연결 수립
새 기록을 선택해 연결을 시작하고, 먼저 일반 웹페이지를 테스트한 뒤 클라이언트 로그에서 핸드셰이크와 DNS 결과를 확인합니다.
스캔 실패가 반드시 노드 문제를 뜻하는 것은 아닙니다. 화면 배율이 너무 높거나 QR 코드가 너무 작거나 모니터 반사 또는 공유 텍스트가 너무 길면 인식률이 떨어질 수 있습니다. 실제 테스트에서는 v2rayN 창을 시스템 배율 100%로 유지하고 QR 코드 한 변을 약 320픽셀, Android 기기와 화면 거리를 약 20cm로 설정하면 보통 1~3초 안에 인식됩니다.
QR 코드에 VLESS 및 Reality 매개변수가 포함되어 있다면 publicKey, shortId, serverName, flow 필드를 중점적으로 확인하세요. 구형 클라이언트는 링크는 인식해도 최신 쿼리 매개변수를 무시할 수 있습니다. 이 경우 먼저 다운로드 페이지에서 제공하는 최신 클라이언트 버전으로 업데이트한 뒤 다시 스캔하세요. 가져온 기록에서 전송 방식만 반복해서 바꾸는 것은 권장하지 않습니다.
노드가 일치하면 라우팅과 DNS를 별도로 맞추세요
여러 기기에서 ‘노드는 모두 연결되지만 접속 결과가 다르다’면 대부분 구독 문제가 아니라 라우팅과 DNS가 맞지 않는 문제입니다. 데스크톱에서는 LAN 우회와 자주 직접 연결하는 도메인이 활성화되어 있지만 Android에서는 전체 프록시일 수 있습니다. 데스크톱 DNS는 프록시 아웃바운드를 통과하지만 Android는 여전히 시스템 DNS를 사용할 수도 있습니다. 같은 도메인에 접속해도 최종 주소와 선택되는 아웃바운드가 달라질 수 있습니다.
설정 분리: 노드 계층과 기기 계층을 따로 관리
통합할 수 있는 노드 계층
- VMess 또는 VLESS 프로토콜 필드
- 서버 주소와 원격 포트
- WebSocket, gRPC 등의 전송 매개변수
- TLS, Reality 및 서버 이름
별도로 설정해야 하는 기기 계층
- 시스템 프록시, Tun, 앱별 적용 범위
- DNS 서버와 조회 경로
- 도메인, IP, 프로세스 라우팅 규칙
- 로컬 리스닝 주소와 리스닝 포트
먼저 양쪽의 노드 필드를 일치시킨 다음 같은 테스트 도메인 그룹으로 DNS와 라우팅 결과를 확인하세요. 구독을 반복해서 가져오는 것보다 문제 위치를 훨씬 직접적으로 찾을 수 있습니다.
v2rayN에서 흔히 사용하는 로컬 리스닝 조합은 SOCKS 127.0.0.1:10808과 HTTP 127.0.0.1:10809입니다. 구체적인 값은 「설정」→「매개변수 설정」의 로컬 포트를 기준으로 하세요. 포트는 로컬 애플리케이션만 사용하므로 Android 기기로 복사할 필요가 없습니다. 다른 로컬 프로그램이 10808을 고정 사용한다면 기기를 바꾼 뒤 먼저 포트 점유 여부를 확인하고 프로그램 프록시를 설정하세요.
- 1차: 양쪽에서 같은 노드를 선택하고, 일시적으로 비슷한 전체 프록시 정책을 적용해 노드 자체를 검증합니다.
- 2차: 양쪽에서 목표 라우팅 모드를 각각 활성화하고 직접 연결 도메인, 프록시 도메인, LAN 주소를 테스트합니다.
- 3차: DNS 로그 또는 코어 로그를 확인해 조회가 예상한 아웃바운드를 통해 전송되는지 확인합니다.
- 4차: 양쪽의 규칙 차이를 기록하고 앱별 프록시를 구독 누락으로 오해하지 않습니다.
업데이트, 충돌 및 실패 대응 체크리스트
동기화 방식을 일상적으로 사용하면서 가장 흔히 발생하는 문제는 업데이트 시점 차이, 같은 이름의 노드 중복, 오래된 매개변수 잔존입니다. 데스크톱은 방금 구독을 업데이트했지만 Android에는 어제 목록이 남아 있다면 결과가 달라지는 것이 당연합니다. 같은 공유 링크를 연속으로 가져오면 생성 시간이 다른 동일 이름의 기록이 여러 개 생길 수도 있습니다.
구독 그룹에는 ‘주 구독’, ‘백업 구독’처럼 안정적인 이름을 사용하고 특정 노드 이름을 그룹명으로 쓰지 않는 것이 좋습니다. 노드 전환은 구독 내용으로 결정하며 그룹명은 출처를 식별하는 데 사용합니다. 일괄 이전 전마다 노드 수와 업데이트 시간을 기록하고 이전 후 다시 비교하면 빈 구독, 잘린 링크, 중복 가져오기를 빠르게 발견할 수 있습니다.
- 업데이트 후 목록이 비어 있음
- 먼저 브라우저에서 구독 주소가 여전히 콘텐츠를 반환하는지 확인한 다음, 업데이트할 때 현재 프록시를 거쳐야 하는지 점검하세요. 기존 그룹을 먼저 삭제하지 마세요.
- 같은 이름의 노드가 중복됨
- 노드가 속한 그룹과 가져온 시간을 확인하세요. 구독 노드와 수동으로 가져온 노드가 함께 있을 수 있으므로 출처가 명확한 하나를 남기면 됩니다.
- 컴퓨터에서는 되지만 Android에서는 실패함
- Android의 코어, SNI, Reality 매개변수, DNS, 현재 네트워크 시간을 확인하세요. 노드 이름만 비교해서는 안 됩니다.
- 규칙이 노드와 함께 이전되지 않음
- 노드 공유 형식에서 정상적으로 발생하는 한계입니다. 규칙의 출처를 별도로 내보내거나 양쪽에서 같은 도메인 목록으로 라우팅 분할을 다시 설정하세요.
v2rayNG는 Xray 코어를 사용하므로 VLESS, Reality 등의 설정을 Android에서 다루는 데 적합합니다. v2flyNG는 v2fly 코어를 사용하므로 해당 v2fly 동작이 필요한 설정에 더 적합합니다. 두 클라이언트 모두 일반적인 공유 링크와 구독을 읽을 수 있지만 코어 지원 범위와 필드 해석은 완전히 같지 않습니다. 이전 전에 노드 프로토콜에 맞는 클라이언트를 선택하고, ‘가져오기 성공’을 ‘코어가 반드시 지원함’으로 간주하지 마세요.
장기적으로 관리할 때는 동기화 전략을 세 계층으로 고정하는 것이 좋습니다. 구독 링크는 노드를 관리하고, 클라이언트 로컬 설정은 프록시 모드를 관리하며, 별도의 규칙 목록은 도메인 라우팅을 관리합니다. 기기를 바꿀 때는 먼저 구독을 복원하고, 다음으로 규칙을 복원한 뒤, 마지막으로 시스템 프록시와 앱 적용 범위를 조정하세요. 그러면 어느 한 계층이 바뀌어도 모든 기기에서 노드를 다시 스캔하고 입력할 필요가 없습니다.
같은 구독인데 두 기기의 노드 수가 다른 이유는 무엇인가요?
먼저 양쪽의 업데이트 시간, 구독 그룹, 클라이언트 버전을 비교하세요. 일부 구독은 요청 매개변수에 따라 다른 형식을 반환하며, 구형 버전은 인식할 수 없는 노드를 건너뛸 수도 있습니다. 업데이트 전에 기존 목록을 보존하고 로그의 파싱 안내를 확인하세요.
QR 코드로 라우팅 규칙과 DNS도 동기화할 수 있나요?
일반적인 노드 QR 코드는 단일 서버 연결 매개변수만 포함하며 전체 클라이언트 라우팅 및 DNS 설정은 포함하지 않습니다. 스캔을 완료한 뒤 Android에서 라우팅 모드, DNS, 앱별 적용 범위를 별도로 설정해야 합니다.
v2rayN 전체 폴더를 다른 컴퓨터에 바로 복사해도 되나요?
동일한 유형의 Windows 환경에서는 클라이언트 데이터 디렉터리를 이전 참고 자료로 사용할 수 있지만, 먼저 프로그램을 종료하고 대상 기기에서 로컬 포트, 코어 경로, 시스템 프록시, 시작 설정을 다시 확인해야 합니다. 장기간 여러 기기에서 동기화하려면 구독 사용을 권장합니다.
구독을 업데이트하면 수동으로 추가한 노드가 덮어써지나요?
일반적으로 그룹별로 관리되므로 수동 노드와 구독 노드는 함께 존재할 수 있지만, 실제 동작은 클라이언트 버전과 업데이트 옵션에 따라 달라집니다. 업데이트 전에 노드가 속한 그룹을 확인하고 필요한 공유 텍스트 백업을 보관하세요.