2026-08-04 · 프로토콜 해설 · 약 10분

Shadowrocket WireGuard 설정 방법: Private Key, Peer Public Key, Allowed IPs 입력하기

Shadowrocket에서 WireGuard를 추가할 때 Private Key, Public Key, Endpoint, Allowed IPs, MTU의 의미와 제공받은 설정 파일에 맞춰 입력하는 방법을 설명합니다.

이 글의 핵심 내용

Shadowrocket에서 WireGuard를 설정할 때는 먼저 기기 쪽 Interface와 원격 Peer를 구분해야 합니다. 기기의 Private Key와 터널 주소는 Interface에, 원격 Public Key, Endpoint, Allowed IPs는 Peer에 해당합니다. 이 글은 본인에게 제공된 설정 파일과 서비스 정보를 보유한 경우를 전제로, 각 항목의 위치와 추가 절차, 연결에 실패했을 때 확인할 순서를 설명합니다. 예시 주소는 형식 설명용이며 실제 연결에 사용할 수 없습니다.

1. Interface와 Peer의 역할 구분하기

WireGuard는 계정과 비밀번호로 로그인하는 대신 키 쌍으로 통신 양쪽을 식별합니다. 서비스 제공자가 전달하는 설정 파일은 보통 [Interface]와 [Peer] 두 부분으로 구성됩니다. 여기서 ‘기기’는 이 클라이언트 설정을 사용하는 장치이고, ‘원격’은 연결할 서버를 뜻합니다. 값을 옮길 때는 이 방향을 지켜야 합니다. Public Key라고 해서 기기의 공개 키를 원격 공개 키 항목에 입력하면 안 됩니다.

설정 섹션으로 기기와 원격 구분하기

Interface: 기기 정보
  • PrivateKey: 기기의 개인 키이며 외부에 노출되지 않도록 관리해야 합니다.
  • Address: 기기에 할당된 터널 주소이며 CIDR 접두사 길이가 포함될 수 있습니다.
  • MTU: 터널 인터페이스의 최대 전송 단위입니다. 지정되지 않은 경우도 있습니다.
  • DNS: 설정 파일에 지정된 DNS 서버 정보이며 원격 연결 주소가 아닙니다.
Peer: 원격 정보
  • PublicKey: 상대 Peer를 식별하는 원격 공개 키입니다.
  • Endpoint: 원격 도메인 이름 또는 IP 주소와 UDP 포트입니다.
  • AllowedIPs: 해당 Peer가 담당하는 대상 IP 주소 범위입니다.
  • PresharedKey: 선택 항목인 사전 공유 키로, 양쪽에 같은 값을 입력해야 합니다.

각 항목의 기준은 기기에 전달된 클라이언트 설정 파일입니다. 서버 측 설정을 그대로 가져와 항목별로 입력하지 마세요.

예를 들어 클라이언트 설정의 Address = 10.66.0.2/32는 기기가 터널 안에서 사용하는 IPv4 주소를 뜻합니다. 반면 Endpoint = 192.0.2.10:51820은 통신을 시작할 때 접속하는 원격 주소입니다. 두 값을 바꿔 입력하면 올바른 원격 접속 주소도, 터널의 올바른 출발지 주소도 설정되지 않습니다.

2. Private Key와 Public Key에 입력할 값

Shadowrocket의 WireGuard 편집 화면에서 Private Key에는 클라이언트 설정의 [Interface] 아래에 있는 PrivateKey를 입력합니다. Peer의 Public Key에는 클라이언트 설정의 [Peer] 아래에 있는 PublicKey를 입력합니다. 앱 화면의 항목명에는 공백이 있지만 설정 파일의 키워드에는 보통 공백이 없을 뿐, 의미는 같습니다.

기기 키 확인

출처
클라이언트 설정의 [Interface]
Private Key
PrivateKey 값 전체 복사
기기의 Public Key
기기의 Private Key에서 생성하며 원격 서버에 등록할 때 사용
비밀 유지
개인 키가 화면 캡처, 채팅 기록, 공개 문서에 포함되지 않도록 주의

개인 키를 직접 바꾸면 기기의 식별 정보도 달라지므로 원격에 등록된 클라이언트 공개 키도 함께 갱신해야 합니다.

원격 키 확인

