클라이언트를 열면 구독, 노드, 프로토콜, 시스템 프록시, 글로벌 모드, 규칙 모드와 DNS가 한꺼번에 나타나 약어로 버튼 이름을 적어 둔 우주선에 올라탄 듯합니다. 사실 이 VPN 초보 용어 모음에서 먼저 잡아야 할 흐름은 하나입니다. 구독은 설정을 전달하고, 노드는 연결 진입점을 제공하며, 프로토콜은 통신 방식을 정하고, 분할 라우팅은 어떤 요청을 어느 경로로 보낼지 결정합니다. 나머지 설정 대부분은 이 흐름을 중심으로 작동합니다.

이 용어들은 자주 뒤섞여 쓰이지만 같은 뜻은 아닙니다. 노드가 많다고 회선이 반드시 빠른 것은 아니며, 새로운 프로토콜이라고 해서 현재 네트워크에 적합한 것도 아닙니다. 글로벌 모드 역시 성능을 높이는 버튼이 아닙니다. 용어를 올바른 서랍에 먼저 넣고 연결 문제를 다루는 편이 설정을 무작정 켜 보는 것보다 훨씬 효율적입니다.

핵심만 먼저: 구독은 설정 목록, 노드는 선택 가능한 진입점, 프로토콜은 통신 규칙, 분할 라우팅은 트래픽 조정입니다. 문제가 생기면 이 순서대로 확인하고, 모든 용어가 조종석에서 동시에 경고하도록 만들지 마세요.

구독, 구독 링크와 설정 파일이란

구독은 특정 회선 자체가 아니라 서버에서 관리하는 연결 설정 모음입니다. 노드 이름, 서버 주소, 포트, 프로토콜, 인증 정보와 전송 매개변수가 포함될 수 있습니다. 클라이언트가 이 설정을 읽어야 선택 가능한 노드가 화면에 표시됩니다.

구독 링크는 이 설정 모음을 가져오는 주소입니다. 호환되는 클라이언트에 붙여 넣으면 클라이언트가 원격 내용을 요청해 자체 노드 목록으로 변환합니다. 서버에서 회선을 조정한 뒤에는 보통 클라이언트에서 ‘구독 업데이트’를 실행하거나 설정된 갱신을 기다려야 합니다. 한 번 가져왔다고 로컬 목록이 영원히 최신 상태로 유지되는 것은 아닙니다.

설정 파일은 또 다른 전달 방식입니다. 텍스트일 수도 있고 클라이언트가 바로 읽을 수 있는 파일일 수도 있습니다. 구독 링크는 지속적인 업데이트에 적합하고, 개별 설정은 특정 연결의 정적 스냅샷에 가깝습니다. 둘 다 ‘어떻게 연결할지’를 설명하지만, 차이는 주로 업데이트 방식과 구성 형태에 있습니다.

구독을 가져올 때 실제로 일어나는 일

  1. 클라이언트가 구독 주소에 요청을 보내 서버가 반환한 설정 내용을 가져옵니다.
  2. 클라이언트가 지원되는 프로토콜과 필드를 해석해 로컬 노드 목록을 생성합니다.
  3. 사용자가 노드를 선택하면 클라이언트가 해당 프로토콜에 따라 연결을 설정합니다.
  4. 시스템 트래픽이 연결로 들어갈지는 시스템 프록시, 가상 네트워크 인터페이스와 분할 라우팅 설정에 따라 달라집니다.

따라서 ‘구독 가져오기 성공’은 클라이언트가 설정을 이해했다는 뜻일 뿐, 선택한 노드가 이미 연결되었다거나 모든 앱이 해당 연결을 사용하기 시작했다는 의미는 아닙니다. 가져오기, 연결, 트래픽 인계는 서로 다른 단계입니다. 클라이언트에서 지원하지 않는 형식이라고 표시된다면 흔한 원인은 프로토콜 비호환, 잘못 선택한 구독 유형, 불완전하게 복사된 링크 또는 일시적으로 가져올 수 없는 구독 내용입니다.

