Shadowrocket Trojan 설정 방법: 비밀번호, SNI 및 인증서 검증

Trojan의 TLS 연결 방식과 Add Server의 Address, Port, Password, SNI, Allow Insecure 항목을 설명하고, 설정 오류로 인한 일반적인 핸드셰이크 실패 증상을 정리합니다.

이 글의 핵심

Shadowrocket의 Home에서 기존 Trojan 설정을 추가할 때는 먼저 서버 주소와 포트를 확인하고, 이어서 Password, SNI, 인증서 검증 설정을 점검하세요. 이 글은 이미 이용 중인 서비스와 설정 정보가 있는 경우를 전제로 수동 입력, 가져온 설정 재확인, 핸드셰이크 실패 시 점검 순서를 안내합니다. 예시 도메인은 항목 설명용이며 실제 연결에 사용할 수 없습니다.

Trojan 연결 순서: TLS 연결 후 Password 인증

Home → Add Server에서 Type을 Trojan으로 선택한 뒤 원격 서버의 연결 정보를 입력합니다. 일반적인 Trojan 연결은 Address에 지정된 호스트와 Port에 지정된 포트에 접속한 다음 TLS 핸드셰이크를 수행하고, 암호화된 채널에서 프로토콜 인증 정보를 보냅니다. Password가 맞더라도 인증서가 올바르다는 뜻은 아니며, 인증서가 유효해도 계정 인증이 반드시 성공하는 것은 아닙니다. 두 항목을 따로 확인하세요.

443
TLS 서비스에서 자주 사용하는 포트이며, 실제 값은 기존 설정을 따릅니다
1–65535
Port에 입력할 수 있는 숫자 범위입니다. 필드에 프로토콜이나 경로를 입력하지 마세요
3단계
서버 연결 → TLS 핸드셰이크 → Trojan 인증

기존 설정에서 443을 보더라도 서비스가 반드시 작동한다고 단정하거나 다른 포트를 이 값으로 바꾸지 마세요. TLS는 다른 포트에서도 구성할 수 있습니다. 특정 포트에서 TCP 연결이 된다는 사실만으로는 네트워크 경로와 수신 서비스에 접근할 수 있을 가능성을 보여줄 뿐, 해당 포트에서 호환되는 Trojan 서비스가 작동한다는 뜻은 아닙니다.

Add Server 항목 안내: 주소, 포트, 비밀번호 입력 방법

Home 오른쪽 상단의 추가 버튼을 눌러 Add Server로 이동한 뒤 Type을 Trojan으로 설정하고, 기존 설정 정보를 항목별로 입력하세요. 아래의 connect.example.com과 tls.example.com은 예시용으로 예약된 도메인입니다. 표는 입력 형식을 설명하며, 실제로 테스트할 수 있는 서버 정보가 아닙니다. 화면 언어나 양식 배치에 따라 SNI가 TLS 관련 옵션 안에 표시될 수 있으니 항목의 의미를 기준으로 확인하세요.

항목입력할 내용확인 사항
TypeTrojan원격 서버의 유형과 일치해야 합니다.
Address사용 중인 서버의 도메인 또는 IP(예: connect.example.com)https://, 포트 또는 웹 페이지 경로는 붙이지 마세요.
Port서비스 제공자가 안내한 숫자(예: 443)Address와 별도로 입력하며, 전각 숫자는 사용할 수 없습니다.
Password해당 Trojan 서비스의 전체 비밀번호대소문자를 구분합니다. 앞뒤 공백이나 복사 과정에서 포함된 줄바꿈이 없는지 확인하세요.
SNI기존 설정에 지정된 TLS 호스트 이름(예: tls.example.com)호스트 이름만 입력하세요. URL, 경로, 포트는 입력하지 않습니다.
Allow Insecure평소에는 꺼 둡니다인증서 검증을 건너뛰어 이름, 유효 기간 또는 인증서 체인 문제를 해결하려 하지 마세요.

Password에 비밀번호를 붙여 넣은 뒤에는 길이로 추측하지 말고 원본 정보를 다시 확인하세요. Trojan의 Password는 App Store 구매 정보도, 직접 만든 UUID도 아닙니다. 서비스 제공자 웹사이트의 로그인 비밀번호만 있고 Trojan 설정 정보가 없다면 먼저 해당 연결 설정을 받아야 합니다. 웹사이트 로그인 비밀번호를 그대로 입력해서는 안 됩니다.

