서비스 제공업체에서 받은 Trojan 설정값이나 구독 정보를 보유하고 있으며, Shadowrocket에서 설정을 확인하려는 사용자를 위한 안내입니다. 연결 주소, TLS 인증 정보, 인증 비밀번호를 구분한 다음 Add Server의 각 항목을 확인하세요. 시간 초과, 인증서 오류, 인증 실패가 발생하면 옵션을 무작정 바꾸기보다 연결 단계별로 원인을 좁혀 보세요.
Trojan 설정의 세 단계: 연결, TLS, 인증
일반적인 Trojan 연결은 먼저 TCP를 통해 서버의 지정 포트에 접속한 뒤 TLS 세션을 설정하고, 암호화된 채널에서 Trojan 인증 정보를 전송해 프록시 요청을 처리합니다. 따라서 주소에 연결할 수 있다고 TLS 연결까지 성공한 것은 아니며, TLS가 성공해도 비밀번호가 올바르다는 뜻은 아닙니다. 설정을 확인할 때는 이 세 단계를 나누어 살펴보세요.
TLS는 전송을 보호하고 상대 서버의 신원을 확인하는 데 사용되며, Trojan 비밀번호는 애플리케이션 계층 인증에 사용됩니다. 서로 대체할 수 없습니다. 서버 인증서가 유효하더라도 입력한 비밀번호가 맞는 것은 아니며, 비밀번호가 맞아도 인증서 이름 불일치를 해결할 수는 없습니다. 이 글에서는 일반적인 Trojan over TLS 설정을 다룹니다. 추가 전송 옵션은 기존 구독 정보나 서비스 제공업체의 안내를 그대로 따르세요.
판단 기준: 실패 단계부터 찾기
인증서 이름 오류가 발생하면 비밀번호를 바꾸기 전에 SNI와 인증서를 확인하세요. 계속 시간 초과가 발생한다면 TLS 보안 옵션은 건드리지 말고 주소, 포트, 현재 네트워크부터 확인하세요.
Add Server 항목: Address, Port, Password 입력 방법
Home 오른쪽 상단의 “+”를 눌러 Add Server로 이동한 다음 Type을 Trojan으로 설정하고 항목을 입력하세요. 기존 구독에서 항목이 자동으로 생성된다면 원래 항목을 비교용으로 보존하는 것이 좋습니다. 수동으로 확인할 때는 별도 항목을 사용하면 구독 업데이트로 임시 변경 사항이 덮어쓰이는 것을 막을 수 있습니다. 항목의 표시 위치는 인터페이스 업데이트에 따라 달라질 수 있으므로 영문 항목명과 용도를 기준으로 확인하세요.
| 항목 | 입력 내용 | 자주 하는 실수 |
|---|---|---|
| Type | 기존 설정과 같은 프로토콜을 사용하도록 Trojan을 선택합니다. | 항목 이름만 보고 실제 프로토콜을 확인하지 않음 |
| Address | 서비스 제공업체가 안내한 서버 도메인 또는 IP 주소 | 구독 URL 전체를 붙여 넣거나 https://, 경로, 쿼리 매개변수까지 입력함 |
| Port | 서버에서 실제로 수신 대기 중인 포트입니다. 예를 들어 443 또는 8443이 있으며, 원래 설정값을 따르세요. | TLS를 보고 무조건 443으로 바꾸거나 포트를 Address에 중복으로 입력함 |
| Password | 해당 Trojan 항목에 지정된 전체 인증 비밀번호 | 서비스 제공업체 사이트의 로그인 비밀번호를 입력하거나 기호를 빠뜨리고 앞뒤 공백을 포함함 |
| SNI | 서비스 제공업체가 지정한 TLS 서버 이름으로, 보통 도메인입니다. | URL, 포트 또는 임의의 웹사이트 이름을 입력함 |
| Allow Insecure | 인증서 검증을 유지하려면 평소에는 끄세요. | 시간 초과나 비밀번호 오류를 해결하는 만능 스위치로 여김 |
예를 들어 기존 설정의 주소가 edge.example.com, 포트가 8443이라면 각 값을 해당 항목에 따로 입력해야 합니다. 이 도메인은 입력 형식을 설명하기 위한 예시일 뿐, 실제로 사용할 수 있는 서버 주소가 아닙니다. 브라우저에서 HTTPS에 443을 자주 사용한다는 이유로 서버가 지정한 포트를 임의로 바꾸지 마세요.
- 비밀번호는 대소문자를 구분합니다. 서비스 제공업체가 해당 항목에 지정한 값을 그대로 복사하고, 임의로 줄이거나 수정하지 마세요.
- Password를 직접 입력할 때는 원래 비밀번호를 사용하세요. 인코딩된 공유 정보를 받았다면 앱의 가져오기 기능을 우선 사용하고, 인코딩된 문자열을 비밀번호로 직접 입력하지 마세요.
- 구독 URL의 token은 구독 정보를 가져오는 데 쓰이며, Trojan 비밀번호와 다를 수 있습니다. 모양이 비슷하다고 같은 값이라고 단정하지 마세요.
SNI와 TLS: 연결 주소와 다른 이름을 사용하는 이유
SNI는 TLS ClientHello에 포함되는 서버 이름 확장으로, 같은 주소를 사용하는 서버가 적절한 인증서와 사이트 설정을 선택하도록 합니다. Address는 클라이언트가 접속할 위치를 지정하고, SNI는 TLS 연결에서 서버 이름을 선택하는 데 사용됩니다. 일반적인 설정에서는 두 값이 같은 도메인이지만, Address에 IP를 사용하거나 서버가 특정 접속 경로를 사용하는 경우에는 서로 다를 수 있습니다.
예를 들어 기존 설정에서 Address는 특정 IP로, SNI는 tls.example.com으로 지정되어 있다면 두 값을 구분해 그대로 유지하세요. SNI를 IP로 임의 변경하거나 다른 항목에서 “비슷해 보이는” 도메인을 복사하지 마세요. 인증서 검증에서는 신뢰 체인, 유효 기간, 이름 일치 여부도 확인합니다. 기기 시간이 크게 어긋나면 유효한 인증서가 아직 유효하지 않거나 이미 만료된 것으로 판단될 수 있습니다.
- SNI에 프로토콜 접두사를 입력하지 마세요:
tls.example.com처럼 이름만 입력해야 합니다.https://tls.example.com/path를 입력하는 것이 아닙니다. - SNI에 포트를 입력하지 마세요: 포트는 Port 항목에 입력합니다.
tls.example.com:443처럼 입력하지 마세요. - 이름을 임의로 바꾸지 마세요: 유명 웹사이트의 도메인으로 바꿔도 서버에 해당 인증서가 자동으로 제공되지는 않으며, 연결 성공을 보장하지도 않습니다.
- 별도 SNI가 없다면 먼저 원래 설정을 확인하세요: Address에 도메인을 입력했다는 이유만으로 모든 서버가 같은 기본 동작을 지원한다고 단정하지 마세요.
기존 설정에 ALPN 또는 전송 관련 옵션이 있다면 동일하게 유지하세요. 문제 해결 글에 나온 임의의 조합을 현재 항목에 적용하지 마세요. 특히 표준 Trojan 설정을 다른 프로토콜에 그대로 적용해서는 안 됩니다. 프로토콜 유형에 따라 인증 및 전송 방식이 달라지므로 Type만 바꾼다고 변환이 완료되는 것은 아닙니다.
입력부터 검증까지: 순서대로 확인하는 5단계
입력 전에 원래 설정값을 준비하고 현재 네트워크가 Wi-Fi인지 셀룰러인지 기록해 두세요. 변경 사항을 제대로 비교하려면 같은 대상, 같은 네트워크, 같은 항목으로 테스트해야 합니다. 비밀번호와 SNI, 라우팅 모드를 동시에 바꾸면 연결이 복구되더라도 원인을 파악하기 어렵습니다.
-
항목 추가 화면 열기
Home → 오른쪽 상단 “+” → Add Server → Type에서 Trojan을 선택합니다. 기존 구독을 이용한다면 먼저 구독에서 생성된 항목과 비교해 프로토콜을 잘못 선택하지 않았는지 확인하세요.
-
연결 정보 입력
Address, Port, Password를 각각 입력합니다. 붙여 넣은 뒤 앞뒤 공백이 없는지, Address에 URL 경로가 포함되지 않았는지, Port가 원래 설정과 일치하는지 확인하세요.
-
TLS 설정 확인
원래 설정에 맞춰 SNI를 입력하고 TLS 관련 옵션을 확인한 다음 Allow Insecure를 끄세요. 저장하기 전에 도메인에 포트가 붙어 있지 않은지 다시 확인하세요.
-
라우팅 영향 분리
Home으로 돌아가 방금 저장한 항목을 선택합니다. 테스트하는 동안 Global Routing을 일시적으로 Proxy로 설정해 테스트 요청이 해당 항목을 거치는지 확인할 수 있습니다. 테스트가 끝나면 기존 Config 또는 Scene 설정으로 되돌리세요.
-
실제 접속 확인
연결 스위치를 켜고 시스템 안내에 따라 필요한 확인을 완료한 다음 Connectivity Test를 실행하고 평소 사용하는 HTTPS 페이지에 접속해 보세요. 연결 스위치가 켜졌는지만 보지 말고 오류와 실제 동작을 기록하세요.
Global Routing이 Direct이면 요청이 직접 연결될 수 있으므로 웹페이지가 열린다고 Trojan 설정이 유효하다고 볼 수는 없습니다. Config는 현재 설정의 규칙에 따라 정책을 선택하며, Scene을 사용하는 경우 해당 Scene의 실제 설정을 확인해야 합니다. Proxy를 임시로 사용하는 이유는 라우팅 변수를 줄이기 위해서이지, 평소에도 해당 모드를 유지해야 한다는 뜻은 아닙니다. 규칙 기반 라우팅은 규칙 매뉴얼을 참고하세요.
- Connectivity Test 성공은 해당 테스트 조건에서의 결과만 보여 주며, 모든 웹사이트와 전송 유형이 작동한다는 뜻은 아닙니다.
- 연결 스위치가 켜져 있다는 것은 시스템에서 해당 연결 설정을 활성화했다는 뜻이지, 원격 인증과 모든 요청이 성공했다는 의미는 아닙니다.
- 네트워크를 바꿔 다시 테스트할 때는 먼저 설정값을 그대로 유지하세요. 한 네트워크에서만 실패한다면 해당 네트워크의 연결 상태부터 확인하는 것이 좋습니다.
자주 나타나는 증상: 시간 초과, 인증서 오류, 연결 후 접속 불가
“연결되지 않음”이라는 문구만으로 판단하지 말고 실제 오류 유형을 기준으로 문제를 확인하세요. 아래 단계는 확인 경로이며 확정적인 진단은 아닙니다. 같은 증상도 여러 단계에서 발생할 수 있으므로 원래 설정과 반복 테스트 결과를 함께 살펴봐야 합니다.
계속 시간 초과가 표시되는데 비밀번호부터 바꿔야 하나요?
먼저 Home에서 선택한 항목의 Address와 Port를 확인한 뒤, 연결 가능한 다른 네트워크에서 같은 테스트를 반복하세요. 도메인 이름 확인 실패, 포트 연결 불가, 서버 무응답 등은 모두 시간 초과로 나타날 수 있습니다. 서버에 연결할 수 있는지 확인한 다음 비밀번호를 점검하세요. 시간 초과만으로 비밀번호 오류라고 판단할 수는 없습니다.
인증서 오류가 표시되면 SNI를 어떻게 바꿔야 하나요?
항목 편집 화면에서 원래 설정과 대조해 SNI 철자를 확인하세요. 그런 다음 iPhone 또는 iPad의 “설정 → 일반 → 날짜 및 시간”에서 날짜, 시간, 시간대를 확인합니다. 인증서 오류가 계속되면 오류 내용을 서비스 제공업체에 전달해 확인을 요청하세요. Allow Insecure를 켜서 문제를 숨기지 마세요.
지연 시간은 표시되는데 웹페이지가 열리지 않는 이유는 무엇인가요?
지연 시간은 테스트 방식에 따라 달라지며 TLS, Trojan 인증, 대상 사이트 접속까지의 전체 과정을 확인하지 않을 수 있습니다. 먼저 Global Routing이 Direct가 아닌지 확인한 다음 Connectivity Test를 실행하세요. 연결 직후 끊긴다면 비밀번호와 서버 상태도 확인해야 합니다.
직접 수정했는데 구독을 업데이트한 뒤 다시 작동하지 않나요?
구독을 업데이트하면 항목이 새로 생성되어 로컬 수정 사항이 덮어써질 수 있습니다. 업데이트된 Address, Port, SNI를 확인된 설정값과 하나씩 대조하고, 구독 내용 수정은 서비스 제공업체에 요청하세요. 임시 테스트에는 별도의 수동 항목을 사용해 같은 구독 항목을 반복해서 수정하지 않는 것이 좋습니다.
확인 결과를 기록하고 구독 정보 보호하기
문제를 문의할 때는 전체 설정을 보내기보다 발생 시각, 네트워크 유형, 테스트 방법, 민감한 정보를 가린 오류 내용을 기록해 전달하는 편이 원인 파악에 도움이 됩니다. Password와 구독 URL에는 접속 자격 증명이 포함될 수 있습니다. 특히 쿼리 매개변수의 token은 공개 스크린샷, 채팅방, 로그에 노출하지 마세요. 알 수 없는 페이지에 실제 구독 주소를 붙여 넣어 검증하지 마세요.
- 각 항목이 원래 설정과 일치하는지 기록하고 전체 비밀번호, 구독 token, 바로 가져올 수 있는 공유 정보를 공개하지 마세요.
- 성공한 설정을 비공개로 기록해 두고, 수동으로 입력했는지 기존 구독에서 생성했는지 함께 적어 항목을 구분하세요.
- 테스트가 끝나면 평소 사용하던 Global Routing 설정으로 되돌리세요. 문제 해결 과정에서 Settings → On Demand를 변경했다면 기존 사용 방식에 맞게 복구하세요.
- 설정값이 유출된 적이 있다면 서비스 제공업체의 관리 채널을 통해 해당 자격 증명을 변경한 뒤 로컬 항목도 업데이트하세요.
Shadowrocket은 소스가 공개되지 않은 상용 앱입니다. 클라이언트 구매와 서버 접속 자격 증명은 별개의 사항입니다. 앱 구매 ≠ 회선 요금제. 이 글은 사용자가 이미 서비스 제공업체와 구독 정보를 보유하고 있다는 전제하에 설정 확인 및 사용 방법을 안내합니다.