노드, 서버와 회선은 같은 말이 아닙니다

서버는 실제 또는 가상의 컴퓨팅 자원이고, 노드는 클라이언트에서 선택할 수 있는 연결 설정이며, 회선은 로컬에서 출구까지 데이터가 지나가는 네트워크 경로를 뜻합니다. 하나의 서버에 여러 노드 설정이 올라갈 수 있고, 이름이 다른 노드가 일부 인프라를 공유할 수도 있습니다. 클라이언트에 보이는 것은 진입점 메뉴일 뿐, 실제 경로를 이름만으로 완전히 추정할 수는 없습니다.

노드 이름에는 지역, 진입점, 출구, 배율 또는 회선 태그가 자주 포함됩니다. 지역은 일반적으로 출구 위치를 나타내지만 구체적인 명명 규칙은 서비스 제공업체마다 다릅니다. 접속 위치를 판단할 때는 실제 출구 확인 결과를 기준으로 삼고, 노드 이름을 네트워크 계층의 공식 보증처럼 받아들이지 마세요.

용어 쉽게 풀어 쓴 설명 주요 특징 주의할 점
직결 클라이언트가 원격 출구 서버에 직접 연결합니다 경로 구조가 비교적 단순하며 성능은 로컬 통신사와 공용 인터넷 라우팅의 영향을 더 많이 받습니다 망 간 이동, 혼잡 또는 우회 라우팅이 발생하면 사용 환경이 달라질 수 있습니다
중계 먼저 더 가깝거나 적합한 진입점으로 들어간 뒤 출구로 전달합니다 진입점과 출구 사이의 경로를 조정해 일부 공용 인터넷 라우팅의 불확실성을 낮출 수 있습니다 중계 자체가 고정된 저지연을 보장하는 것은 아니며 진입점 품질과 이후 경로가 모두 중요합니다
IEPL 전용 회선 회선 일부가 기업용 국제 전용 회선 자원으로 전송됩니다 일반적으로 경로 제어 가능성과 국제 구간의 안정성을 중시합니다 서비스마다 접속 구조와 명칭이 다를 수 있으므로 구체적인 회선 설명을 확인해야 합니다
출구 요청이 최종적으로 인터넷에 진입하는 위치입니다 웹사이트가 인식하는 접속 지역과 일부 콘텐츠 정책에 영향을 줍니다 출구 지역이 전체 경로가 해당 지역에 있다는 뜻은 아닙니다

‘지연 시간 테스트’는 보통 클라이언트가 노드에 빠른 탐색을 수행하는 기능입니다. 클라이언트마다 연결 설정, 웹 응답 또는 간단한 탐색 패킷을 측정할 수 있으므로 결과를 다운로드 속도와 바로 같다고 볼 수는 없습니다. 지연 시간은 명백히 연결할 수 없는 노드를 걸러내는 데 적합하며, 처리량·패킷 손실·지터와 혼잡 시간대 성능은 실제 사용이나 별도 테스트가 필요합니다.

노드 목록은 역의 전광판과 같습니다. 어디에서 탈 수 있는지는 알려 주지만 이동 중인 모든 선로 구간을 보여 주지는 않습니다. 실제 회선 품질은 연결 후의 경로와 지속적인 성능으로 판단해야 합니다.

프로토콜 약어는 무엇을 정하나요

프로토콜은 클라이언트와 서버가 데이터를 인증하고 캡슐화하며 전송하는 방식을 정합니다. 호환성, 전송 특성, 네트워크 변화에 대응하는 방식과 배포 요건에 영향을 주지만 혼잡한 회선을 저절로 고쳐 주지는 않습니다. 프로토콜은 열차 규격에 비유하면 이해하기 쉽습니다. 규격은 선로와 호환되어야 하며, 선로가 막혔다면 더 멋진 기관차로 바꿔도 벽을 통과할 수 없습니다.