Address에 도메인을 입력하면 기기가 연결을 설정하기 전에 해당 도메인을 조회해야 합니다. IP를 입력하면 해당 주소로 바로 연결하지만, TLS 이름 검증이 생략되는 것은 아닙니다. 도메인 인증서를 사용하는 서비스에 IP로 연결하는 경우에도 기존 설정에 따라 올바른 SNI를 지정해야 합니다. IP를 인증서 도메인으로 그대로 입력하지 마세요.

SNI와 인증서 검증: 연결 주소와 검증 이름은 다를 수 있습니다

SNI에 서비스 제공자가 지정한 호스트 이름을 입력하면 TLS 핸드셰이크에 해당 이름이 포함되어 원격 서버가 적절한 인증서나 서비스를 선택할 수 있습니다. Address는 연결할 위치를 지정하고, SNI는 TLS 서버에 접속하려는 호스트 이름을 알립니다. 일반적인 TLS 설정에서는 이 이름이 인증서 신원 확인에도 사용됩니다. 두 항목이 같은 경우가 많지만 반드시 같을 필요는 없습니다.

인증서 검증 사용

권장

Allow Insecure를 끈 상태로 두고 올바른 SNI를 사용하세요. 시스템의 신뢰 검증 절차로 원격 인증서를 확인합니다. 인증서가 만료되었거나 이름이 일치하지 않거나 신뢰할 수 없는 경우 설정을 바로잡거나 원격 인증서를 수정해야 합니다.

적합한 경우: 일상적인 연결 및 정식 설정 확인

인증서 검증 건너뛰기

Allow Insecure를 켜면 인증서 검증이 완화되어 원격 서버의 신원을 확인하기 어려워집니다. 비밀번호, 포트, 전송 방식 오류를 해결해 주지 않으며, 연결 성공만으로 설정이 올바르다고 판단할 수도 없습니다.

적합한 경우: 기존 설정의 위험 차이를 이해할 때. 일반적인 문제 해결 방법으로는 권장하지 않습니다

결론: SNI를 바로잡고 검증을 우회하지 마세요

인증서 이름이 일치하지 않는다면 먼저 SNI를 기존 설정 및 인증서에 포함된 도메인과 하나씩 대조하세요. 이름이 맞는데도 실패하면 기기의 시간, 인증서 유효 기간, 서버 인증서 체인을 확인합니다.

SNI를 비워 두더라도 모든 연결 주소가 검증을 통과한다고 가정해서는 안 됩니다. 기본 이름을 선택하는 방식은 설정에 따라 다릅니다. 서비스에서 SNI를 명시했다면 기존 값을 유지하세요. 인증서가 tls.example.com만 포함한다면 SNI를 다른 웹사이트의 도메인으로 바꿔도 해당 도메인의 신원을 자동으로 얻을 수 없습니다.

수동 추가 및 첫 연결 확인: 저장 후 실제 사용할 항목 선택하기

Home에서 Add Server 입력을 마치면 먼저 저장한 다음 방금 추가한 항목을 선택해 확인하세요. 의심되는 항목 하나만 바꾸고 결과를 기록하면 비밀번호, SNI, 포트를 한꺼번에 수정해 어떤 변경이 효과가 있었는지 알 수 없는 상황을 피할 수 있습니다. 처음 연결할 때 시스템 안내에 따라 VPN 구성을 허용한 뒤 Shadowrocket으로 돌아와 연결 상태를 확인하세요.

  1. 유형 선택

    Home → 오른쪽 상단 추가 버튼 → Add Server → Type으로 이동해 Trojan을 선택합니다. 먼저 기존 정보의 프로토콜 유형을 확인하고 다른 프로토콜의 설정을 이 양식에 적용하지 마세요.

  2. 연결 정보 입력

    기존 호스트 이름은 Address에, 서버 포트는 Port에, 전체 비밀번호는 Password에 입력합니다. 주소에서 URL 프로토콜 접두사를 제거하고 포트는 별도로 입력하세요.

  3. TLS 설정 확인

    SNI 또는 이에 해당하는 TLS 호스트 이름 항목에 기존 값을 입력하고 Allow Insecure는 끈 상태로 두세요. 설정 정보에 전송 매개변수가 있다면 해당 항목도 함께 확인합니다.

  4. 저장 후 선택

    저장한 뒤 Home으로 돌아와 해당 Trojan 항목을 선택하고 Global Routing을 확인하세요. 문제를 진단할 때는 일시적으로 Proxy를 사용하면 규칙이 테스트 경로에 미치는 영향을 줄일 수 있습니다.

  5. 확인 후 원래 설정으로 복원

    일반적인 웹 요청을 한 번 보내고 연결 기록에서 실제 대상, 사용된 노드, 오류가 발생한 단계를 확인하세요. 확인이 끝나면 기존 Global Routing 상태와 자동 연결 설정을 복원합니다.