출처
클라이언트 설정의 [Peer]
Public Key
해당 Peer의 PublicKey 전체 복사
Preshared Key
제공받은 정보에 명시된 경우에만 입력
대응 관계
원격 공개 키는 현재 Endpoint의 서비스와 일치해야 합니다.

공개 키와 사전 공유 키는 서로 다른 항목이며 대체할 수 없습니다.

WireGuard 키는 대소문자를 구분합니다. 일반적인 텍스트 형식은 44자 길이의 Base64 문자열이며 끝에 =가 붙을 수 있습니다. 복사할 때 PrivateKey = 같은 항목명은 제외하고 마지막 문자까지 빠짐없이 복사하세요. 형식에 맞는 길이와 모양은 키가 올바를 가능성을 보여줄 뿐, 서버에 등록된 값과 일치한다는 뜻은 아닙니다.

3. Endpoint, 터널 주소, MTU 입력 방법

Endpoint에는 원격 주소와 UDP 포트가 함께 들어갑니다. 편집 화면에서 주소와 포트를 따로 입력하도록 되어 있다면 각각 나눠 입력하세요. ‘주소:포트’ 전체를 주소만 받는 입력란에 넣으면 안 됩니다. 51820은 흔히 볼 수 있는 예시 포트일 뿐 모든 WireGuard 서비스가 사용하는 고정값은 아닙니다. 실제 값은 본인이 받은 설정 정보를 따르세요.

설정 항목 형식 예시 입력 및 확인 사항
Endpoint 192.0.2.10:51820 나눠 입력할 때 주소는 192.0.2.10, 포트는 51820입니다. 전송에는 UDP를 사용합니다.
IPv6 Endpoint [2001:db8::10]:51820 대괄호는 Endpoint 전체 형식에서 주소와 포트를 구분하는 데 사용합니다. 주소 전용 입력란에는 해당 입력란이 지원하는 형식으로 입력하세요.
Address 10.66.0.2/32 기기의 터널 주소입니다. 화면에서 주소와 접두사 길이를 따로 입력한다면 각각 입력하세요.
AllowedIPs 10.66.0.0/24 해당 Peer가 담당하는 주소 범위를 뜻합니다. 기기 주소나 도메인 목록이 아닙니다.
MTU 1420 단위는 바이트입니다. 설명을 위한 예시값이며 모든 네트워크에 통용되는 고정값은 아닙니다.
PersistentKeepalive 25 단위는 초이며 주기적으로 keepalive 패킷을 보내는 데 사용됩니다. 편집 화면에 해당 항목이 있을 때 설정 정보에 따라 입력하세요.

MTU는 터널을 통과하는 단일 패킷의 크기에 영향을 줍니다. 값이 너무 크면 일부 경로에서 작은 요청은 정상적으로 처리되지만 큰 응답은 멈추는 현상이 생길 수 있습니다. 다만 DNS, 원격 서비스 또는 패킷 손실도 원인일 수 있습니다. 우선 서비스 제공자가 지정한 값을 사용하고, 지정된 값이 없다면 앱 기본값을 유지하세요. 모든 문제 해결의 첫 단계로 MTU를 낮추지는 마세요.

4. Allowed IPs와 Shadowrocket의 트래픽 분할 규칙은 별개입니다

AllowedIPs는 WireGuard에서 Peer를 선택할 때와 수신 주소를 확인할 때 모두 사용됩니다. 터널로 보내는 트래픽에서는 대상 주소에 맞는 Peer를 결정하고, 수신 후 복호화한 트래픽에서는 출발지 주소가 해당 Peer에 허용된 범위에 속하는지 확인합니다. IP 네트워크만 지정할 수 있으며 example.com 같은 도메인은 입력할 수 없습니다.

0.0.0.0/0은 모든 IPv4 주소를, ::/0은 모든 IPv6 주소를 포함합니다. 그렇다고 Shadowrocket이 모든 앱 트래픽을 이 서버로 보내도록 강제되는 것은 아닙니다. 먼저 Global Routing 설정과 Config 규칙이 트래픽 경로를 결정합니다. 트래픽이 실제로 WireGuard로 전달된 뒤에는 해당 Peer의 Allowed IPs에 대상 주소가 포함되어야 합니다.

Config: 규칙에 따라 사용

권장