Shadowsocks

Shadowsocks는 암호화 프록시 프로토콜로, 구조가 비교적 단순하고 클라이언트 생태계가 넓다는 특징이 있습니다. 일반적으로 애플리케이션 계층의 프록시 트래픽을 처리하며, 그 자체가 시스템 전체를 인계하는 전통적인 VPN과 같은 것은 아닙니다. 모든 앱이 이를 통해 연결되게 할 수 있는지는 시스템 프록시, 가상 네트워크 인터페이스 모드와 분할 라우팅 기능에 달려 있습니다.

VMess와 VLESS

VMess는 V2Ray 생태계에서 널리 쓰이는 인증 및 전송 프로토콜로, 설정에 하위 전송 방식과 보안 계층이 함께 사용되는 경우가 많습니다. VLESS는 가벼운 인증에 중점을 두며 자체적으로 콘텐츠 암호화를 제공하지 않습니다. 실제 배포에서는 보통 TLS, REALITY 또는 다른 보안 전송 방식과 함께 구성합니다. VLESS를 볼 때는 프로토콜 이름만 확인하지 말고 전송 방식, 보안 설정과 서버 이름 등 관련 필드도 함께 확인해야 합니다.

Trojan

Trojan은 일반적으로 TLS 위에서 작동하며 연결 형태가 일반적인 암호화 웹사이트 트래픽과 비슷합니다. 인증서, 도메인과 TLS 매개변수가 올바르게 맞물려야 합니다. 시스템 시간, 인증서 검증 또는 서버 이름 설정에 문제가 있으면 핸드셰이크가 실패할 수 있습니다. 검증을 끄면 오류가 잠시 사라질 때도 있지만 장기적인 문제 해결 방법으로 권장되지는 않습니다.

Hysteria2와 TUIC

Hysteria2와 TUIC는 모두 QUIC 및 UDP 전송 기능을 기반으로 하며 지연 시간이 길거나 패킷 손실이 발생하기 쉽고 변화가 큰 네트워크에서 전송 환경을 개선하는 데 초점을 둡니다. 클라이언트와 서버가 함께 지원해야 하고 현재 네트워크에서 해당 UDP 통신을 허용해야 합니다. UDP에 우호적이지 않은 네트워크에서는 연결이 설정되지 않을 수 있으므로, 이때는 TCP와 TLS 기반의 호환 방안으로 전환해 확인하는 편이 적합합니다.

프로토콜 선택 원칙: 먼저 클라이언트가 완전히 지원하고 서버 설정이 명확하며 현재 네트워크에서 정상적으로 핸드셰이크할 수 있는 프로토콜을 선택한 뒤 실제 사용 환경을 비교하세요. 프로토콜 이름은 속도 순위표가 아니며 네트워크 환경을 초월한 만능 해답도 아닙니다.

시스템 프록시, 가상 네트워크 인터페이스와 연결 인계

클라이언트에 ‘연결됨’이 표시된 후에도 트래픽은 로컬 프록시 코어로 전달되어야 합니다. 일반적인 방식으로는 시스템 프록시가상 네트워크 인터페이스 모드가 있습니다. 이 둘은 ‘어떤 프로그램의 요청을 클라이언트에 맡길지’를 결정하는 기능이며 원격에서 어떤 프로토콜을 사용하는지와는 다른 계층입니다.

시스템 프록시는 운영체제의 프록시 설정을 변경합니다. 시스템 프록시를 따르는 브라우저와 앱은 대체로 연결을 사용할 수 있지만, 자체 네트워크 스택을 만들거나 시스템 프록시를 무시하거나 UDP를 직접 전송하는 프로그램은 이를 우회할 수 있습니다. 그래서 브라우저는 정상인데 특정 앱만 계속 로딩되는 상황이 생깁니다. 우주 방사선이 아니라 같은 문을 통과하지 않은 것뿐입니다.

