---
title: "VPN과 프록시 | Kilobat 문서"
url: "https://kilobat.app/ko/docs/vpn"
description: "공인 IP와 VPN 경로, 프록시 앱, VPN 킬 스위치, 유출 테스트."
---

# VPN과 프록시

공인 IP와 VPN 경로, 프록시 앱, VPN 킬 스위치, 유출 테스트.

## VPN 및 공인 IP

상태 › 트래픽이 나가는 경로, Wi-Fi 메뉴 및 `kilobat ip`은 이 Mac의 경로와 macOS가 연결된 것으로 나열한 VPN을 읽어 기본 경로가 사용하는 인터페이스와 VPN 여부를 표시합니다. 종료 노드가 없는 Tailscale처럼 VPN이 연결되어 있지만 기본 경로가 Wi-Fi에 남아 있으면 일부 대상만 통과하므로 분할로 표시됩니다. 설정 › 네트워크 › 공인 IP 조회를 켜면 웹사이트에 보이는 주소도 볼 수 있습니다. 네트워크가 변경될 때와 30분마다 Cloudflare에 요청하고 Kilobat에 포함된 DB-IP 데이터에서 등록 국가를 표시합니다. Cloudflare가 요청을 볼 수 있으므로 기본적으로 꺼져 있으며 `kilobat ip --public`은 한 번 요청합니다. 등록 국가는 사용자나 서버의 실제 위치가 아니며 국가나 VPN만으로 연결이 비공개 또는 익명인지 알 수 없습니다. 설정 › 메뉴 막대 › VPN은 박쥐 옆에 켜짐, 분할 또는 꺼짐을 추가하고(조회가 켜져 있으면 국가 코드 포함), 기록에는 VPN이 켜지거나 꺼진 시점과 공인 IP 변경 시점이 나열됩니다.

## 프록시 및 VPN

Kilobat은 프록시 앱(Clash Verge, ClashX, mihomo, Mihomo Party, FlClash, Surge, sing-box, Stash, V2Ray, Xray, Shadowsocks) 및 VPN과 함께 작동합니다. 정보만 읽으며 트래픽을 라우팅하거나 설정을 변경하지 않습니다.

- **트래픽을 올바른 앱에 집계합니다.** 로컬 프록시를 통해 전송하는 앱의 트래픽은 해당 앱에 집계됩니다. 이를 전달하는 프록시 코어 또는 VPN 터널에는 중복 집계하는 대신 “다른 앱의 트래픽 전달”이라고 표시합니다.
- **각 앱이 이용한 경로.** Clash 호환 API(Clash Verge, ClashX, mihomo, Mihomo Party, FlClash, sing-box의 clash_api)를 사용하면 앱 행에 “HK-01 경유 · 직접 연결 2개”처럼 거친 노드가 표시되고, 툴팁에는 각 호스트, 노드, 규칙이 나열됩니다. Kilobat은 앱 자체 설정에서 API 주소와 비밀값을 읽으며 비밀값은 표시하지 않습니다.
- **상태의 트래픽이 나가는 경로에 표시되는 문제:**

  - 실행되지 않는 앱을 가리켜 모든 브라우저에 문제를 일으키는 시스템 프록시;
  - VPN을 우회하는 DNS 또는 IPv6;
  - 프록시와 VPN이 모두 트래픽을 처리하는 경우;
  - 전역 모드;
  - 시스템 프록시 뒤의 앱을 볼 수 없는 차단. macOS 필터는 127.0.0.1에 대한 연결을 볼 수 없으므로 프록시의 TUN 모드를 켜거나 프록시 규칙에서 앱을 차단하세요.
- **연결되지 않는 이유는?**에 프록시 앱 계층이 추가되어 프록시 모드와 현재 노드의 응답 속도를 보여주고, 응답하지 않는 노드가 문제인지 알려줍니다.

터미널에서: `kilobat proxy`, `kilobat proxy routes --app Telegram`, `kilobat proxy test`, `kilobat vpn`. Kilobat이 자동으로 찾지 못하는 코어에는 `--controller 127.0.0.1:9090 --secret …`를 전달하세요. 에이전트는 `get_proxy_status`, `test_proxy_nodes`, `check_vpn`을 통해 같은 정보를 얻습니다.

## VPN 킬 스위치

Pro와 네트워크 필터를 켠 상태에서 설정 › 네트워크의 *VPN 킬 스위치*를 켭니다. VPN이 끊어지면 Kilobat이 VPN이 복구될 때까지 새 연결을 차단하므로 그동안 카페나 호텔 Wi-Fi로 데이터가 전송되지 않습니다. 팝오버와 대시보드에 *차단됨: VPN 연결 끊김*이 표시되고, 메뉴 막대의 박쥐에 자물쇠가 나타나며, 알림에서 *5분 동안 허용*을 선택할 수 있습니다.