현재 Config의 규칙에 따라 사용할 정책을 선택합니다. 평소 설정으로 돌아가기 전에 대상 트래픽이 의도한 서버나 정책 그룹을 가리키는지 확인하고 FINAL 규칙의 최종 처리도 점검하세요.

적합한 경우: 사용할 규칙이 준비되어 있고 직접 연결과 프록시 트래픽을 명확히 구분해야 할 때

Proxy: 규칙 영향을 일시적으로 분리

지원되는 프록시 라우팅 범위에서 트래픽을 프록시로 통일하면 Config의 분할 규칙이 테스트에 미치는 영향을 줄일 수 있습니다. 하지만 잘못된 키를 바로잡거나 원격에서 실제로 연결 가능한 네트워크 범위를 넓혀 주지는 않습니다.

적합한 경우: 서버 설정을 확인한 뒤 규칙이 적용되지 않아 트래픽이 직접 연결되는지 일시적으로 점검할 때

Direct: 직접 연결 경로

트래픽이 직접 연결 경로를 사용합니다. 이 상태에서 공용 웹사이트가 열린다고 해서 WireGuard 서버 설정이 성공했다고 볼 수 없으며, 원격 사설 네트워크에 접속할 수 있는지도 판단할 수 없습니다.

적합한 경우: 로컬 네트워크에서 동일한 공용 테스트 대상에 접속할 수 있는지 확인할 때

서비스 제공자가 10.66.0.0/24에만 접속을 허용한다면 공용 웹사이트를 테스트하려고 Allowed IPs를 임의로 IPv4와 IPv6 전체 주소 범위로 바꾸지 마세요. 클라이언트가 변경을 허용하더라도 원격 서버에서 공용 트래픽 전달, IPv6 라우팅 또는 해당 접근 권한을 제공하지 않을 수 있습니다. 제공된 정보에서 접속을 허용한 대상으로 연결을 확인하세요.

5. Home에서 WireGuard 추가 및 확인

추가하기 전에 원본 설정 정보를 보관하고 현재 Global Routing 값을 기록하세요. Home의 서버 항목, Config의 규칙 파일, Settings의 앱 설정은 서로 다른 항목입니다. 서버 항목을 추가했다고 해서 특정 규칙 파일로 전환된 것은 아닙니다. 다음 절차는 수동 입력을 기준으로 합니다. 입력 가능한 항목은 앱에 실제로 표시되는 내용을 확인하세요.

  1. 설정 정보 확인

    클라이언트 설정에 Interface의 개인 키와 주소, Peer의 공개 키, Endpoint, Allowed IPs가 있는지 확인하세요. Preshared Key 또는 MTU가 제공되었다면 함께 기록해 설정 파일의 일부만 복사하는 일이 없도록 합니다.

  2. 유형 선택

    Home → 오른쪽 상단 ‘+’ → Type → WireGuard로 이동합니다. 먼저 Type을 확인해 WireGuard 공개 키를 다른 프로토콜의 Password 항목에 입력하지 않도록 하세요.

  3. 항목 입력

    기기 정보와 원격 정보를 구분해 입력하세요. Endpoint의 주소와 포트를 편집 화면의 해당 입력란에 맞춰 입력한 다음 Private Key, Peer Public Key, 터널 주소와 사용할 수 있는 추가 항목을 확인합니다.

  4. 저장 후 선택

    저장하고 Home으로 돌아간 뒤 방금 추가한 서버를 선택하고 왼쪽에 선택 표시가 나타나는지 확인하세요. 현재 규칙이 정책 그룹을 사용한다면 해당 그룹에서 실제로 선택된 서버도 확인해야 합니다. Home의 기본 선택만 확인해서는 안 됩니다.

  5. 연결 테스트

    Home에서 연결 스위치를 켭니다. 처음 사용할 때는 시스템 안내에 따라 VPN 구성을 추가하도록 허용하세요. Connectivity Test로 테스트 대상의 연결 상태를 확인한 다음 서비스 제공자가 접속을 허용한 주소에 연결해 보세요.

  6. 설정 복원

    문제 해결을 위해 Global Routing을 임시로 변경했다면 확인을 마친 뒤 원래 설정으로 되돌리세요. Settings → On Demand에서 필요 시 연결 설정을 확인하고, 수동 테스트에 방해가 되지 않도록 점검 중에는 자동 연결이나 연결 해제가 실행되지 않게 하세요.