가상 네트워크 인터페이스 모드는 흔히 TUN으로 표시됩니다. 운영체제가 제공하는 가상 네트워크 인터페이스를 통해 더 넓은 IP 트래픽을 인계받고 클라이언트가 규칙에 따라 처리합니다. 시스템 프록시보다 적용 범위가 넓은 경우가 많지만 방화벽, 다른 네트워크 도구, 기업용 보안 소프트웨어 또는 기존 가상 네트워크 인터페이스와 충돌하기도 쉽습니다. 활성화할 때 시스템 권한이 필요할 수 있습니다.

인계 방식 적합한 상황 놓칠 수 있는 대상 확인할 항목
앱 내 프록시 특정 앱만 연결을 사용하게 할 때 다른 앱은 자동으로 따라오지 않음 프록시 주소, 포트와 앱 설정
시스템 프록시 브라우저와 시스템 설정을 따르는 앱 시스템 프록시를 무시하는 프로그램과 일부 UDP 트래픽 시스템 프록시 활성화 여부와 포트 사용 여부
가상 네트워크 인터페이스 모드 더 많은 시스템 트래픽을 포함하고 싶을 때 라우팅, 권한과 분할 규칙의 영향을 여전히 받을 수 있음 권한 승인, 방화벽, 라우팅 충돌과 다른 가상 네트워크 인터페이스

글로벌·규칙·직결 모드의 분할 라우팅

분할 라우팅은 도메인, IP, 앱 또는 규칙 집합에 따라 요청의 경로를 결정합니다. 일반적인 목적지는 프록시, 직결과 차단입니다. 노드 자체를 바꾸는 것이 아니라 요청이 노드에 도달하기 전에 트래픽을 조정합니다.

글로벌 모드는 일반적으로 클라이언트가 인계한 요청을 가능한 한 선택한 노드로 보내는 방식입니다. 노드가 대상 서비스에 연결되는지 임시로 확인하거나 규칙 매칭 문제를 배제할 때 유용하지만 운영체제의 모든 데이터가 예외 없이 연결로 들어간다는 뜻은 아닙니다. 클라이언트의 인계 범위, 로컬 네트워크 트래픽과 시스템 구성 요소에는 여전히 예외가 있을 수 있습니다.

규칙 모드는 사전 설정 또는 사용자 지정 규칙에 따라 프록시나 직결을 선택합니다. 흔히 로컬 서비스는 직결하고 국제 회선이 필요한 대상은 프록시로 보내거나 앱별로 따로 지정합니다. 규칙 모드는 일상적인 사용에 더 적합하지만 규칙이 오래되었거나 도메인 분류가 잘못되었거나 여러 규칙이 서로 덮어쓰면 대상 웹사이트가 잘못된 출구로 연결될 수 있습니다.

직결 모드는 일반적으로 원격 노드를 거치지 않고 현재 로컬 네트워크를 직접 사용하게 합니다. 프록시 경로가 문제의 원인인지 비교하거나 특정 앱이 실제로 클라이언트의 제어를 받는지 확인할 때 쓸 수 있습니다. 직결로 전환해도 변화가 없다면 앱이 클라이언트에 인계되지 않았거나 캐시에 남은 기존 연결이 아직 종료되지 않은 것일 수 있습니다.

클라이언트로 요청 유입
├─ 직결 규칙 일치 → 로컬 네트워크 사용
├─ 프록시 규칙 일치 → 현재 노드로 전달
├─ 차단 규칙 일치 → 요청 차단
└─ 일치하는 규칙 없음 → 클라이언트의 최종 규칙 사용

