WireGuard 설정 파일을 보유하고 Shadowrocket에 직접 입력하려는 사용자를 위한 안내입니다. 먼저 기기의 Private Key와 상대 Peer의 Public Key를 구분하고, Address, Endpoint, MTU, DNS의 역할에 따라 항목을 입력합니다. 마지막으로 한 번에 하나의 변수만 바꾸며 키 불일치, UDP 연결 불가, DNS 조회 실패, 패킷 크기 문제를 구분하는 방법을 살펴봅니다.
WireGuard 설정에서는 기기와 상대방의 항목을 구분하세요
WireGuard는 키 쌍으로 통신 양쪽을 식별합니다. 각 기기는 자체 Private Key와 그 키에서 파생된 Public Key를 사용합니다. Private Key는 해당 기기에 보관하고, Public Key는 통신 상대방에게 등록합니다. 따라서 서비스 제공업체가 전달한 클라이언트 설정에서 [Interface]와 [Peer]는 서로 다른 정보를 담고 있습니다. Key라는 이름만 보고 서로 바꿔 입력하면 안 됩니다.
Shadowrocket에서 기기의 Private Key는 기기 신원을 증명하고, Peer의 Public Key는 원격 상대방을 확인합니다. 서버에도 기기의 Private Key에 대응하는 클라이언트 Public Key를 등록해야 합니다. Private Key를 새로 바꿨다면 서버에 등록된 키도 함께 업데이트해야 합니다. 그렇지 않으면 나머지 항목을 그대로 입력해도 올바르게 통신할 수 없습니다.
핵심: 먼저 키가 어느 쪽의 것인지 확인하세요
입력하기 전에 자료의 Interface PrivateKey와 Peer PublicKey를 각각 ‘기기 Private Key’와 ‘서버 Public Key’로 표시해 두세요. 둘 중 하나라도 없다면 다른 쪽의 키로 대신하지 말고 서비스 제공업체에 확인하세요.
Private Key, Public Key 및 주소 항목 구분하기
아래에서는 표준 WireGuard 설정 항목을 기준으로 각 정보의 대응 관계를 설명합니다. Shadowrocket 편집 화면의 항목 순서는 변경될 수 있으므로 입력할 때는 항목의 의미를 확인하세요. 특히 Address와 원격 서버 주소를 구분해야 합니다. Address는 터널 내부 주소이며, 원격 서버 주소는 Endpoint에 입력하고 보통 서로 다릅니다.
| 항목 | 정보 출처 | 입력 방법 |
|---|---|---|
| Private Key | [Interface]의 PrivateKey | 기기에 할당된 Private Key를 사용합니다. 끝에 =가 있을 수 있으므로 Base64 문자열 전체를 그대로 입력하고, 공백이나 줄바꿈을 추가하지 마세요. |
| Public Key | [Peer]의 PublicKey | 원격 Peer의 Public Key를 입력합니다. 클라이언트 자신의 Public Key나 구독 로그인 정보가 아닙니다. |
| Address | [Interface]의 Address | 서비스 제공업체가 할당한 터널 주소와 접두사 길이를 입력합니다. 예를 들어 문서에 10.66.0.2/32라고 되어 있다면 해당 값을 그대로 사용하세요. 비슷한 주소를 임의로 선택해 대체하면 안 됩니다. |
| 서버 주소와 Port | [Peer]의 Endpoint | 호스트와 포트를 각각 해당 항목에 입력합니다. 포트는 서버 설정과 일치해야 합니다. 51820은 흔히 쓰이는 예시일 뿐, 고정값은 아닙니다. |
| Preshared Key | [Peer]의 PresharedKey | 선택 항목인 추가 공유 키입니다. 서버에서 사용하는 경우 정확히 같은 값을 입력해야 합니다. 제공되지 않았다면 Private Key를 대신 입력하지 마세요. |
| MTU | [Interface]의 MTU 또는 서비스 제공업체 안내 | 기존에 설정된 값이 있다면 그대로 사용하세요. 값이 안내되지 않았다면 앱의 기본값을 유지하고, 임의의 네트워크 설정을 모든 환경에 적합한 값으로 간주하지 마세요. |
| DNS | 설정의 DNS 항목 및 서비스 제공업체의 DNS 안내 | DNS 서버에 터널 내부에서만 접근할 수 있는지 확인하고, Shadowrocket의 현재 DNS 설정과 실제 DNS 조회 경로를 함께 점검하세요. |
Private Key는 민감한 인증 정보로 안전하게 보관하세요. 문제를 설명할 때는 오류 메시지, 네트워크 유형, 인증 정보가 포함되지 않은 항목 이름을 공유할 수 있습니다. Private Key 전체, Preshared Key 또는 구독 링크는 올리지 마세요. Public Key는 Private Key처럼 비밀로 보호해야 하는 정보는 아니지만, 공개 기록에 계정 정보나 주소까지 함께 남길 필요는 없습니다.
Home에서 WireGuard를 추가하는 순서
먼저 본인이 보유한 전체 설정 정보를 준비한 다음 입력하세요. Endpoint나 Public Key 하나만으로는 사용할 수 있는 설정을 만들 수 없습니다. 서버에 등록된 클라이언트 정보, 할당된 주소, 허용된 접근 범위가 모두 서로 일치해야 합니다. 아래는 수동으로 추가하는 방법이며, 화면에 표시되는 항목 이름은 영어 그대로 사용합니다.
-
프로토콜 선택
Home → 오른쪽 위 ‘+’ → Type → WireGuard로 이동합니다. 먼저 유형을 선택한 뒤 항목을 입력해 다른 프로토콜 편집 화면에 WireGuard 설정을 넣지 않도록 하세요.
-
원격 서버 입력
Endpoint의 호스트 부분은 서버 주소 항목에, 포트는 Port에 입력합니다. 예를 들어 자료에
vpn.example.com:51820이라고 되어 있다면 호스트와51820을 나눠 입력하세요. 형식 예시일 뿐 실제 연결 정보는 아닙니다. -
키 확인
기기의 Private Key와 원격 서버의 Public Key를 입력하고, Preshared Key가 있다면 함께 입력합니다. 원본 자료와 항목별로 대조해 복사 과정에서 따옴표나 공백, 항목 이름이 잘못 포함되지 않았는지 확인하세요.
-
터널 내부 주소 입력
자료에 기재된 Address를 접두사 길이와 함께 입력합니다. IPv4와 IPv6 주소는 실제 할당된 값에 따르세요. 현재 기기가 IPv4 네트워크에 연결되어 있다는 이유로 설정에 포함된 IPv6 정보를 삭제하지 마세요.
-
저장 후 테스트
MTU 등 선택 항목을 확인한 뒤 저장하고 Home으로 돌아가 해당 항목을 선택합니다. 통제된 짧은 테스트에서는 Global Routing을 Proxy로 설정한 뒤 연결 스위치를 켜세요. 테스트가 끝나면 평소 사용하던 Config 등 원래 설정으로 되돌립니다.
이미 Subscribe 구독에서 생성된 항목이라면 구독에 WireGuard 항목이 포함되어 있는지 먼저 확인하세요. 구독을 업데이트하면 구독에서 관리하는 항목이 다시 입력될 수 있습니다. 직접 수정하기 전에 원본 설정을 보관하고 변경 내용을 기록하세요. 한 번의 테스트 설정을 유지하려고 구독 전체를 반복해서 수정하지 말고, 문제 해결용 스크린샷에 구독 인증 정보를 그대로 넣지 마세요.
Address, AllowedIPs, 규칙 기반 라우팅은 서로 다른 계층입니다
Address는 기기의 터널 인터페이스에 할당된 내부 주소입니다. 예시 10.66.0.2/32에서 /32는 단일 IPv4 호스트 주소를 뜻합니다. 원격 Endpoint를 가리키는 것도 아니며, 모든 네트워크 트래픽이 자동으로 터널을 통과한다는 뜻도 아닙니다. 이 주소는 일반적으로 해당 클라이언트에 대해 서버가 설정한 값과 일치해야 합니다. 임의로 /24로 바꿔도 연결 문제가 해결되지는 않습니다.
표준 WireGuard 설정에서 AllowedIPs는 Peer가 대상으로 삼을 주소의 선택 및 출발지 주소 확인과 관련된 의미를 가집니다. Shadowrocket의 Global Routing과 Config 규칙은 앱 요청에 적용할 정책을 결정합니다. 시스템 수준 WireGuard 설정의 라우팅 동작을 Shadowrocket의 현재 규칙 기반 라우팅과 동일하게 보면 안 됩니다.
0.0.0.0/0은 모든 IPv4 주소 범위를,::/0은 모든 IPv6 주소 범위를 나타냅니다. 주소 범위 표현이며 DNS 서버 주소가 아닙니다.- Global Routing → Direct는 직접 연결 설정을 사용합니다. 선택한 WireGuard 항목이 요청을 전달하는지 확인하는 테스트 조건으로는 적합하지 않습니다.
- Global Routing → Config는 현재 설정에 따라 요청을 처리합니다. 요청이
DIRECT규칙에 일치하면 WireGuard 항목을 선택했더라도 해당 요청이 WireGuard를 통해 전송됐다고 볼 수 없습니다. DOMAIN-SUFFIX,IP-CIDR,GEOIP,FINAL은 규칙 매칭 키워드입니다. Private Key, Public Key 또는 Address 항목에 입력하면 안 됩니다.
MTU 설정 기준과 테스트 방법
MTU는 인터페이스가 처리할 수 있는 IP 패킷의 최대 크기입니다. WireGuard 캡슐화에는 바깥쪽 IP, UDP 및 프로토콜 오버헤드가 추가되므로 터널 내부에서 사용할 수 있는 크기는 보통 외부 링크의 MTU보다 작습니다. 경로에 다른 캡슐화가 있을 수도 있으므로 Wi-Fi 신호 세기나 인터넷 회선 속도만으로 MTU를 계산할 수 없습니다.
1420은 WireGuard에서 흔히 사용하는 MTU 시작값이고, 1280은 패킷 크기를 줄여 진단할 때 참고할 수 있는 값입니다. 어느 쪽도 모든 네트워크에 적용되는 고정값은 아닙니다. 기존 설정에 값이 명시되어 있다면 먼저 그대로 입력하고, 값이 없다면 기본값을 유지하세요. 작은 요청은 되지만 큰 페이지나 대용량 전송이 멈추는 현상이 있을 때 MTU를 점검 항목에 포함하세요.
- 기존 MTU, 현재 네트워크, Global Routing 설정, 테스트 대상을 기록하고 원래 상태로 복원할 수 있도록 기준을 남겨 두세요.
- 먼저 현재 네트워크에서 같은 항목으로 실제 요청을 처리할 수 있는지 확인하세요. 통신이 전혀 되지 않는다면 MTU를 여러 값으로 바꾸기보다 키, Endpoint, UDP 연결 가능 여부를 먼저 점검해야 합니다.
- 기본값 또는
1420에서 대용량 전송이 반복해서 멈춘다면1380을 시험해 볼 수 있습니다. 여전히 문제가 있으면 진단을 위해1280과 비교하세요. 한 번에 MTU만 하나 바꾸고, 연결을 다시 설정한 뒤 같은 작업을 반복합니다. - Wi-Fi와 셀룰러 네트워크에서 각각 결과를 기록하세요. 특정 값이 한쪽 네트워크에서만 작동한다면 경로 조건이 다를 가능성이 큽니다. 이를 근거로 다른 네트워크의 설정이 잘못됐다고 판단해서는 안 됩니다.
여기 나온 값은 테스트 순서의 예시이며, 이 사이트에서 측정한 결과가 아닙니다. MTU를 낮춘 뒤 접속이 회복되더라도 경로 MTU, 패킷 분할 또는 관련 패킷 처리 문제일 가능성을 시사할 뿐입니다. 반복해서 확인해야 합니다. 값 변경 후에도 차이가 없다면 원래대로 돌리고 다른 계층을 점검하세요. MTU를 낮출수록 안정적이라고 보고 계속 낮게 설정하지 마세요.
DNS 서버와 연결 경로를 함께 확인하세요
WireGuard에는 DNS 설정을 배포하는 단일 표준 프로토콜이 없습니다. 일반적인 설정 파일의 DNS 항목은 클라이언트나 설정 도구에서 참고하는 정보이며, WireGuard 핸드셰이크로 자동 협상되는 DNS 서버가 아닙니다. Shadowrocket에서 실제로 어떤 DNS 설정을 사용하는지는 현재 Config의 DNS 항목과 앱 설정을 함께 확인해야 합니다.
Endpoint에 도메인을 사용하는 경우 터널을 연결하기 전에 해당 도메인을 조회할 수 있어야 합니다. 터널 안에서만 접근할 수 있는 DNS에 전적으로 의존하면 ‘터널을 연결해야 DNS 조회가 되고, 터널을 연결하려면 먼저 DNS 조회가 필요한’ 문제가 생길 수 있습니다. 반대로 서비스 제공업체가 안내한 내부 DNS는 주소 형식이 올바르더라도 Direct 연결로는 접근하지 못할 수 있습니다.
- Endpoint 도메인만 확인되지 않는 경우: 철자를 확인하고 현재 네트워크에서 해당 이름을 조회할 수 있는지 점검하세요. 도메인 조회 오류를 해결하려고 Public Key를 바꾸지 마세요.
- 터널은 연결되지만 일반 도메인이 조회되지 않는 경우: 현재 설정에서 사용하는 DNS 주소와 연결 경로를 확인하세요. 내부 DNS 요청이 도달할 수 없는 직접 연결로 전송되고 있지 않은지도 점검합니다.
- 일부 사이트에서만 문제가 발생하는 경우: IPv4와 IPv6 연결 가능 여부, 규칙이 일치한 결과를 함께 확인하세요. AAAA 레코드가 있다고 해서 현재 터널에 해당 IPv6 출구가 있다는 뜻은 아닙니다.
- DNS 서버를 변경한 뒤 테스트하는 경우: 연결을 다시 설정하고 같은 대상을 다시 확인하세요. 앱이나 시스템의 캐시도 고려해야 합니다. 이전에 열어 둔 페이지가 한 번 표시됐다는 이유만으로 새 설정이 적용됐다고 판단하지 마세요.
자주 발생하는 입력 오류와 점검 순서
연결 스위치가 켜져 있다는 사실만으로 시스템 VPN 세션이 해당 상태임을 알 수 있을 뿐, WireGuard가 데이터를 성공적으로 주고받았다고 단정할 수는 없습니다. 문제를 확인할 때는 ‘설정 정보 확인 → Endpoint와 UDP → 키 일치 여부 → 주소와 라우팅 정책 → DNS → MTU’ 순서로 진행하세요. 모든 항목을 무작위로 바꾸는 것보다 원인을 명확히 파악하기 쉽습니다.
Public Key에는 직접 생성한 키를 입력해야 하나요?
여기에는 원격 Peer의 Public Key를 입력합니다. 서비스 제공업체 자료에서 [Peer]의 PublicKey를 확인하세요. 기기 자체의 Public Key는 서버에 등록해야 합니다. 새 키 쌍을 만들었다면 서버에도 새 Public Key를 등록해야 하며, 기기의 Private Key만 바꿔서는 안 됩니다.
Port를 443으로 바꾸면 연결되나요?
그렇지 않습니다. Port에는 원격 서버가 실제로 수신 대기하는 UDP 포트를 입력해야 합니다. 443을 입력해도 WireGuard가 HTTPS나 TCP로 바뀌지는 않습니다. 먼저 원본 자료에 기재된 포트로 되돌린 뒤 같은 항목을 Wi-Fi와 셀룰러 네트워크에서 각각 테스트해 특정 네트워크 경로에서만 문제가 발생하는지 확인하세요.
이 문서의 10.66.0.2/32를 Address에 그대로 입력해도 되나요?
예시를 본인에게 할당된 주소로 사용하면 안 됩니다. 원본 설정에서 [Interface] 아래의 Address를 찾아 실제 값을 입력하세요. 항목이 없다면 서비스 제공업체에 확인해야 합니다. 다른 기기의 설정을 복사하면 동일한 신원이나 주소가 충돌할 수 있으므로 별도 할당이 필요한지 확인하세요.
다시 연결했는데도 이전 항목을 사용하는 것처럼 보이는 이유는 무엇인가요?
Home으로 돌아가 현재 선택된 항목과 Global Routing을 확인하세요. Config를 사용하는 경우에는 정책 그룹에서 실제로 어떤 항목이 선택되었는지도 점검해야 합니다. 연결 상태가 자동으로 복구된다면 Settings → On Demand에서 자동 연결 조건을 확인하세요. 테스트 중에는 해당 조건을 기록한 뒤 일시적으로 비활성화하고, 테스트가 끝나면 다시 활성화합니다.
구독을 업데이트한 뒤 설정이 바뀌면 어떻게 해야 하나요?
먼저 해당 항목이 Subscribe에서 관리되는지 확인한 다음 업데이트 결과를 원본 설정과 비교하세요. 테스트용 값과 실제 사용할 값을 따로 기록합니다. 구독에서 맞지 않는 Address나 키가 계속 전달된다면 새로고침할 때마다 수동으로 덮어쓰지 말고 서비스 제공업체에 설정을 확인하세요.