Global Routing에서 Config를 사용하면 요청은 현재 설정의 규칙에 따라 처리됩니다. DOMAIN-SUFFIX, GEOIP, IP-CIDR, FINAL 규칙이 서로 다른 정책으로 연결할 수 있으므로 페이지가 열렸다고 해서 방금 추가한 Trojan 항목을 거쳤다고 단정할 수 없습니다. Direct는 직접 연결하는 방식이므로 직접 연결 성공을 해당 항목이 작동한다는 증거로 삼아서는 안 됩니다. Scene도 실제 사용 상황에 맞게 설정을 확인해야 하며, 기본적으로 Proxy와 같은 것으로 간주할 수 없습니다.

핸드셰이크 실패 해결: 네트워크, TLS, 인증 순으로 범위 좁히기

연결 기록에 오류가 나타나면 먼저 DNS 조회, 연결, TLS 중 어느 단계에서 실패했는지 구분한 다음 해당 항목을 수정하세요. 아래 표는 흔히 관찰되는 증상이며, 특정 메시지가 반드시 하나의 원인만을 뜻하지는 않습니다. 구체적인 문구는 시스템과 원격 서버의 응답에 따라 달라질 수 있습니다. 지연 시간이나 한 번의 시간 초과만으로 Password 오류라고 단정하지 마세요.

관찰된 증상우선 확인할 항목다음 단계
도메인 조회 실패: 원격 서버에 연결하기 전 단계Address 철자, 현재 네트워크의 DNS먼저 호스트 이름을 조회할 수 있는지 확인하세요. Password를 수정하거나 인증서 검증을 끄지 마세요.
연결 시간 초과 또는 연결 거부Address, Port, 원격 서버의 수신 상태, 네트워크 경로기존 설정과 포트를 대조하고 다른 네트워크에서도 확인하세요. TLS 항목을 연이어 변경하지 마세요.
인증서 이름 불일치 메시지SNI와 인증서에 포함된 도메인서비스에서 지정한 호스트 이름으로 되돌리고 프로토콜 접두사, 경로, 불필요한 공백이 없는지 확인하세요.
인증서 만료 또는 신뢰할 수 없음 메시지기기 시간, 인증서 유효 기간, 인증서 체인시스템 시간을 확인하고 인증서 문제를 서비스 제공자에게 알리세요. 검증은 켜 둡니다.
TLS 연결 후 연결이 바로 종료되거나 인증 실패Password, Type, 서비스 상태, 전송 설정원본 설정 정보를 다시 확인하세요. 연결 종료만으로 비밀번호 오류라고 단정할 수 없습니다.
연결은 됐지만 특정 웹 페이지가 열리지 않음실제로 선택된 노드, 규칙 정책, 대상 DNS, 원격 서버 접근 상태먼저 해당 요청의 실제 경로를 확인한 다음 규칙 문제와 대상 웹사이트 문제를 구분하세요.

문제를 신고할 때는 오류가 발생한 단계, 네트워크 유형, 민감한 정보를 가린 설정 차이만 제공하면 됩니다. Password, 전체 공유 링크, 구독 주소에 포함된 token은 민감 정보이므로 스크린샷과 함께 공개적으로 전송하지 마세요. 서비스 제공자에게 확인을 요청할 때는 단순히 “작동하지 않는다”고 하기보다 인증서 오류나 연결 중단 등 구체적인 증상을 설명하면 원인을 파악하는 데 도움이 됩니다.

기존 설정을 가져온 후: 덮어쓰기 및 업데이트 출처 확인

Home에서 기존 공유 링크, QR 코드 또는 구독을 통해 Trojan을 가져온 뒤에도 항목의 편집 화면을 열어 Type, Address, Port, SNI, Allow Insecure를 다시 확인하세요. 가져오기를 이용하면 직접 입력할 때 생기는 실수를 줄일 수 있지만, 원격 설정이 여전히 유효하다는 뜻은 아니며 링크에 필요한 추가 전송 설정이 모두 포함되었다는 보장도 없습니다.

규칙 분기 문제와 연결 문제를 더 구분하려면 연결 문제 해결 안내와 규칙 및 정책 안내를 참고하세요. 먼저 개별 항목의 연결 설정이 올바른지 확인한 뒤 일상적으로 사용하는 Config 규칙에서 대상 요청을 점검하면 노드 설정, DNS, 정책 선택을 하나의 문제로 혼동하지 않을 수 있습니다.

App Store 정품 다운로드개발자 및 앱 ID 확인