규칙에는 일반적으로 매칭 순서가 있습니다. 더 구체적인 규칙은 우선 매칭될 수 있는 위치에 두고, 최종 규칙은 앞에서 식별되지 않은 요청을 처리합니다. 수정 후에도 결과가 바뀌지 않으면 대상 앱을 종료했다가 다시 열어 기존 연결을 새로 설정하게 하세요. 필요하다면 DNS 캐시도 지웁니다.

DNS, DNS 누수와 도메인 확인

DNS는 도메인을 연결 가능한 주소로 변환합니다. 브라우저에 도메인을 입력하면 시스템이나 클라이언트가 먼저 확인 작업을 마쳐야 연결을 시작할 수 있습니다. 노드는 정상인데 DNS 확인에 실패하면 도메인만 열리지 않는 경우가 많고, 이미 알고 있는 주소에 직접 접속하면 응답이 올 수도 있습니다.

원격 DNS는 일반적으로 프록시 측 또는 지정된 암호화 확인 서비스가 처리하고, 로컬 DNS는 현재 네트워크가 제공하는 확인 경로를 사용합니다. 분할 라우팅 클라이언트는 로컬 서비스와 국제 웹사이트를 함께 지원하기 위해 규칙에 따라 도메인을 나누어 처리할 수 있습니다. DNS 조회는 로컬 네트워크를 통과하지만 실제 접속은 원격 노드를 통과한다면 출구에 맞지 않는 결과가 나오거나 프록시 경로로 처리하려던 조회가 노출될 수 있습니다.

DNS 누수는 제어된 경로로 처리되어야 할 DNS 조회가 클라이언트를 거쳐 로컬 네트워크의 확인 서버로 빠져나가는 현상을 말합니다. IP 누수와는 다른 개념입니다. 클라이언트의 DNS 인계를 활성화하고, 가상 네트워크 인터페이스 모드에서 확인 경로를 점검하며, 앱이 규칙에 포함되지 않은 방식을 자체적으로 사용하지 않게 해야 합니다. 브라우저에 내장된 보안 DNS가 클라이언트 정책과 충돌하는지도 확인하세요.

플랫폼마다 클라이언트 화면이 다른 이유

같은 구독이라도 플랫폼에 따라 표시되는 설정과 지원 프로토콜이 다를 수 있습니다. 구독이 갑자기 변한 것이 아니라 운영체제 기능, 클라이언트 코어와 앱 권한이 다르기 때문입니다.

Windows 클라이언트는 시스템 프록시와 TUN 모드를 함께 제공하는 경우가 많습니다. 시스템 프록시는 시작하기 쉽고 TUN은 적용 범위가 넓지만 관리자 권한, 드라이버, 시스템 방화벽과 다른 네트워크 도구를 확인해야 합니다. macOS 클라이언트는 보통 시스템 네트워크 확장 또는 프록시 설정을 사용하며 처음 활성화할 때 권한 승인을 요청합니다. 승인이 완료되지 않으면 화면에 노드를 가져왔더라도 실제로 트래픽을 인계할 수 없습니다.

iOS와 iPadOS 클라이언트는 일반적으로 시스템 VPN 설정을 통해 네트워크를 인계합니다. 구독을 가져온 뒤에는 설정 추가를 허용하고 시스템 상태에서 연결이 설정되었는지 확인해야 합니다. 플랫폼 규정의 영향으로 클라이언트마다 지원하는 프로토콜, 스크립트와 규칙 기능이 다를 수 있으므로 데스크톱의 모든 옵션이 그대로 표시된다고 가정하면 안 됩니다.

Android 클라이언트는 보통 시스템 VPN 인터페이스를 호출하며 앱별로 연결을 사용할지 설정할 수 있지만 구체적인 기능은 클라이언트에 따라 다릅니다. 시스템의 배터리 절약 정책이 백그라운드 실행을 제한하면 화면을 잠그거나 네트워크를 전환할 때 연결이 끊길 수 있습니다. Linux 클라이언트는 명령줄, 서비스 프로세스와 수동 설정이 더 흔하며 시스템 프록시와 라우팅 인계도 별도로 설정해야 하는 경우가 많습니다.