- **VPN이 연결되면 작동 준비가 됩니다.** 킬 스위치는 Mac을 시작한 후 VPN이 모든 트래픽을 한 번 이상 전달할 때까지 기다리므로 VPN 없이 켜도 연결이 끊기지 않습니다. 이후 재시동할 때까지 모든 네트워크에서 VPN이 끊기면 차단합니다. 새 네트워크에 연결하는 순간 앱의 트래픽이 유출될 수 있기 때문입니다. 일부 목적지만 전달하는 분할 VPN은 연결되지 않은 것으로 간주합니다.
- **계속 연결되는 항목:** VPN 앱과 해당 도우미 및 네트워크 확장 프로그램(WireGuard, Tailscale, Mullvad, NordVPN, Proton VPN, ExpressVPN, Surfshark, Cisco Secure Client, GlobalProtect, OpenVPN Connect, Tunnelblick 등과 macOS에 구성이 있는 모든 VPN 앱), Apple 네트워킹 서비스(DNS, DHCP, 인증서 검사, 네트워크 로그인 윈도우, 내장 VPN), Kilobat 및 직접 끄지 않은 로컬 네트워크입니다. 그 밖의 모든 항목은 제한 없음을 포함한 규칙이나 프로파일에 관계없이 대기합니다.
- **일시적으로 허용하기.** 배너, 알림 또는 메뉴 막대의 오른쪽 클릭 메뉴에서 *5분 동안 허용*을 선택하면 네트워크 로그인 페이지나 빠른 확인을 위해 모든 연결이 허용됩니다. VPN이 여전히 중단된 상태라면 다시 차단합니다. 옆에 *끄기*가 있으며 설정에서도 사용할 수 있습니다.

제한 사항: 필터는 새 연결만 볼 수 있으므로 VPN이 끊겼을 때 이미 열려 있던 연결은 계속됩니다. 다만 대부분은 사용하던 터널과 함께 끊깁니다. VPN이 서버를 찾을 수 있도록 DNS 조회는 계속 나갑니다. Kilobat이 종료되면 필터는 마지막으로 전달받은 상태를 유지하고 VPN의 터널 인터페이스가 사라지면 계속 차단합니다. 트래픽을 허용하거나 필터를 끄려면 Kilobat을 여세요. 터미널에서는 `kilobat settings kill-switch on`, `kilobat vpn` 또는 `kilobat conditions`로 상태를 확인할 수 있습니다. 에이전트는 `check_vpn` 및 `get_conditions`에서 상태를 읽으며 `set_kill_switch`는 먼저 확인을 요청합니다.

## VPN 유출 테스트

VPN을 켠 상태에서 상태 › 트래픽 출구 또는 설정 › 네트워크의 *누출 확인*을 클릭합니다. 약 10초 동안 Kilobat이 트래픽이 VPN을 우회할 수 있는 세 가지 경로를 확인하고 각각 통과 또는 실패를 표시하며 해결할 설정도 알려줍니다. Kilobat이 설정 이름을 아는 경우 VPN 앱에서 사용하는 이름으로 표시합니다(Mullvad, NordVPN, Proton VPN, ExpressVPN, Tailscale, WireGuard). Cisco, GlobalProtect 및 기타 업무용 VPN은 IT 담당자에게 무엇을 문의할지 알려줍니다.

- **DNS.** macOS가 일반적인 조회에 사용하는 리졸버와 각 리졸버로 가는 경로를 확인합니다. 터널 대신 Wi-Fi나 Ethernet을 통해 접속하는 리졸버에는 조회하는 모든 이름이 유출됩니다. Kilobat은 bash.ws를 통해 임의로 만든 이름도 몇 개 조회합니다. bash.ws는 조회를 요청한 리졸버를 알려주며, VPN이나 Cloudflare 또는 Google 같은 공개 DNS 서비스의 리졸버가 아니라면 인터넷 제공업체의 리졸버일 가능성이 높습니다.
- **IPv6.** Mac에 Wi-Fi를 통한 IPv6 경로가 있는데 VPN이 IPv4만 전달하면 IPv6 사이트에 실제 주소가 전송됩니다. Kilobat은 api6.ipify.org에 IPv6 주소를 요청해 사이트에 보이는 주소를 표시하고 VPN 설정 또는 해당 네트워크의 IPv6를 끄는 방법을 알려줍니다(시스템 설정 › 네트워크 › Wi-Fi › 세부사항 › TCP/IP › IPv6 구성 › 링크 로컬만).
- **UDP 및 WebRTC.** 브라우저의 WebRTC는 모든 네트워크 인터페이스에서 UDP를 전송합니다. Kilobat은 VPN을 통해 STUN 요청(Google 또는 Cloudflare 서버)을 하나 보내고 Wi-Fi 또는 이더넷으로 직접 하나를 보냅니다. 두 번째 요청에 응답이 오거나 첫 번째 응답이 VPN 출구와 다른 주소에서 돌아오면 페이지가 실제 주소를 알아낼 수 있습니다. VPN의 킬 스위치 또는 잠금 옵션으로 해결할 수 있습니다. Kilobat은 브라우저의 WebRTC를 실행할 수 없으므로 브라우저의 로컬 주소 공유를 막는 방법도 안내합니다. Safari는 주소를 숨기며, Firefox에서는 `media.peerconnection.enabled`을 끄고, Brave에서는 WebRTC IP 처리 정책을 사용하고, Chrome에서는 Google의 WebRTC Network Limiter 확장 프로그램을 사용합니다.

유출 테스트는 무료입니다. 설정을 변경하지 않으며 조회 대상 서비스는 일반 사이트처럼 사용자의 주소를 볼 수 있습니다. 통과 결과는 그 순간의 이 Mac에 해당하며 모든 앱을 보장하지 않습니다. 터미널: `kilobat vpn leaks`(유출 시 종료 코드 1, 스크립트에는 `--json`); 에이전트는 `check_vpn_leaks`을 사용합니다.
