VPN에 연결된 후 정상 작동 여부를 확인할 때는 클라이언트의 “연결됨” 상태만 봐서는 안 됩니다. 이 상태는 대개 클라이언트와 노드 간 핸드셰이크가 완료됐거나 로컬 프록시 포트가 실행 중이라는 의미일 뿐입니다. 브라우저, 데스크톱 앱, IPv6 트래픽과 DNS 조회가 모두 예상한 경로를 거친다는 증거는 아닙니다. 신뢰할 수 있는 점검 방법은 연결 전 네트워크 기준을 기록한 다음 외부 IP, DNS 조회 경로와 각 앱의 실제 동작을 차례로 확인하는 것입니다.
점검할 때는 “터널이 성공적으로 만들어진 상태”와 “서비스 트래픽이 터널로 들어간 상태”를 구분해야 합니다. 전자는 클라이언트 상태로 판단할 수 있지만, 후자는 외부 확인과 기기의 라우팅 정보를 함께 살펴야 합니다. 시스템 프록시, TUN 모드, 분할 라우팅 규칙과 앱 자체의 네트워크 설정에 따라 결과가 달라질 수 있으므로, 같은 기기에서도 브라우저는 회선을 경유하고 명령줄 도구는 직접 연결되는 상황이 생길 수 있습니다.
먼저 외부 IP 확인하기: 웹 트래픽의 출구 확인
외부 IP는 가장 직관적인 확인 항목입니다. 사이트의 IP 확인 페이지에서 연결 해제 및 연결 상태의 공개 주소, 지역과 네트워크 소유자를 각각 확인하세요. 연결 후 공개 주소와 지역이 선택한 노드에 해당하는 위치로 바뀌었다면, 현재 확인 페이지를 연 브라우저 요청은 회선을 경유한 것입니다.
하지만 “IP가 바뀌었다”는 사실은 확인한 요청의 경로가 달라졌다는 것만 보여 줄 뿐, 기기의 모든 앱에 자동으로 적용됐다는 뜻은 아닙니다. 브라우저는 시스템 프록시를 따르지만 특정 데스크톱 프로그램은 직접 연결을 만들 수 있습니다. IPv4만 프록시를 통과하고 IPv6은 로컬 네트워크로 나가는 경우도 있습니다. 점검 결과는 클라이언트 모드와 함께 해석해야 합니다.
- ✅ 연결을 해제한 상태에서 현재 공개 주소와 네트워크 소유자를 기록해 비교 기준으로 삼습니다.
- ✅ 대상 노드에 연결한 뒤 확인 페이지를 새로고침해 공개 주소와 지역이 예상대로 바뀌었는지 확인합니다.
- ✅ IPv4와 IPv6을 모두 확인하세요. 로컬 네트워크에서 IPv6을 사용할 수 있는데 클라이언트가 이를 제어하지 않는다면 라우팅을 추가로 점검해야 합니다.
- ✅ 시크릿 창을 사용하거나 확인 페이지의 캐시를 삭제한 뒤 다시 점검해 브라우저가 이전 페이지 내용을 재사용하지 않도록 합니다.
- ❌ 웹페이지 언어, 시간대 또는 검색 결과의 지역만으로 판단하지 마세요. 이러한 정보는 계정 설정과 캐시의 영향을 받을 수 있습니다.
연결 후에도 IP가 바뀌지 않는 이유
일반적인 원인은 클라이언트가 로컬 프록시만 실행하고 시스템 프록시는 활성화하지 않았거나, 브라우저가 해당 프록시를 사용하도록 명시적으로 설정되지 않은 경우입니다. 규칙 모드에서 확인 사이트가 직접 연결로 분류되는 경우도 있습니다. 이때 클라이언트는 정상적으로 온라인이지만 확인 요청은 분할 라우팅 규칙에 따라 노드를 우회합니다. 일시적으로 전체 트래픽 모드로 전환해 테스트해 보세요. 전체 모드에서 주소가 바뀐다면 문제는 대개 노드 핸드셰이크가 아니라 규칙 매칭에 있습니다.
클라이언트가 수신하는 프록시 유형과 앱 설정이 일치하는지도 확인해야 합니다. 예를 들어 앱은 HTTP 프록시로 설정했지만 클라이언트는 SOCKS 인터페이스만 열어 두었거나, 프록시 주소·포트가 실제 수신 항목과 다르면 앱이 조용히 직접 연결로 돌아갈 수 있습니다. 추측으로 노드를 반복해서 바꾸기보다 클라이언트 로그에 해당 도메인이나 연결 기록이 나타나는지 먼저 확인하세요.
다음은 DNS 확인하기: 도메인 조회가 예상대로 처리되는지 점검
웹사이트에 접속하기 전에 기기는 보통 도메인을 연결 가능한 주소로 변환해야 합니다. DNS 조회를 로컬 네트워크의 기본 확인 서버에 맡기면 조회 중인 도메인이 노출될 수 있고, 노드 지역과 맞지 않는 결과로 접속에 영향을 줄 수도 있습니다. DNS 누출의 핵심은 “낯선 확인 서버가 하나라도 표시되는가”가 아니라, 조회가 예상한 암호화·프록시·원격 확인 경로를 우회하는지 여부입니다.
회선에 연결한 뒤 DNS 점검을 실행하고, 확인 서버의 네트워크 소유자와 지역이 클라이언트 설정에 부합하는지 살펴보세요. 원격 확인으로 설정했다면 결과는 일반적으로 회선 측 확인 정책과 일치해야 합니다. 로컬 암호화 DNS를 사용하면 선택한 공개 확인 서비스가 표시될 수 있지만, 이것만으로 누출이라고 단정할 수는 없습니다. 판단 기준은 실제 설정에 두어야 하며, DNS 지역과 외부 IP가 반드시 같아야 하는 것은 아닙니다.
| 점검 항목 | 정상적인 단서 | 추가 확인이 필요한 현상 | 우선 확인할 위치 |
|---|---|---|---|
| 외부 IP | 선택한 노드의 지역 및 네트워크 소유자와 일치 | 연결 전후가 완전히 같거나 로컬 주소와 노드 주소 사이에서 계속 바뀜 | 시스템 프록시, TUN 제어, 분할 라우팅 규칙 |
| DNS | 확인 서버가 클라이언트에 설정한 로컬 또는 원격 정책에 부합 | 원격 확인으로 설정했는데 로컬 네트워크의 기본 확인 서버가 계속 표시됨 | DNS 모드, 브라우저 보안 DNS, 시스템 네트워크 설정 |
| IPv6 | 터널이 제어하거나 클라이언트 정책에 따라 적절히 처리 | IPv4는 노드 주소를 표시하지만 IPv6은 로컬 출구를 표시 | 가상 네트워크 어댑터 라우팅, 클라이언트 IPv6 옵션 |
| 특정 앱 | 대상 요청이 클라이언트 연결 로그에 표시됨 | 브라우저는 정상인데 데스크톱 앱에는 계속 로컬 지역 콘텐츠가 표시됨 | 앱 프록시, 우회 목록, 독립 네트워크 스택 |
브라우저 보안 DNS가 점검 결과를 바꿀 수 있습니다
일부 브라우저는 보안 DNS를 독립적으로 활성화할 수 있습니다. 활성화하면 도메인 조회가 운영체제나 클라이언트가 아니라 브라우저에서 지정한 확인 서비스로 직접 전송될 수 있습니다. 이때 외부 IP 점검은 정상인데 DNS 점검에는 다른 확인 사업자가 표시될 수 있습니다. 이 결과가 반드시 트래픽이 로컬 네트워크에서 평문으로 나간다는 뜻은 아니지만, 브라우저의 조회 경로가 클라이언트의 통합 DNS 정책과 다르다는 점은 보여 줍니다.
점검할 때는 브라우저의 독립적인 조회 기능을 잠시 끄고 시스템 설정을 따르게 한 뒤 결과를 비교할 수 있습니다. 결과가 바뀐다면 브라우저 보안 DNS를 유지할지, 클라이언트가 통합 처리하도록 할지 결정해야 합니다. 중요한 것은 여러 조회 계층이 서로 덮어쓰도록 동시에 활성화하는 것이 아니라 설정과 예상 동작을 일치시키는 것입니다.
IPv6 및 앱별 트래픽 확인하기: 일부만 프록시되는 상황 방지
“확인 페이지는 정상인데 앱은 여전히 정상 작동하지 않는” 사례의 상당수는 제어 범위가 완전하지 않아서 발생합니다. 기기가 IPv4와 IPv6을 모두 지원하면 앱은 시스템이 반환한 결과에 따라 연결 경로를 선택합니다. 클라이언트가 IPv4 라우팅만 설정했다면 IPv6을 지원하는 앱은 로컬 IPv6 출구를 직접 사용할 수 있습니다. 그 결과 같은 브라우저에서도 일부 연결은 노드를 경유하고 다른 연결은 로컬 네트워크로 나갈 수 있습니다.
확인하려면 두 종류의 공개 주소를 모두 확인하고, 클라이언트에서 가상 네트워크 어댑터, 라우팅 테이블과 IPv6 처리 옵션을 점검해야 합니다. 클라이언트가 IPv6을 제어하지 않는다고 명시되어 있다면 사용 환경에 맞게 시스템 또는 클라이언트 설정을 조정하세요. “웹페이지의 기본 주소가 바뀌었다”는 사실을 전체 프로토콜 스택이 제어되고 있다는 증거로 보아서는 안 됩니다.
시스템 프록시와 TUN 모드의 제어 범위
시스템 프록시는 운영체제의 프록시 설정을 읽는 앱에 주로 영향을 줍니다. 일반적인 브라우저는 대개 이 설정을 따르지만 명령줄 프로그램, 게임, 일부 스토어 앱과 자체 네트워크 스택을 구현한 소프트웨어는 무시할 수 있습니다. TUN 모드는 가상 네트워크 인터페이스와 라우팅을 통해 더 넓은 IP 트래픽을 제어하므로 기존 프록시 설정을 지원하지 않는 프로그램을 확인하는 데 적합합니다. 다만 제외 규칙, 로컬 네트워크 규칙과 앱이 특정 인터페이스에 연결된 경우에는 영향을 받을 수 있습니다.
따라서 앱별 트래픽을 확인할 때 같은 웹페이지를 반복해서 새로고침하는 데 그치지 마세요. 실제로 사용하려는 소프트웨어를 선택하고 동작을 수행하면서 클라이언트 연결 로그를 확인해야 합니다. 대상 도메인, 대상 주소 또는 연결 항목이 나타나는지, 최종적으로 프록시 규칙과 직접 연결 규칙 중 어느 쪽이 적용됐는지 살펴보세요. 로그의 “규칙 매칭 결과”가 앱 화면에 표시되는 지역보다 일반적으로 더 신뢰할 수 있습니다.
- 대상 노드 연결을 유지한 채 클라이언트 연결 로그 또는 실시간 연결 목록을 엽니다.
- 확인할 앱을 완전히 종료한 뒤 다시 실행해 연결 전에 만들어진 기존 연결을 재사용하지 않도록 합니다.
- 앱에서 콘텐츠 새로고침이나 페이지 다시 로드처럼 명확한 네트워크 동작을 한 번 실행합니다.
- 클라이언트로 돌아가 해당 요청이 표시되는지, 프록시·직접 연결·차단 규칙 중 무엇이 적용됐는지 확인합니다.
- 기록이 전혀 없다면 앱이 시스템 프록시를 우회하는지, 또는 제어되지 않는 네트워크 인터페이스에 연결되어 있는지 확인합니다.
분할 라우팅 규칙 확인하기: 직접 연결이 항상 오류는 아닙니다
규칙 모드에서는 원래 모든 요청을 같은 회선으로 보내지 않습니다. 클라이언트는 도메인, 대상 주소, 프로세스 또는 규칙 집합에 따라 프록시·직접 연결·차단을 결정합니다. 중국 본토 서비스, 로컬 기기 주소와 로컬 네트워크 리소스는 직접 연결로 설정되는 경우가 많고, 국제 웹사이트는 규칙에 따라 노드로 전송됩니다. 따라서 같은 시점에 로컬 출구와 노드 출구가 함께 보인다고 해서 반드시 연결이 실패한 것은 아닙니다. 핵심은 각 요청 유형이 정해진 정책에 맞게 처리되는지입니다.
분할 라우팅이 올바른지 판단하려면 “이 대상은 원래 어느 경로로 가야 하는가”에서 출발해야 합니다. 확인 사이트가 실수로 직접 연결 규칙에 포함되면 외부 IP가 바뀌지 않습니다. 반대로 직접 연결해야 하는 서비스가 노드로 전송되면 로그인 지역이 바뀌거나 접속이 느려질 수 있습니다. 일시적으로 전체 트래픽 모드를 사용하면 규칙 문제를 찾는 데 도움이 되지만, 전체 모드의 결과를 일상적인 규칙 모드의 동작과 동일하게 보아서는 안 됩니다.
규칙 매칭 순서가 결과에 영향을 줍니다
많은 클라이언트는 위에서 아래 순서 또는 미리 정해진 우선순위로 규칙을 매칭합니다. 범위가 넓은 직접 연결 규칙이 더 구체적인 프록시 규칙보다 앞에 있으면 뒤의 규칙은 적용되지 않을 수 있습니다. 규칙을 수정한 뒤에는 설정을 다시 불러왔는지 확인하고 기존 연결도 종료한 후 다시 테스트해야 합니다. 텍스트만 저장하고 핵심 모듈을 다시 로드하지 않았다면 실제로 실행되는 것은 이전 규칙일 수 있습니다.
진단할 때는 먼저 로그에 표시된 규칙 이름을 확인한 다음, 해당 규칙이 로컬 설정·원격 규칙 집합·클라이언트 기본 항목 중 어디에서 왔는지 찾으세요. 여러 스위치를 한꺼번에 바꾸면 현상이 사라져도 실제 원인이 DNS인지 라우팅인지 규칙 변경인지 알 수 없습니다.
- ✅ 확인 사이트는 일반적인 직접 연결 규칙에 먼저 가로채이지 않고 예상한 프록시 규칙이 적용되어야 합니다.
- ✅ 규칙을 수정한 뒤 설정을 다시 불러오고 테스트 앱의 기존 연결을 종료합니다.
- ✅ 로컬 네트워크 리소스는 로컬 규칙에 따라 접속되므로 외부 IP 변화만으로 정상 여부를 판단하지 않습니다.
- ❌ 노드, DNS, TUN과 규칙 모드를 동시에 바꾸지 마세요. 점검 변수가 흐려집니다.
- ❌ 모든 직접 연결 기록을 누출로 보지 마세요. 규칙 모드에서 예상된 직접 연결은 정상적인 처리입니다.
구독 링크, 노드 및 프로토콜 호환성 확인
구독을 성공적으로 가져왔다고 해서 현재 사용 가능한 노드가 선택됐다는 뜻은 아닙니다. 클라이언트가 구독 내용을 정상적으로 읽었더라도 이전 설정, 자동 선택 그룹 또는 직접 연결 정책에 머물 수 있습니다. 점검할 때는 구독 갱신 시간, 현재 노드 이름, 정책 그룹 선택과 실행 중인 핵심 모듈에 실제로 로드된 설정이 일치하는지 확인해야 합니다. 구독 링크는 계정 자격 정보이므로 안전하게 보관하고, 공개 확인 사이트나 스크린샷·로그 공유 페이지에 붙여 넣지 마세요.
Shadowsocks, VMess, Trojan과 VLESS는 흔히 사용되는 프록시 프로토콜 또는 프로토콜 체계이며, 클라이언트마다 핵심 모듈의 지원 범위가 다릅니다. Hysteria2와 TUIC는 UDP 연결 가능 여부와 클라이언트 구현에 더 크게 의존합니다. 한 클라이언트에서 노드를 가져올 수 있다고 해서 다른 클라이언트가 모든 매개변수를 완전히 인식한다는 뜻은 아닙니다. “가져오기 오류 없음” 역시 핸드셰이크, 인증과 트래픽 전달이 모두 완료됐다는 의미가 아닙니다.
로그에 프로토콜 필드를 인식할 수 없거나 전송 매개변수가 누락됐거나 핵심 모듈 버전이 지원되지 않는다고 표시되면 웹페이지 캐시를 계속 확인하기보다 먼저 클라이언트 호환성을 해결해야 합니다. 반대로 핸드셰이크가 완료됐는데 업무 요청이 로그에 나타나지 않는다면 문제는 시스템 프록시, TUN 제어 또는 분할 라우팅 규칙에 있을 가능성이 큽니다.
IEPL·중계·직접 연결이 점검 결과에 미치는 영향
직접 연결 회선은 일반적으로 기기에서 원격 진입점으로 직접 연결되며, 경로가 로컬 네트워크와 국제 구간의 영향을 비교적 크게 받습니다. 중계 회선은 가까운 진입점에 먼저 연결한 다음 중계 네트워크를 통해 출구로 전달합니다. IEPL 전용 회선은 특정 구간이 전용 국제 이더넷 연결로 구성된다는 점을 강조하지만, 사용자 기기와 진입점 사이에는 여전히 로컬 접속 경로가 있습니다. 어떤 토폴로지를 사용하든 외부 IP, DNS와 앱 로그로 최종 확인해야 하며, 노드 이름만으로 트래픽이 예상대로 전달됐다고 판단해서는 안 됩니다.
회선 토폴로지는 로그에 표시되는 주소에도 영향을 줍니다. 클라이언트가 연결한 진입점 주소와 웹사이트에서 확인되는 출구 주소가 다를 수 있으며, 중계 구조에서는 이상한 현상이 아닙니다. 확인할 때는 웹사이트의 공개 출구가 노드 설명에 부합하는지와 업무 요청이 올바른 정책 그룹으로 들어갔는지에 집중하세요. 진입점과 출구가 반드시 같은 주소로 표시될 필요는 없습니다.
연결된 것처럼 보이지만 실제로는 경유하지 않는 대표적인 상황
앞에서 설명한 점검 항목을 조합하면 대부분의 가짜 연결이나 부분적인 제어 문제를 빠르게 찾을 수 있습니다. 다음 현상은 클라이언트에 연결됨으로 표시되는 동안에도 발생할 수 있으므로, 근거를 바탕으로 하나씩 배제해야 합니다.
| 겉으로 보이는 현상 | 가능한 원인 | 확인 방법 | 처리 방향 |
|---|---|---|---|
| 클라이언트는 연결됐지만 외부 IP가 바뀌지 않음 | 시스템 프록시가 활성화되지 않았거나 확인 사이트에 직접 연결 규칙이 적용됨 | 확인 요청이 연결 로그에 표시되는지 확인 | 프록시 설정, 규칙 매칭과 앱 프록시 설정 점검 |
| 외부 IP는 바뀌었지만 DNS는 로컬 네트워크로 표시됨 | DNS를 클라이언트가 제어하지 않거나 브라우저가 독립적인 조회 설정을 사용함 | 시스템과 브라우저의 DNS 설정 비교 | 조회 정책을 통일한 후 다시 테스트 |
| 브라우저는 정상인데 데스크톱 앱에는 변화가 없음 | 앱이 시스템 프록시를 무시하거나 기존 연결이 재생성되지 않음 | 앱을 다시 시작하고 클라이언트 실시간 로그 확인 | 앱 프록시 또는 적절한 TUN 제어 방식 사용 |
| IPv4는 정상인데 IPv6은 로컬 출구로 표시됨 | 가상 네트워크 어댑터가 IPv6 라우팅을 제어하지 않음 | 두 종류의 공개 주소를 각각 확인 | 클라이언트와 시스템의 IPv6 정책 점검 |
| 노드는 가져올 수 있지만 접속할 수 없음 | 프로토콜 매개변수 비호환, 구독 미갱신 또는 노드 미선택 | 핵심 모듈 오류와 현재 정책 그룹 확인 | 호환되는 클라이언트로 업데이트하고 구독을 다시 불러오기 |
| 노드를 바꿔도 결과가 달라지지 않음 | 기존 연결, 브라우저 캐시 또는 정책 그룹이 여전히 원래 노드를 가리킴 | 기존 연결을 종료하고 현재 활성 노드 확인 | 확인할 앱을 다시 시작한 뒤 기준 상태와 비교 |
권장하는 전체 재점검 순서
- 회선 연결을 해제하고 외부 IP, DNS 확인 사업자와 IPv6 상태를 기록합니다.
- 대상 노드에 연결하고 클라이언트 로그에서 핸드셰이크와 설정 로드에 오류가 없는지 확인합니다.
- 외부 IP를 다시 확인하고 연결 해제 상태 및 노드 지역과 비교합니다.
- DNS 점검을 실행해 조회 경로가 클라이언트 설정에 부합하는지 판단합니다.
- IPv4와 IPv6을 각각 확인하고 주요 앱의 요청이 연결 로그에 표시되는지 확인합니다.
- 결과가 예상과 다르면 전체 모드와 규칙 모드를 일시적으로 비교한 뒤 구체적인 분할 라우팅 규칙을 찾습니다.
- 설정을 수정한 뒤 기존 연결을 종료하고 기준 상태부터 다시 확인해 캐시의 영향을 피합니다.
외부 IP는 이미 바뀌었지만 DNS, IPv6 또는 특정 앱이 예상과 다르다면 클라이언트 로그의 시간, 대상 도메인, 적용된 규칙과 오류 정보를 보존한 뒤 하나씩 조정하세요. 한 번에 하나의 변수만 바꿔 재검사하는 편이 노드를 반복해서 교체하는 것보다 문제를 쉽게 찾을 수 있으며, 규칙에 따른 직접 연결, 브라우저의 독립 DNS 또는 기존 연결을 회선 오류로 오판하는 일도 줄일 수 있습니다.