이 글은 서비스 제공업체에서 받은 WireGuard 설정값을 보유하고 있으며, Shadowrocket에서 직접 입력하거나 설정을 확인하려는 사용자를 위한 안내입니다. 먼저 로컬 Interface와 Peer를 구분한 다음 키, 주소, UDP Endpoint, DNS를 점검하세요. 마지막으로 라우팅 모드와 단계별 테스트를 통해 문제 위치를 좁혀 갑니다. 표준 설정 항목은 각 값의 의미를 설명하기 위한 것이며, 모든 항목을 클라이언트에서 같은 이름으로 편집할 수 있다는 뜻은 아닙니다.
1. 로컬 Interface와 Peer 구분하기
WireGuard는 공개 키로 통신 상대를 식별하고 UDP로 암호화된 데이터를 전송합니다. 설정에서 로컬 Interface는 이 기기의 신원과 터널 주소를 담당하고, Peer는 원격 통신 상대를 가리킵니다. 두 영역의 키를 혼동해서는 안 됩니다. 이 기기에는 자체 Private Key를 보관하고, 원격 상대에 연결할 때는 상대의 Public Key를 입력합니다. 원격 측에는 이 기기의 Private Key에 대응하는 Public Key를 등록해야 합니다.
이 글은 사용자가 적법하게 사용할 수 있는 설정을 이미 보유하고 있다는 전제하에 작성했습니다. 이 사이트는 노드나 구독을 제공·판매·추천하지 않습니다. WireGuard 설정은 주소 하나와 공용 비밀번호 하나만으로 완성되지 않습니다. 키 쌍, 로컬 터널 주소, 원격 Endpoint를 확인해야 합니다. Shadowsocks, VMess, VLESS, Trojan, Hysteria2의 인증 정보를 WireGuard에 그대로 사용하지 마세요.
표준 WireGuard 설정의 [Interface]와 [Peer]는 항목을 이해하기 위한 기준입니다. Shadowrocket의 [Rule] 규칙 섹션으로 사용하면 안 됩니다. 설정을 가져올 때는 파일 확장자만 같다고 서로 바꿔 쓸 수 있다고 판단하지 말고, 클라이언트가 해당 형식을 지원하는지 먼저 확인하세요.
2. Private Key, Public Key, 주소 입력 방법
Private Key는 이 기기의 비밀 키입니다. 기존 설정에서 전체를 복사하되 앞뒤 공백, 줄바꿈, 문자 누락이 없는지 확인하세요. Private Key를 바꾸면 이 기기의 신원도 달라집니다. 원격 측에 이전 Public Key가 등록된 상태라면 Endpoint가 정확해도 정상적으로 통신할 수 없습니다. 연결 문제를 해결하려고 키를 무작정 새로 만들지 마세요.
로컬 Interface 항목
- Private Key
- 이 기기의 Private Key입니다. 원격 측에 등록된 이 기기의 Public Key와 한 쌍이어야 합니다.
- Address
- 이 기기에 할당된 터널 주소입니다. 예: 10.7.0.2/32. 원격 서버 주소가 아닙니다.
- DNS
- 이름을 주소로 변환하는 DNS 서버 주소입니다. 클라이언트 통합 설정에 해당하며 키 핸드셰이크 항목은 아닙니다.
- MTU
- 터널 인터페이스에서 허용하는 최대 패킷 크기입니다. 단위는 바이트이며, 우선 제공업체가 지정한 값이나 기본값을 유지하세요.
위 내용은 원본 설정의 의미입니다. Shadowrocket에서는 실제 항목과 가져오기 방식에 맞춰 확인하세요.
원격 Peer 항목
- Public Key
- 원격 측의 Public Key입니다. 이 기기의 Private Key에서 계산한 공개 키가 아닙니다.
- Endpoint
- 접속 가능한 원격 주소와 UDP 포트입니다. 예: 192.0.2.10:51820.
- AllowedIPs
- 해당 Peer에 연결할 터널 대상 프리픽스와 수신 패킷의 출발지 주소 검증 범위입니다.
- Preshared Key
- 선택 사항인 추가 공유 키입니다. 설정했다면 양쪽에 같은 값을 입력해야 합니다.
예시 주소는 문서용으로 예약된 범위이므로 실제 연결에 사용할 수 없습니다. 실제 값은 사용자가 보유한 설정을 기준으로 하세요.
Address의 /32는 IPv4 주소 하나를 가리키는 프리픽스입니다. IPv6 단일 주소에는 보통 /128을 사용합니다. 이 주소는 원격 네트워크 설계에 따라 정해지므로 집의 Wi-Fi 주소와 다르다는 이유로 로컬 네트워크 주소로 바꾸면 안 됩니다. 원본 설정에 IPv4와 IPv6가 모두 있다면 원격 측과 현재 네트워크가 각각 지원하는지 먼저 확인하세요.
3. Home에서 WireGuard 추가 및 확인
Shadowrocket의 Home에서는 연결 항목을 선택하고, Config에서는 규칙 설정을 관리하며, Settings에서는 앱 설정을 관리합니다. 먼저 WireGuard 설정을 정확히 입력한 후 규칙별 라우팅을 확인하세요. 앱 화면에 따라 항목 배치가 달라질 수 있으므로 아래 경로는 작업 순서를 안내합니다. 원본 설정에 있는 AllowedIPs, DNS 등의 항목이 편집 화면에 같은 이름으로 모두 표시되는 것은 아닙니다. 같은 이름의 입력란이 없다고 관련 없는 항목에 값을 넣지 마세요.
-
설정값 준비
기존 설정에서 이 기기의 Private Key와 터널 Address, 원격 Public Key, Endpoint, 선택 항목인 Preshared Key를 확인하고 비교할 수 있도록 원본을 따로 보관하세요.
-
유형 선택
Home → 오른쪽 상단의 “+” → Type → WireGuard로 이동합니다. 먼저 유형을 선택한 뒤 해당 항목을 입력하세요. 다른 프로토콜의 편집 화면을 WireGuard 화면으로 착각하지 않도록 주의하세요.
-
Endpoint 입력
Endpoint의 호스트와 포트를 Address, Port 등 서버 관련 항목에 각각 입력합니다. 예를 들어 문서용 Endpoint 192.0.2.10:51820에서 호스트는 192.0.2.10, 포트는 51820입니다. 여기서 서버 Address와 터널 Address는 서로 다른 값입니다.
-
키 확인
이 기기의 Private Key와 원격 Public Key를 입력하고 로컬 터널 주소를 확인하세요. Preshared Key가 기존 설정에 있으면 그대로 입력하고, 없다면 비밀번호나 Public Key로 대신하지 마세요.
-
저장 후 테스트
저장한 뒤 Home으로 돌아와 해당 항목을 선택하고 Global Routing을 확인하세요. 첫 테스트에서는 명확한 대상 하나만 확인합니다. 진단하는 동안에는 Settings → On Demand에서 자동 연결을 잠시 꺼 두면 수동으로 연결을 끊은 뒤 다시 자동 연결되는 상황을 방지할 수 있습니다.
51820은 WireGuard에서 흔히 쓰이는 수신 포트일 뿐, 프로토콜이 정한 필수 포트는 아닙니다. 기존 설정에 443이 적혀 있다면 해당 UDP Endpoint에 443을 사용하세요. 그렇다고 TCP나 HTTPS를 지원한다는 뜻은 아닙니다. 네트워크에서 UDP가 차단된 경우 숫자만 바꿔도 원격 측이 새 포트에서 수신하는 것은 아닙니다.
4. AllowedIPs와 Global Routing은 서로 다른 규칙 계층
표준 WireGuard에서 AllowedIPs는 나가는 트래픽을 어느 Peer로 보낼지 선택하는 데 쓰이며, 해당 Peer에서 받은 트래픽에 허용할 출발지 주소도 제한합니다. 0.0.0.0/0은 모든 IPv4 주소를, ::/0은 모든 IPv6 주소를 포함합니다. 10.7.0.0/24는 지정된 네트워크 범위만 포함합니다. 도메인 목록도, 웹사이트 접근 권한이나 유료 사용량도 아닙니다.
Shadowrocket에는 Global Routing과 Config의 규칙 계층도 있습니다. 앱 요청 중 어떤 트래픽을 선택한 연결로 보낼지는 현재 라우팅 모드를 함께 살펴봐야 합니다. 원본 설정에 0.0.0.0/0이 있다는 이유만으로 모든 요청이 반드시 WireGuard를 통과한다고 단정할 수 없습니다. Scene은 상황별 설정에 사용합니다. 기본적인 문제 해결에서는 변수를 줄이도록 하나의 명확한 모드로 테스트하세요.
Config
권장현재 설정의 규칙에 따라 처리 방식을 선택합니다. 일상적인 분할 라우팅에 사용하기 전에 규칙 순서와 PROXY에서 실제로 사용하는 연결 항목을 확인하세요.
사용 예: WireGuard 연결이 정상 작동하는 것을 확인한 뒤 도메인이나 IP 범위별로 트래픽을 분리할 때.
Proxy
현재 프록시 경로로 처리할 수 있는 요청을 선택한 연결로 보냅니다. 일시적으로 Config 규칙의 영향을 제외할 때 유용하지만 모든 시스템 트래픽이 반드시 처리된다는 뜻은 아닙니다.
사용 예: 선택한 WireGuard 연결로 실제 데이터가 전송되는지 짧게 확인할 때.
Direct
요청을 직접 연결합니다. WireGuard 터널의 작동 여부를 확인하는 용도로는 적합하지 않습니다. 브라우저에서 페이지가 열려도 터널이 정상적으로 설정됐다고 판단할 수 없습니다.
사용 예: 로컬 네트워크의 기준 상태를 확인하고 직접 연결에서도 같은 문제가 발생하는지 비교할 때.
아래는 Shadowrocket 규칙 문법을 설명하기 위한 예시이며 WireGuard 설정이 아닙니다. DOMAIN-SUFFIX는 도메인 접미사를, IP-CIDR은 IP 네트워크 범위를 일치시킵니다. FINAL은 앞선 규칙에 일치하지 않은 요청을 처리합니다. 규칙은 위에서부터 순서대로 적용되며, 앞선 규칙에 일치한 요청은 이후 FINAL까지 진행하지 않습니다.
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.0.2.0/24,DIRECT
FINAL,DIRECT
example.com과 192.0.2.0/24는 문서 설명용 값입니다. GEOIP를 사용할 경우 IP 지리 데이터베이스에 의존한다는 점을 알아두세요. Peer, AllowedIPs 또는 서버의 응답 경로를 확인하는 작업을 대신할 수는 없습니다. 자세한 규칙 설명은 규칙 참조를 확인하세요.
5. MTU와 DNS: 연결됐는데도 접속되지 않는 두 가지 원인
MTU는 터널 인터페이스가 처리할 수 있는 IP 패킷의 최대 크기를 제한합니다. 암호화 과정에서 외부 헤더가 추가되므로 터널 MTU는 일반적으로 하위 링크의 MTU보다 작습니다. 1420은 흔히 참고하는 값이지만 모든 Wi-Fi, 셀룰러 네트워크, 중첩 터널에 적용되는 고정값은 아닙니다. 먼저 기존 설정에서 지정한 값이나 기본값을 사용하고, 관련 증상이 있을 때만 통제된 비교 테스트를 진행하세요.
| 증상 | 먼저 확인할 항목 | 한 번에 하나씩 변경 |
|---|---|---|
| 작은 요청은 성공하지만 큰 응답은 반복해서 멈춤 | 경로 MTU, 패킷 손실, 원격 전달 | MTU를 편집할 수 있다면 1420과 1380을 비교하고, 결과를 기록한 뒤 기존 값으로 되돌리거나 효과가 확인된 값을 유지하세요. |
| 이름 조회는 시간 초과되지만 IP를 지정한 진단 요청에는 응답이 있음 | DNS 주소와 DNS 서버로 가는 경로 | 기존 설정의 DNS 서버에 터널을 통해서만 접근할 수 있는지 확인하세요. |
| 일부 IPv6 대상에만 연결 실패 | IPv6 주소, 라우팅, 원격 전달 지원 여부 | IPv4와 IPv6를 각각 테스트하세요. ::/0을 추가하는 것을 해결책으로 간주하지 마세요. |
| 네트워크를 전환한 뒤 데이터가 수신되지 않음 | UDP 연결 가능 여부와 NAT 매핑 | 새 네트워크에서 연결을 다시 설정한 뒤 같은 대상을 비교하세요. |
위 내용은 증상별 진단 방법이며 실제 측정 결과가 아닙니다. 1380도 모든 환경에 통하는 최적값은 아닙니다. MTU를 낮춘 뒤 반복해서 확인할 수 있는 개선이 없다면 원래 값으로 되돌리고 다른 계층을 점검하세요. MTU, DNS, Endpoint, 라우팅 모드를 한꺼번에 바꾸면 어떤 변경이 영향을 줬는지 알 수 없습니다.
DNS는 도메인을 IP 주소로 변환하며 WireGuard 공개 키 핸드셰이크에는 관여하지 않습니다. 표준 설정의 DNS 항목은 보통 클라이언트 도구가 처리합니다. Shadowrocket에서 실제로 어떻게 이름을 조회하는지는 현재 Config의 DNS 설정과 함께 확인해야 합니다. 터널 안에서만 접근할 수 있는 DNS 주소는 터널이 아직 연결되지 않은 상태에서 모든 사전 조회를 처리할 수 없습니다. 특히 Endpoint 자체가 도메인 이름인 경우 주의하세요.
- 먼저 현재 네트워크에서 Endpoint 도메인이 조회되는지 확인한 다음 원격 UDP에 연결할 수 있는지 살펴보세요.
- 브라우저에서 IP에 직접 접속하는 것만으로 DNS를 판단하지 마세요. HTTPS 인증서와 가상 호스트에 올바른 도메인이 필요할 수 있습니다.
- DNS를 변경한 뒤 연결을 다시 설정하세요. 시스템이나 앱 캐시가 비교 결과에 영향을 줄 수 있다는 점도 고려하세요.
6. Endpoint, 핸드셰이크, 데이터, 규칙 순서로 문제 해결
앱에 연결됨으로 표시되거나 시스템에 VPN 표시가 나타나도 로컬 연결 상태만 확인된 것입니다. 원격 측에서 키를 승인했거나 요청이 대상에 도착했다는 사실까지 입증되지는 않습니다. 트래픽이 없을 때 WireGuard는 조용한 상태로 유지될 수 있으므로, 명확한 요청을 보내 테스트하세요. 원격 관리 권한이 있다면 최근 핸드셰이크 시간과 송수신 카운터도 함께 확인할 수 있습니다.
- Endpoint 계층: 호스트 이름이나 IP가 정확한지, 포트가 원격 측의 수신 포트와 일치하는지, 현재 네트워크에서 해당 UDP 통신이 가능한지 확인하세요. 도메인 조회가 성공해도 UDP 포트에 연결할 수 있다는 뜻은 아닙니다.
- 핸드셰이크 계층: 이 기기의 Private Key에 대응하는 Public Key가 원격 측에 등록됐는지, 원격 Public Key가 정확한지, 선택 항목인 Preshared Key가 양쪽에서 일치하는지 확인하세요. 키 길이가 같아 보이는지만으로 키 쌍이 맞는지 검증할 수는 없습니다.
- 데이터 계층: 핸드셰이크는 되지만 데이터가 전송되지 않는다면 터널 주소, AllowedIPs, 원격 전달, 방화벽, 응답 경로를 확인하세요. 원격 측에 NAT가 필요한지 명시적인 응답 경로가 필요한지는 네트워크 설계에 따라 다릅니다.
- 규칙 계층: Global Routing → Proxy와 Config에서 같은 요청의 결과를 비교하세요. Config에서만 실패한다면 먼저 규칙 일치 여부와 정책 참조를 확인하세요. 키를 먼저 바꿀 필요는 없습니다.
- 안정성 계층: 유휴 상태가 된 뒤 연결이 끊긴다면 NAT 매핑과 Keepalive 필요 여부를 확인하세요. 표준 설정의 PersistentKeepalive 단위는 초이며 25는 흔한 예시일 뿐 모든 연결에 필요한 값은 아닙니다. 기존 설정에서 요구하고 클라이언트가 해당 설정을 지원하는 경우에만 조정하세요.
7. 자주 하는 입력 실수와 저장 전 확인 사항
수동 설정에서 흔한 오류는 프로토콜을 충분히 선택하지 않은 것이 아니라 각 항목의 역할을 혼동하는 것입니다. 저장하기 전에 모든 값을 다시 확인하세요. 특히 Address로 표시되는 서버 주소와 터널 주소를 구분해야 합니다. 구독에 WireGuard 항목이 이미 있다면 다음 업데이트 때 수동 변경 사항이 덮어써질 수 있으므로 별도로 기록하고 데이터가 어디에서 관리되는지 먼저 확인하세요.
- 이 기기의 Public Key를 Peer에 입력: Peer의 Public Key는 원격 측의 키여야 합니다. 이 기기의 공개 키는 원격 측에 등록해야 합니다.
- Endpoint를 웹 주소로 입력: https://나 웹페이지 경로를 추가하지 마세요. 호스트와 포트를 별도 항목에 입력한다면 나눠서 입력하세요. IPv6 주소는 콜론을 기준으로 임의로 나누지 않도록 특히 주의하세요.
- 터널 주소 프리픽스 누락: 원본 Address의 프리픽스 의미를 유지하세요. 화면에서 항목을 나눠 입력해야 한다면 각 항목의 형식에 맞춰 입력하고 할당된 주소 범위를 임의로 바꾸지 마세요.
- AllowedIPs를 앱 규칙 대신 사용: IP 프리픽스와 DOMAIN-SUFFIX는 서로 다른 계층입니다. 도메인을 AllowedIPs에 입력할 수 없습니다.
- Preshared Key를 로그인 비밀번호로 사용: 설정에 없는 항목이라면 비워 두세요. 설정에 있다면 양쪽에서 합의한 키를 사용해야 합니다.
- 자동 연결 설정 확인 누락: Settings → On Demand는 연결이 시작되는 방식에 영향을 주며 키, Peer 또는 [Rule] 내용은 바꾸지 않습니다. 진단이 끝난 뒤 평소의 자동 연결 설정을 복원하세요.
확인을 마친 뒤 먼저 명확한 대상 하나로 선택한 WireGuard 항목을 통해 데이터가 전송되는지 확인하세요. 그런 다음 Config 분할 라우팅과 일상적인 자동 연결 설정을 복원합니다. Shadowrocket은 Apple 플랫폼 전용의 유료 상용 앱이며 주로 iPhone과 iPad에서 사용합니다. 가격, 시스템 요구 사항, 기타 Apple 기기 호환성은 App Store 페이지 표기를 기준으로 확인하세요. 앱을 일회성으로 구매해도 연결 서비스나 설정이 제공되는 것은 아닙니다.