클라이언트를 선택할 때는 먼저 구독에 포함된 프로토콜과 전송 매개변수를 지원하는지 확인한 뒤 시스템 프록시, TUN, 규칙 편집, 구독 업데이트와 로그 기능을 살펴보세요. 화면이 화려한지만 비교하면 계기판은 빛나지만 설정은 이해하지 못하는 우주선을 고르기 쉽습니다.

초보자는 어떤 순서로 문제를 해결해야 하나요

연결 문제에서 프로토콜을 바꾸고 노드를 교체하고 클라이언트를 재설치한 뒤 DNS를 조정하고 규칙까지 전부 지우는 것은 가장 피해야 할 방식입니다. 결국 복구되더라도 어떤 단계가 효과가 있었는지 알 수 없습니다. 재현 가능한 문제 해결은 바깥에서 안쪽으로 진행하며 한 번에 변수 하나만 바꿔야 합니다.

  1. 로컬 네트워크 확인: 클라이언트를 잠시 끄고 일반 웹사이트에 직접 접속할 수 있는지 확인합니다.
  2. 구독 업데이트: 구독을 정상적으로 가져올 수 있고 노드 목록에 파싱 오류가 없는지 확인합니다.
  3. 노드 교체: 같은 프로토콜과 모드에서 노드를 바꿔 단일 노드 문제인지 전체 설정 문제인지 구분합니다.
  4. 프로토콜 호환성 확인: 클라이언트가 해당 프로토콜과 전송 및 보안 매개변수를 지원하는지 확인합니다.
  5. 인계 방식 전환: 브라우저는 정상인데 다른 앱에 문제가 있으면 시스템 프록시와 TUN을 중점적으로 확인합니다.
  6. 글로벌 모드 임시 사용: 글로벌 모드에서는 되고 규칙 모드에서는 안 된다면 대개 분할 규칙이나 DNS 경로에 문제가 있습니다.
  7. 로그 확인: 파싱 실패, 연결 시간 초과, TLS 핸드셰이크, 인증 실패와 라우팅 충돌 등 명확한 메시지를 확인합니다.

로그의 ‘시간 초과’는 대기 시간 안에 응답을 받지 못했다는 뜻으로, 노드에 연결할 수 없거나 패킷 손실 또는 방화벽 제한이 원인일 수 있습니다. ‘인증 실패’는 자격 증명이나 설정 불일치에 가깝고, ‘TLS 핸드셰이크 실패’는 시스템 시간, 서버 이름, 인증서와 보안 매개변수를 확인해야 합니다. ‘주소가 이미 사용 중’이라는 메시지는 로컬 포트 충돌에서 흔히 발생합니다. 클라이언트마다 표현은 달라도 장애가 발생한 계층은 대체로 같습니다.

마지막 원칙: 먼저 구독이 제대로 입력되었는지 확인하고, 다음으로 노드가 핸드셰이크할 수 있는지 확인한 뒤, 트래픽이 인계되었는지 점검하고 마지막으로 분할 라우팅과 DNS를 살펴보세요. 문제를 계층별로 나누면 용어는 길을 막는 표지판이 아니라 방향을 알려 주는 표지판이 됩니다.

이 용어들을 이해하고 나면 클라이언트 화면이 더 이상 약어로 뒤덮인 황무지처럼 보이지 않습니다. 구독은 설정을 가져오고, 노드는 진입점을 제공하며, 프로토콜은 통신을 설정하고, 시스템 프록시나 가상 네트워크 인터페이스는 트래픽을 모으며, 분할 규칙은 경로를 정하고, DNS는 대상 주소를 찾습니다. 문제가 생기면 모든 설정을 무작정 바꾸기보다 데이터 흐름을 따라 계층별로 확인하는 편이 훨씬 안정적입니다.