6. 자주 묻는 질문: 식별 정보, 경로, 대상 순으로 점검

개인 키와 공개 키를 모두 입력했는데도 왜 시간 초과가 발생하나요?

먼저 Public Key가 기기 공개 키가 아니라 클라이언트 파일의 Peer에서 가져온 값인지 확인하세요. 그런 다음 Endpoint 주소와 UDP 포트, Preshared Key를 확인합니다. WireGuard는 계정 로그인처럼 ‘비밀번호가 잘못되었습니다’라는 응답을 반드시 반환하지 않습니다. 시간 초과는 UDP 경로에 연결할 수 없는 경우에도 발생하므로 이 현상만으로 키가 잘못됐다고 단정할 수 없습니다.

Wi-Fi를 바꾸면 왜 연결되지 않나요?

같은 서버, 같은 대상, 같은 Global Routing을 유지한 채 Wi-Fi와 셀룰러 네트워크를 각각 테스트해 여러 조건을 동시에 바꾸지 않도록 하세요. 한쪽 네트워크에서만 실패한다면 해당 네트워크의 UDP 연결 가능 여부, Endpoint 도메인 조회, 경로 MTU를 먼저 확인한 다음 Settings → On Demand에서 네트워크별로 다른 동작이 설정되어 있는지 살펴보세요.

IP 주소로는 접속되는데 도메인이 열리지 않을 때는 어떻게 확인하나요?

먼저 두 번의 접속이 같은 서비스로 향하는지 확인한 다음 현재 Config의 DNS 설정과 도메인 규칙을 점검하세요. IP 주소로 직접 접속하는 경우와 도메인으로 접속하는 경우 서로 다른 규칙이 적용될 수 있으며 TLS 인증서 이름이 달라 결과가 달라질 수도 있습니다. 이 이유만으로 Peer 공개 키나 원격 포트를 바로 바꾸지는 마세요.

같은 설정을 iPhone과 iPad에서 함께 사용할 수 있나요?

여러 기기에서 사용할 수 있는지는 이용 중인 서비스의 설정에 따라 다릅니다. 두 기기에서 같은 개인 키와 터널 주소를 동시에 사용하면 원격에서 인식하는 통신 끝점이 계속 바뀌어 한 기기가 복구될 때 다른 기기의 연결이 끊길 수 있습니다. 두 기기를 동시에 연결해야 한다면 기존 서비스 제공자에게 기기별로 별도의 식별 정보와 터널 주소를 받을 수 있는지 확인하세요.

Allowed IPs를 전체 주소로 설정했는데도 웹사이트가 직접 연결되는 이유는 무엇인가요?

Home으로 돌아가 Global Routing을 확인한 다음 Config에서 현재 활성화된 파일의 DOMAIN-SUFFIX, IP-CIDR, FINAL 등 규칙과 적용 정책을 점검하세요. Allowed IPs는 앱 수준의 트래픽 분할 규칙을 덮어쓰지 않습니다. 대상 트래픽이 규칙에 따라 DIRECT로 전달되면 이 WireGuard 경로를 거치지 않습니다.

7. 저장 전 최종 점검 및 민감 정보 보호

반복 가능한 연결 확인을 마친 뒤 원본 설정과 최종 사용값을 서로 대응해 기록해 두세요. 직접 수정하거나 다시 가져오거나 기존 구성을 업데이트한 뒤에는 실제 적용된 항목을 다시 확인해야 합니다. 로컬에서 수정한 값이 이후 업데이트에도 그대로 유지된다고 가정하지 마세요. 서비스 주소나 키가 바뀌었다면 본인이 이용하는 서비스 제공자가 가장 최근에 전달한 정보를 기준으로 설정하세요.

Shadowrocket은 Apple 플랫폼용 유료 클라이언트로, 주로 iPhone과 iPad에서 사용합니다. 앱을 받을 수 있는 곳은 App Store뿐이며 개발자는 Shadow Launch Technology Limited입니다. 클라이언트는 일회성 구매 방식입니다. 클라이언트 구매와 회선 요금제는 별개이며, 시스템 요구 사항과 구매 가능 여부는 App Store 페이지에 표시된 정보를 기준으로 확인하세요. 이 글은 기존 설정의 입력과 확인 방법만 설명하며 서비스 제공자가 허용한 네트워크 접근 범위를 변경하지 않습니다.

App Store 정품 확인