직접 준비한 서비스 설정이 있는 사용자를 위한 안내입니다. 먼저 기기와 원격 Peer의 매개변수를 구분하고, 각 WireGuard 항목에 어떤 값을 입력해야 하는지 확인합니다. 마지막으로 핸드셰이크 여부, 데이터 전송 여부, 목적지 주소 접속 여부를 차례로 점검해 문제를 좁혀 갑니다. 본문에 나오는 주소와 포트는 형식을 설명하기 위한 예시이며 실제 접속 정보가 아닙니다.
입력 전 확인: 양쪽 설정 정보 구분하기
WireGuard 설정은 기기와 원격 Peer 사이에 암호화 터널을 구성하는 정보입니다. Shadowrocket은 Apple 플랫폼용 유료 앱으로, iPhone 및 iPad에서는 App Store를 통해 받을 수 있습니다. 시스템 요구 사항은 App Store 페이지의 안내를 확인하세요. 앱을 구매해도 원격 서비스가 제공되는 것은 아닙니다. 설정을 입력하기 전에 본인이 이미 이용 중인 서비스의 관리 페이지나 관리자에게서 해당 기기용 설정 정보를 받아야 합니다.
가장 혼동하기 쉬운 부분은 양쪽의 키입니다. PrivateKey는 이 기기에서 사용하는 비밀 키이므로 외부에 공개하지 말고 안전하게 보관해야 합니다. 원격 Peer의 PublicKey는 서비스 측에서 받아 입력합니다. 원격 측에도 이 기기의 PrivateKey에 대응하는 공개 키가 등록되어 있어야 해당 Peer를 식별할 수 있습니다. 원격 공개 키를 기기의 비밀 키 항목에 복사하거나, 두 항목에 같은 문자열을 입력하면 연결될 것이라고 생각하지 마세요.
역할별 설정 정보 확인
이 기기
PrivateKey: 이 기기에서 사용하는 비밀 키입니다. 공개 정보처럼 전달해서는 안 됩니다.Address: 이 기기에 할당된 터널 내부 주소입니다. 보통 프리픽스 길이가 함께 표시됩니다.DNS: 서비스 설정에 DNS 서버가 지정되어 있다면 안내에 따라 입력합니다.
원격 Peer
PublicKey: 원격 Peer의 공개 키이며, 이 기기의 공개 키가 아닙니다.Endpoint: 원격에서 접속할 수 있는 호스트 이름 또는 IP 주소와 UDP 포트입니다.AllowedIPs: 이 Peer로 전달할 목적지 주소 범위입니다. 서비스 설정에 따라 달라집니다.
정리: 원본 설정 정보를 기준으로 ‘이 기기’와 ‘원격’ 항목을 하나씩 대조하세요. 필수 항목이 빠졌다면 추측해서 입력하지 말고 설정 제공자에게 확인해야 합니다.
표준 WireGuard 설정 파일이 있다면 [Interface]와 [Peer]를 먼저 구분하세요. 일반적으로 전자에는 이 기기의 매개변수가, 후자에는 원격 Peer의 매개변수가 들어 있습니다. 앱 화면의 항목 배치는 설정 파일의 구분과 다를 수 있지만, 매개변수의 역할은 달라지지 않습니다. 설정 파일 전체를 PrivateKey나 Endpoint 항목에 붙여 넣지 마세요.
PrivateKey, PublicKey, Endpoint, MTU의 역할
PrivateKey는 이 기기가 WireGuard 핸드셰이크에 참여할 때 사용하며, 이에 대응하는 공개 키는 원격 설정에 등록해야 합니다. 민감한 인증 정보이므로 문제를 확인할 때 입력 위치가 맞는지, 다른 기기의 정보를 잘못 사용하지 않았는지 점검할 수는 있지만 화면 캡처나 공개 문의에 원문을 노출해서는 안 됩니다. 이 비밀 키를 바꾸면 이 기기의 공개 키도 달라지므로 원격에 등록된 정보도 함께 갱신해야 합니다.
PublicKey는 연결할 원격 Peer를 지정합니다. 잘못 입력하면 호스트 이름과 포트가 맞더라도 양쪽이 올바른 신원을 확인해 핸드셰이크를 완료할 수 없습니다. Endpoint는 원격에 접속할 때 사용할 주소이며, 일반적으로 ‘호스트 이름:포트’ 형식으로 입력합니다. 예를 들면 형식 설명용인 vpn.example.com:51820과 같습니다. 여기서 51820은 예시 UDP 포트일 뿐이며, 실제 값은 본인의 서비스 설정을 따르세요.
MTU는 터널을 통과하는 단일 패킷의 크기를 제한합니다. 값이 너무 크면 일부 네트워크 경로에서 간단한 요청은 되지만 큰 페이지나 파일 전송이 멈출 수 있습니다. 반대로 값이 너무 작으면 전송 오버헤드가 커집니다. 1420은 흔히 시도하는 시작값이지 모든 네트워크에 적용해야 하는 값은 아닙니다. 먼저 설정 제공자가 안내한 값을 사용하세요. 핸드셰이크가 확인된 상태에서 큰 데이터 전송만 문제가 될 때에 한해 안내에 따라 값을 조금씩 조정하고, 변경 전후 결과를 기록하세요.
Add Server에서 설정 정보에 따라 입력하기
WireGuard 전용 매개변수를 이미 받았고 각 항목을 직접 확인하고 싶다면 수동 입력을 사용하면 됩니다. 이용 중인 서비스에서 구독 URL만 제공한다면 먼저 구독에 사용할 수 있는 WireGuard 설정이 포함되어 있는지 확인하세요. 구독 링크 자체는 Endpoint가 아니므로 원격 주소 항목에 URL 전체를 입력하면 안 됩니다. 아래는 수동 추가 절차이며, 실제 항목은 현재 앱 화면을 기준으로 확인하세요.
추가 화면 열기
Shadowrocket의
Home으로 이동한 다음 오른쪽 상단의+를 눌러Add Server를 엽니다.Type에서WireGuard를 선택하세요.기기 항목 입력
기존 설정을 확인해
PrivateKey와 이 기기에 할당된Address를 입력합니다. 설정에DNS가 명시되어 있다면 해당 값도 입력하세요. 예시 주소를 실제 할당 주소로 사용하면 안 됩니다.원격 항목 입력
원격
PublicKey,Endpoint,AllowedIPs를 각각 해당 항목에 입력합니다. 설정에PresharedKey가 포함되어 있다면 원본 값 그대로 입력하고, 제공되지 않았다면 임의로 만들지 마세요.MTU 확인
설정 정보에
MTU가 지정되어 있다면 해당 값을 우선 사용하세요. 지정된 값이 없다면 첫 연결 전에 여러 매개변수를 한꺼번에 바꾸지 말고 앱에서 허용하는 기본 설정을 유지하세요.저장하고 테스트
저장한 뒤
Home으로 돌아가 방금 추가한 항목을 선택하고 연결을 켭니다. 처음 활성화할 때는 시스템 안내에 따라 VPN 구성을 허용하세요. 이후 연결 상태를 살펴보고 실제로 접속되는지 테스트합니다.
AllowedIPs는 원본 설정과 한 글자씩 대조하는 것이 특히 중요합니다. 이 값은 해당 Peer가 처리할 대상 주소 범위를 나타냅니다. 0.0.0.0/0은 전체 IPv4 주소 공간을, ::/0은 전체 IPv6 주소 공간을 뜻하지만, 이 범위를 사용할지는 기존 서비스 설정에 따라 달라집니다. 이는 Shadowrocket의 Global Routing과는 별개의 설정입니다. 전자는 WireGuard Peer의 대상 범위를 제한하고, 후자는 현재 라우팅 모드에 따라 앱이 요청을 처리하는 방식을 결정합니다.
핸드셰이크 실패: 주소, 신원, 연결 경로 순으로 확인
‘스위치가 켜짐’과 ‘WireGuard 핸드셰이크 완료’는 같은 의미가 아닙니다. 먼저 방금 저장한 WireGuard 항목을 선택했는지 확인하고, 원격에서 실제 응답이 오는지 살펴보세요. 관리 화면이나 서비스 진단 정보에 최근 핸드셰이크 시간이 표시된다면 판단에 참고할 수 있습니다. 해당 정보가 표시되지 않는다면 스위치 색상만으로 핸드셰이크 성공을 단정하지 마세요.
핸드셰이크가 계속 안 되면 무엇부터 확인해야 하나요?
먼저 Endpoint의 호스트 이름, 콜론, UDP 포트가 정확한지 확인하고 기존 서비스에서 안내한 접속 주소인지 대조하세요. 다른 네트워크로 전환해 다시 시도해 보세요. 특정 네트워크에서만 실패한다면 해당 네트워크에서 UDP 접속 주소에 도달할 수 있는지 먼저 확인하세요.
주소가 맞는데도 실패하는 이유는 무엇인가요?
원격 PublicKey, 이 기기의 PrivateKey, 선택 항목인 PresharedKey를 하나씩 대조하세요. 설정 제공자에게 원격에 이 기기의 공개 키가 등록되어 있는지 확인하고, 기기의 Address가 원격에 기록된 값과 일치하는지도 점검해 달라고 요청하세요.
네트워크를 바꾸면 가끔 연결되는 이유는 무엇인가요?
어떤 네트워크에서 실패하는지, 같은 설정이 다른 네트워크에서는 핸드셰이크되는지 기록하세요. 서비스 설정에 PersistentKeepalive가 지정되어 있다면 값이 빠짐없이 입력되었는지 확인하세요. 이 설정은 주소 변환을 거치는 일부 연결의 매핑을 유지하는 데 도움이 될 수 있지만, 잘못된 키나 포트를 바로잡아 주지는 않습니다.
핸드셰이크는 되는데 웹페이지가 제대로 열리지 않나요?
간단한 요청과 큰 페이지를 각각 테스트한 다음 AllowedIPs, DNS, Global Routing을 확인하세요. 주로 큰 데이터 전송이 멈춘다면 현재 MTU를 기록한 뒤 조금씩 조정해 보세요. 한 번에 하나의 설정만 변경해야 합니다.
문제 해결의 핵심은 비교 조건을 유지하는 것입니다. 같은 설정과 같은 목적지 주소를 사용하고, 설정 한 가지 또는 네트워크 조건 하나만 바꿔 보세요. 키, 포트, 라우팅 모드, MTU를 한꺼번에 바꾸면 접속이 복구되더라도 원인을 알기 어렵습니다. 설정 제공자에게 문의할 때는 오류가 발생한 단계, 네트워크 종류, 테스트 결과만 설명하고 PrivateKey 원문은 절대 첨부하지 마세요.
핸드셰이크 성공 후 라우팅 문제와 전송 문제 구분하기
핸드셰이크가 성공했다는 것은 양쪽이 필요한 협상을 마쳤다는 뜻일 뿐, 모든 목적지 주소가 터널을 통과하거나 DNS가 예상대로 응답하거나 목적지 서비스에 접속할 수 있다는 의미는 아닙니다. 먼저 Home에서 Connectivity Test를 사용해 상태를 확인한 다음, 명확한 목적지 주소로 다시 테스트하세요. 일부 목적지만 실패한다면 해당 주소가 AllowedIPs 범위에 포함되는지, 현재 Global Routing이 요청을 선택한 연결로 보내는지 확인하세요.
Config
권장설정된 규칙에 따라 요청의 경로를 결정합니다. 특정 목적지를 점검할 때는 어떤 규칙에 일치하는지와 최종 동작을 확인하세요. WireGuard 핸드셰이크가 성공했다는 이유만으로 규칙 적용 결과를 판단할 수는 없습니다.
적합한 경우: 평소 규칙을 사용하면서 트래픽 분기 결과를 하나씩 확인할 때
Proxy
요청을 선택한 프록시 연결로 일시적으로 보내 현재 규칙 경로에 문제가 있는지 확인할 수 있습니다. 테스트 전에 WireGuard 설정 자체가 연결되는지 확인하세요.
적합한 경우: 규칙에 따른 분기와 연결 자체를 짧게 비교할 때
Direct
요청을 직접 연결로 보냅니다. 이 모드에서는 목적지 접속 결과만으로 WireGuard 전송이 정상인지 판단할 수 없습니다.
적합한 경우: 직접 연결 상태와 비교할 때. 테스트가 끝나면 필요한 모드인지 다시 확인하세요.
Config를 사용하는 경우 DOMAIN-SUFFIX, GEOIP, IP-CIDR, FINAL 같은 규칙 키워드는 각각 도메인 접미사, 지리적 위치, IP 대역, 최종 일치 조건과 관련됩니다. 먼저 테스트 대상에 어떤 규칙이 적용되는지 확인한 뒤 WireGuard를 점검할지 판단하세요. 모든 대상에서 전송이 안 된다면 Peer 매개변수를 우선 확인하고, 일부 도메인만 실패한다면 DNS 응답, 규칙 적용 결과, 목적지 주소 범위를 비교하세요.
테스트가 끝나면 임시로 변경한 Global Routing, MTU, DNS 설정을 검증된 값으로 되돌리고, 비밀 키 원문을 제외한 문제 기록을 보관하세요. 다음에 ‘핸드셰이크는 되지만 접속할 수 없는’ 문제가 발생하면 네트워크, 목적지, 설정 변경 사항을 먼저 비교할 수 있어 각 항목의 역할을 다시 추측할 필요가 없습니다.
정식 앱인지 확인한 뒤 설정하기
Shadowrocket은 App Store에서 받을 수 있으며 개발자는 Shadow Launch Technology Limited, 앱 ID는 932747118입니다. 앱은 한 번 구매하면 계속 사용할 수 있습니다. 연결에 필요한 서비스 정보는 사용자가 직접 준비해야 합니다. 이 페이지는 공식 안내이며, 구매 전에는 App Store 페이지에 표시된 정보를 확인하세요.
정식 앱 확인 페이지 사용 안내 보기