이 글은 서비스 제공업체가 안내한 설정값이나 구독 정보를 보유하고 있으며, Shadowrocket에서 Trojan 설정을 확인하려는 사용자를 위한 안내입니다. 연결 주소, 인증 비밀번호, TLS 서버 인증을 구분한 뒤 Home → Add Server 순서로 설정하고, 시간 초과·인증서 오류·인증 실패를 각각 점검합니다. 이 사이트는 서버나 구독을 제공·판매·추천하지 않습니다.
Trojan 연결에서 TLS와 비밀번호가 확인하는 항목
Shadowrocket의 Trojan 유형은 해당 Trojan 서버에 연결할 때 사용합니다. 일반적으로 TCP 연결을 맺은 다음 TLS 핸드셰이크를 진행하고, 암호화된 채널에서 Trojan 인증 정보와 대상 요청을 전송합니다. 주소가 확인되고 포트 연결이 가능하다는 사실은 앞단의 네트워크 연결이 가능하다는 뜻일 뿐, 인증서 검증과 비밀번호 인증까지 통과했다는 뜻은 아닙니다.
TLS는 전송을 암호화하고 서버의 신원을 확인하며, Trojan 비밀번호는 서버가 클라이언트를 인증하는 데 사용됩니다. 둘은 서로 대체할 수 없습니다. 비밀번호가 맞아도 인증서 이름이 일치하지 않는 문제는 해결되지 않고, 인증서가 유효해도 잘못된 비밀번호로는 인증을 통과할 수 없습니다. 문제를 진단할 때는 ‘포트 연결 실패’, ‘TLS 핸드셰이크 실패’, ‘핸드셰이크 후 요청 실패’를 구분해 기록하세요.
요점: 먼저 어느 단계에서 실패하는지 확인하세요
연결 시간 초과가 발생하면 주소와 포트를 먼저 확인하세요. 인증서 오류가 나타나면 SNI, 인증서, 기기 시간을 점검하세요. 비밀번호를 바꾸거나 Allow Insecure를 켜는 일을 모든 오류에 통하는 해결책으로 여기지 마세요.
Add Server에서 Trojan 설정값 입력하기
서버를 직접 추가하려면 Home으로 이동하세요. Config에서 규칙 파일을 편집하는 것이 아닙니다. Config는 구성 파일과 규칙을 관리하는 곳이고, 이 절에서는 서버 연결 정보를 입력합니다. 시작하기 전에 기존 설정값을 원문 그대로 보관하고, 포트가 443이라는 이유만으로 프로토콜을 추측하지 말고 서비스 제공업체가 안내한 유형이 Trojan인지 확인하세요.
-
서버 추가 화면 열기
Home 오른쪽 위의 ‘+’를 탭해 Add Server로 이동합니다. Type을 열고 Trojan을 선택한 다음 설정 화면으로 돌아오세요. 구독에서 생성된 항목을 편집하는 경우에는 나중에 변경 사항을 비교할 수 있도록 먼저 기존 값을 기록해 두세요.
-
연결 주소 입력
Address에는 보유한 설정값에 표시된 도메인이나 IP를 입력하고, Port에는 해당 포트를 입력하세요. Address에는
https://, 경로 또는 포트 번호를 넣지 않습니다. 예를 들어 도메인과443은 각각 별도 필드에 입력해야 합니다. -
인증 비밀번호 확인
Password에는 Trojan 전용 비밀번호를 입력하세요. App Store 계정 비밀번호를 사용하거나 서비스 제공업체 사이트의 로그인 비밀번호를 임의로 사용하는 것은 적절하지 않습니다. 대소문자, 앞뒤 공백, 줄바꿈을 확인하세요. 직접 입력할 때는 원래 비밀번호를 사용하고, 공유 링크에 포함된 퍼센트 인코딩 문자열을 비밀번호로 그대로 입력하지 마세요.
-
TLS 설정 확인
보유한 설정값에 따라 SNI를 입력하고 Allow Insecure가 꺼져 있는지 확인하세요. 추가 전송 옵션이 포함된 구성이라면 각 항목도 동일하게 설정해야 합니다. 주소와 비밀번호만 복사하고 나머지 필드를 빠뜨리지 마세요.
-
저장 후 확인
Done을 탭해 저장한 뒤 Home으로 돌아가 해당 항목을 선택하세요. 처음 연결을 활성화할 때 시스템 안내에 따라 VPN 구성을 승인한 다음 실제 요청을 확인합니다. 저장에 성공했다는 것은 설정값이 입력되었다는 뜻일 뿐, 서버가 연결을 허용했다는 뜻은 아닙니다.
Address, SNI, 인증서 이름의 관계
Address는 네트워크 연결 대상의 위치를 지정합니다. SNI는 TLS 핸드셰이크에서 서버 이름을 전달해 같은 서버에서 호스팅되는 여러 사이트 중 적절한 인증서를 선택하도록 돕습니다. SNI는 웹 주소가 아니므로 프로토콜, 포트, 경로를 포함하지 않으며, 접속 가능한 도메인을 임의로 선택한다고 작동하는 것도 아닙니다. 실제 값은 서버 구성에 따라야 합니다.
서버가 인증서를 반환한 뒤에도 클라이언트는 신원을 확인해야 합니다. 확인 대상인 서버 이름은 인증서에서 허용하는 이름과 일치해야 하며, 일반적으로 인증서의 Subject Alternative Name을 점검해야 합니다. SNI를 다른 도메인으로 바꿔도 인증서 내용이 바뀌지는 않으며, 네트워크 요청이 해당 도메인의 서버로 자동 전환되지도 않습니다.
| 항목 | 예시 또는 값 | 확인 사항 |
|---|---|---|
| Type | Trojan |
서버에서 사용하는 프로토콜과 일치해야 합니다 |
| Address | edge.example.com |
연결 도메인만 입력하고 URL 경로는 제외합니다 |
| Port | 443 |
예시 값이며 프로토콜에서 정한 필수 포트는 아닙니다 |
| Password | 본인의 Trojan 인증 비밀번호 | 원래 문자를 유지하고 공백을 추가하지 마세요 |
| SNI | tls.example.com |
주소와 이름이 다를 수 있음을 보여 주는 예시일 뿐이며, 실제 값은 서버에서 제공해야 합니다 |
| Allow Insecure | 끔 | 정상적인 인증서 검증 유지 |
위 표의 도메인은 항목 간 관계를 설명하기 위한 예시이며, 실제 연결 설정으로 사용할 수 없습니다. Address에 IP를 입력할 때는 기존 설정값에 SNI가 지정되어 있는지 특히 확인하세요. 인증서가 특정 도메인만 포함하는데 클라이언트가 IP로 신원을 확인하면 이름이 일치하지 않을 수 있습니다. 반대로 SNI를 올바르게 입력했는데도 오류가 발생한다면 인증서 만료 여부, 서버가 잘못된 인증서를 반환하는지, 중간 인증서 체인이 완전한지도 확인해야 합니다.
Allow Insecure의 역할과 인증서 검증 유지 여부
Allow Insecure는 ‘호환성을 높이는’ 일반적인 성능 옵션이 아닙니다. 이 옵션을 켜면 TLS 인증서 검증이 완화되어 정상적인 검증으로 연결 대상의 신원을 확인할 수 없게 됩니다. DNS 오류, 잘못된 포트, 비밀번호 오류, 서버 중단을 해결하지 않으며, 연결이 실패할 때 가장 먼저 바꿔 볼 설정도 아닙니다.
Allow Insecure 끔
권장인증서 검증을 유지하세요. 인증서 오류가 발생하면 SNI, 기기 시간, 인증서 유효 기간 또는 서버 인증서 체인을 바로잡아 정상적인 검증을 통과하도록 하세요.
적합한 경우: 일상적인 사용 및 신뢰할 수 있는 인증서를 사용하는 서버 설정
Allow Insecure 켬
인증서 검증을 완화해 서버 신원을 확인하는 능력을 낮춥니다. 이 옵션을 켠 뒤 요청이 성공하더라도 인증서 검증이 이전에 연결을 차단했을 가능성을 보여 줄 뿐, 설정이 안전해졌거나 문제가 해결됐다는 뜻은 아닙니다.
적합한 경우: 위험을 이해하는 담당자가 통제된 환경에서 짧게 원인을 파악할 때. 일상적인 설정으로는 사용하지 마세요.
요점: 인증서 문제를 해결해야 점검이 끝납니다
Allow Insecure를 켜야만 연결된다면 서버 관리자에게 실제 반환된 인증서, 인증서가 포함하는 이름 범위, 인증서 체인을 확인해 달라고 요청하세요. 문제를 해결한 다음 옵션을 끄고 다시 요청을 확인하세요.
증상별 점검: 시간 초과, 인증서 오류, 인증 실패
한 번에 변수 하나만 바꾸고 네트워크 환경, 선택한 항목, Global Routing 상태, 오류 내용을 기록하세요. 지연 시간 테스트에서 결과가 나와도 Trojan 요청이 인증까지 통과했다는 뜻은 아닙니다. 접근할 수 있음을 알고 있는 대상에 요청해 확인하고, 모든 대상에서 실패하는지 특정 대상에서만 실패하는지도 구분하세요.
설정을 마친 뒤 계속 시간 초과가 발생합니다. 비밀번호가 틀린 건가요?
반드시 그렇지는 않습니다. 먼저 Home에서 해당 항목을 다시 열어 Address와 Port를 확인하고, 서버가 실제로 해당 포트에서 연결을 기다리는지 확인하세요. Address가 도메인이라면 현재 네트워크에서 도메인을 확인할 수 있는지도 점검해야 합니다. 먼저 기본 연결이 가능한지 확인한 다음 TLS와 비밀번호를 살펴보세요. 여러 필드를 한꺼번에 바꾸지 마세요.
인증서 이름이 일치하지 않는다는 오류가 표시됩니다. 무엇을 수정해야 하나요?
먼저 SNI가 서비스 제공업체가 안내한 이름과 한 글자씩 정확히 일치하는지 확인하고 https://, 경로, 끝의 공백이 없는지 점검하세요. 값이 일치한다면 서버 관리자가 실제로 반환되는 인증서의 이름을 확인하도록 요청하세요. 하나의 주소에서 여러 TLS 사이트를 제공하는 경우 SNI가 잘못되면 다른 사이트의 인증서가 반환될 수 있습니다.
인증서가 아직 유효한데 검증에 실패하는 이유는 무엇인가요?
유효 기간이 정상인 것은 여러 조건 중 하나일 뿐입니다. 먼저 시스템 Settings → General → Date & Time에서 기기 시간을 확인한 다음, 서버 관리자에게 중간 인증서 체인과 신뢰 출처를 점검해 달라고 요청하세요. 이름 불일치, 불완전한 체인, 잘못된 기기 시간은 비밀번호를 바꾸는 것만으로 해결되지 않습니다.
연결 직후 끊깁니다. 비밀번호를 어떻게 확인하나요?
해당 항목의 Password를 열고 신뢰할 수 있는 원본 설정에서 다시 복사한 다음 대소문자, 줄바꿈, 앞뒤 공백을 확인하세요. 공유 링크에서 필드를 직접 분리했다면 인코딩된 문자를 그대로 입력하지 않았는지도 점검하세요. 연결이 끊긴다는 현상만으로 비밀번호 오류라고 단정할 수 없습니다. 서버 관리자에게 서버 로그를 확인해 인증 결과를 확인해 달라고 요청하세요.
Trojan 항목을 선택했는데도 요청이 직접 연결되는 이유는 무엇인가요?
먼저 Home → Global Routing을 확인하세요. Direct는 직접 연결하고, Config는 현재 구성의 규칙에 따라 정책을 결정하며, Proxy는 요청을 프록시 정책으로 전달합니다. Scene은 설정된 시나리오에 따라 달라집니다. 항목을 선택하는 것만으로 현재 라우팅 설정이 바뀌지는 않으므로 요청에 실제로 적용된 정책도 확인하세요.
연결 성공 후 규칙과 자동 연결 상태 확인
Trojan 설정을 확인한 다음 일상적인 트래픽 분할 구성으로 돌아가세요. Global Routing에서 Config를 사용하면 규칙이 순서대로 적용됩니다. 앞선 규칙에 일치하는 항목이 없을 때 FINAL이 기본 처리 규칙으로 적용되지만, 모든 요청이 현재 Trojan 항목을 거친다는 뜻은 아닙니다. 규칙이 지정하는 정책 그룹과 선택된 항목도 함께 확인해야 합니다.
- 현재 구성 확인: Config에서 실제로 사용 중인 파일을 확인하세요. 활성화되지 않은 파일의 규칙만 살펴보는 것으로는 충분하지 않습니다.
- 규칙의 처리 방향 확인:
DOMAIN-SUFFIX,example.com,PROXY는 도메인 접미사로 일치하는 요청을PROXY정책에 전달한다는 뜻입니다. 해당 정책에서 실제로 어떤 서버를 선택하는지는 구성에서 확인해야 합니다. - 기본 처리 확인:
FINAL,DIRECT는 앞선 규칙에 일치하지 않는 요청을 직접 연결합니다. 이 규칙만으로 Trojan 연결이 실패했다고 판단할 수는 없습니다. - 자동 연결 조건 확인: Settings → On Demand에서 설정된 연결 조건을 확인하세요. On Demand는 조건에 따라 연결을 시작하는 기능이지, 서버 비밀번호·SNI·인증서를 수정하는 기능은 아닙니다.
- 확인 가능한 기록 보관: 변경한 항목과 결과를 기록하세요. 오류를 전달할 때는 Password와 구독의 인증 정보를 가리고, 전체 설정 정보를 공개하지 마세요.
문제가 발생한 단계를 확인하려면 연결 문제 해결 안내서를 참조하세요. 규칙 및 정책 이름이 궁금하다면 용어집을 확인할 수 있습니다. 구독 업데이트 후 같은 문제가 다시 발생하면 인증서 검증부터 끄지 말고, 업데이트 전후의 주소·포트·SNI·전송 설정을 먼저 비교하세요.