Trojan을 설정할 때는 연결 주소, 인증 비밀번호, TLS 서버 이름을 구분하고 인증서 검증을 켜 두어야 합니다. 자체 서비스 정보를 보유한 사용자를 위해 Add Server의 각 항목을 살펴보고, Address와 Peer/SNI가 서로 다를 수 있는 이유와 연결 단계별 시간 초과, 인증서 오류, 인증 실패 해결 방법을 안내합니다.
Trojan과 TLS: 연결 암호화와 인증 정보 검증
Shadowrocket에서 Trojan은 프록시 프로토콜 옵션 중 하나입니다. 일반적인 Trojan 연결은 먼저 서버와 TLS 연결을 맺은 다음, 암호화된 채널로 인증 정보와 프록시 요청을 전송합니다. TLS는 전송 암호화와 서버 인증을 담당하고, Password는 Trojan 서버 인증에 사용됩니다. 두 과정은 서로 대체할 수 없습니다.
웹사이트가 HTTPS를 사용한다고 해서 서버가 Trojan 연결을 받을 수 있는 것은 아닙니다. 보유한 정보에 Trojan 유형, 실제 수신 주소, 포트, 비밀번호가 명시되어 있어야 합니다. 브라우저에서 열리는 도메인만으로는 이 설정을 알아낼 수 없습니다. 이 문서의 예시는 항목을 설명하기 위한 것으로, 실제 연결 정보가 아닙니다.
Type → Trojan을 선택한 뒤, 보유한 정보에 특정 전송 설정이 필요한지도 확인하세요. 정보에 WebSocket 등 추가 매개변수가 있다면 해당 항목을 하나씩 맞춰 입력해야 합니다. 전송 설정이 더 필요한 정보를 주소, 포트, 비밀번호만 있는 기본 설정으로 간주하지 마세요.
Add Server 항목: Address와 SNI는 다릅니다
Address는 연결할 대상을, Port는 해당 주소에서 연결할 서비스를 지정합니다. Peer/SNI는 TLS의 서버 이름과 관련된 항목입니다. Shadowrocket에서는 입력란이 Peer로 표시될 수 있으며, 제공 정보에는 SNI 또는 server name으로 적혀 있을 수 있습니다. 현재 화면과 서비스 제공자의 안내를 대조해 입력하세요.
| 항목 | 입력할 내용 | 흔한 실수 |
|---|---|---|
| Type | Trojan을 선택합니다. | 다른 프로토콜의 인증 정보를 Trojan 매개변수로 그대로 사용할 수 없습니다. |
| Address | 보유한 정보에 기재된 서버 도메인 또는 IP입니다. | 공유 링크 전체를 붙여 넣거나 https://와 경로를 함께 입력합니다. |
| Port | 서버에서 실제로 수신하는 포트입니다. 정보에 443으로 명시된 경우를 예로 들 수 있습니다. | TLS를 보고 임의로 443으로 바꿉니다. |
| Password | 서비스 제공자가 지정한 Trojan 인증 비밀번호입니다. | 계정 로그인 비밀번호나 UUID를 입력하거나, 복사할 때 공백까지 붙여 넣습니다. |
| Peer / SNI | 정보에 지정된 TLS 서버 이름입니다. 예: tls.example.com | URL이나 포트를 입력하거나, 흔히 쓰이는 웹사이트 도메인으로 임의 변경합니다. |
| Allow Insecure | 일반적인 인증서 검증을 위해 보통 꺼 둡니다. | 인증서 오류를 해결하는 일반적인 방법으로 검증을 건너뜁니다. |
예를 들어 보유한 정보에서 Address에 192.0.2.10을 사용하고 Peer에는 tls.example.com을 지정했다면, 두 값이 다르다고 반드시 잘못된 것은 아닙니다. 앞의 값은 연결 대상을, 뒤의 값은 TLS 이름을 지정합니다. 여기의 IP는 문서용 예시 주소이므로 실제 연결에 사용할 수 없습니다. 실제 설정에는 본인의 완전한 구성 정보를 사용하세요.
Trojan 수동 추가: 순서대로 확인하는 5단계
먼저 현재 사용 가능한 설정과 원본 정보를 보관하세요. 기존 구독에서 가져온 서버라면 필드를 먼저 확인하고 원래 기록을 바로 덮어쓰지 않는 편이 좋습니다. 이후 구독 업데이트로 관련 매개변수가 다시 입력될 수 있습니다. 문제가 생겼을 때 비교할 수 있도록 원래 기록을 남기고, 별도의 확인용 기록을 수동으로 추가하세요.
-
추가 화면 열기
Home → 오른쪽 위의 「+」를 눌러 Add Server를 연 다음 Type에서 Trojan을 선택합니다. Config의 규칙 파일이 아니라 서버 항목을 편집 중인지 확인하세요.
-
주소와 포트 입력
보유한 정보의 호스트 이름이나 IP를 Address에, 수신 포트를 Port에 입력합니다. 주소란에 프로토콜 접두사, 경로, 쿼리 매개변수를 넣지 말고 포트는 별도로 입력하세요.
-
인증 비밀번호 확인
Password에 비밀번호 전체를 입력하고 대소문자와 기호를 그대로 유지하세요. 직접 입력할 때는 원본 비밀번호를 사용합니다. 공유 링크에서 복사했다면 이스케이프된 문자열을 원래 값으로 착각하지 않도록 주의하세요.
-
TLS 이름 확인
정보에 따라 Peer/SNI를 입력하고 Allow Insecure는 꺼 두세요. 지정된 전송 방식과 추가 항목도 함께 확인하고, 안내되지 않은 값은 추측해서 입력하지 마세요.
-
저장하고 확인
저장한 뒤 Home으로 돌아와 해당 서버 항목을 선택하고 선택 표시가 나타나는지 확인한 다음 연결 스위치를 켭니다. 처음 연결할 때는 시스템 안내에 따라 VPN 구성을 추가한 뒤 Connectivity Test를 실행하세요.
Connectivity Test는 연결 상태를 확인하는 검사이며, 모든 웹사이트와 규칙 또는 지속적인 안정성을 보장하지는 않습니다. 검사에 실패하면 먼저 증상을 기록하고 매개변수를 확인하세요. 검사에 성공해도 실제 대상에 접속해 해당 요청이 실제로 이 Trojan 연결을 사용하는지 확인해야 합니다.
Allow Insecure: 암호화와 서버 인증은 별개입니다
Allow Insecure는 인증서 검증 기준을 완화하는 옵션이지, 연결을 평문으로 바꾸는 옵션이 아닙니다. TLS 채널이 연결되더라도 신뢰할 수 있는 인증서 검증이 없다면 상대 서버의 신원을 확인했다고 볼 수 없습니다. 비밀번호가 맞아도 서버 인증을 건너뛴 문제는 해결되지 않습니다.
Allow Insecure 끔
권장정상적인 인증서 검증을 유지합니다. 인증서 오류가 발생하면 오류를 무시하지 말고 Peer/SNI, 기기 시간, 인증서 유효 기간, 서버 인증서 체인을 확인하세요.
적합한 경우: 일상적인 연결 및 인증서가 올바르게 설정된 서비스
Allow Insecure 켬
인증서 검증 기준이 완화되어 서버 신원을 확인하기 어려워집니다. 잘못된 주소, 포트, Password를 바로잡지 못하며 연결이 장기간 정상적으로 작동한다는 근거도 되지 않습니다.
적합한 경우: 위험을 이해하고 통제된 환경에서 인증서 문제를 일시적으로 진단할 때. 일상적인 설정으로는 권장하지 않습니다
결론: 서버 이름과 인증서가 일치하도록 수정하세요
Allow Insecure를 켜야만 연결된다면 먼저 다시 끄세요. 인증서 오류, 예상되는 Peer/SNI, 발생 시간을 서비스 제공자에게 전달해 확인하고, 웹페이지가 잠시 열렸다는 이유만으로 문제 해결을 끝내지 마세요.
인증서 오류는 기기의 날짜와 시간이 잘못되어도 발생할 수 있습니다. 먼저 시스템 시간을 확인한 뒤 인증서에 포함된 도메인을 점검하세요. Address에 IP를 입력했다면 Peer/SNI가 별도로 지정되어 있는지 특히 확인해야 합니다. 특정 도메인용 인증서가 해당 IP의 신원 확인에도 자동으로 사용되는 것은 아닙니다.
연결 실패: 네트워크, TLS, 인증, 규칙 순으로 점검
같은 ‘웹페이지를 열 수 없음’ 증상도 서로 다른 단계에서 발생할 수 있습니다. 먼저 로컬 네트워크가 정상적으로 인터넷에 연결되는지 확인하고 연결 로그의 오류 유형을 살펴보세요. 다음 증상은 점검 방향을 구분하는 데 도움을 주며, 한 가지 메시지만으로 원인을 단정할 수는 없습니다.
- 연결 시간 초과: 먼저 Address와 Port를 확인한 다음 도메인 해석과 네트워크 연결 가능성을 점검하세요. 시간 초과만으로 Password가 틀렸다고 볼 수는 없습니다. 연결이 성립되지 않았다면 인증이 시작되지 않았을 수 있습니다.
- 인증서 또는 TLS 오류: Peer/SNI, 시스템 시간, 서버 인증서를 확인하세요. 포트가 예상과 다른 서비스로 연결되어도 핸드셰이크에 실패할 수 있습니다.
- 연결 직후 끊기거나 인증 실패: Password 전체가 올바른지, 서비스가 여전히 유효한지, 전송 매개변수가 일치하는지 확인하세요. TLS 연결이 성립됐다고 모든 설정이 올바른 것은 아닙니다.
- 검사는 통과했지만 대상에 접속할 수 없음: Global Routing과 현재 Config의 규칙 일치 결과를 확인한 뒤 대상 웹사이트 장애, DNS 문제, 규칙 선택 오류를 구분하세요.
규칙의 영향을 잠시 제외하려면 Home → Global Routing에서 Proxy를 선택한 뒤 같은 대상에 다시 접속해 보세요. 확인 후에는 기존 모드로 되돌립니다. Proxy는 프록시 경로를 테스트할 때 사용하고, Direct는 직접 연결하며, Config는 현재 설정의 규칙에 따라 처리합니다. Scene은 실제 구성에 따라 동작을 확인해야 하며 Proxy와 동일한 고정 옵션으로 간주할 수 없습니다.
Proxy에서는 정상이고 Config에서는 문제가 발생한다면 현재 규칙의 DOMAIN-SUFFIX, IP-CIDR, GEOIP, FINAL 순서와 대상 정책을 우선 확인하세요. 규칙을 수정해도 Trojan 비밀번호 문제는 해결되지 않습니다. 두 문제는 각각 따로 확인해야 합니다.
Password, SNI, 가져온 설정에 관한 자주 묻는 질문
Password에는 서비스 웹사이트 로그인 비밀번호를 입력하나요?
해당 Trojan 서버 정보에 기재된 인증 비밀번호만 입력하세요. 웹사이트 계정 비밀번호와 프록시 인증 비밀번호는 서로 다릅니다. 본인의 설정 정보에서 항목 출처를 확인하고, 다른 프로토콜의 UUID나 키로 대체하지 마세요.
Address가 도메인인데 Peer도 입력해야 하나요?
먼저 원본 정보에 SNI가 명시되어 있는지 확인하세요. 지정되어 있으면 원래 값을 입력하고, 없다면 임의로 만들어 넣지 마세요. 인증서 이름 오류가 발생하면 관련 없는 도메인을 시도하지 말고 서비스 제공자에게 필요한 TLS 이름을 확인하세요.
구독을 가져온 뒤 수정한 SNI가 다시 바뀌는 이유는 무엇인가요?
구독을 업데이트하면 구독 내용에 따라 서버 매개변수가 새로 적용될 수 있습니다. 수동으로 확인할 기록을 따로 보관하고 업데이트 전후의 Peer/SNI와 전송 항목을 비교하세요. 계속 일치하지 않는다면 같은 항목을 반복해서 덮어쓰기보다 구독의 원본 설정을 확인해야 합니다.
연결 스위치가 켜져 있으면 Trojan 설정이 올바른 건가요?
그렇지 않습니다. 시스템의 연결 상태는 로컬 VPN 연결이 시작되었다는 뜻일 뿐, 원격 인증과 대상 접속이 모두 성공했다는 뜻은 아닙니다. Home에서 서버가 선택되어 있는지 확인하고 Connectivity Test를 실행한 다음 Global Routing과 실제 요청을 통해 확인하세요.
로그나 설정 화면을 공유하기 전에 Password, 전체 구독 링크와 token 같은 민감한 정보를 가리세요. 문제를 설명할 때는 오류 원문, 발생 단계, 확인한 항목만 남기면 됩니다. 전체 인증 정보를 공개할 필요는 없습니다. 최종 판단은 본인의 서비스 정보, 앱에 표시되는 실제 항목, 재현 가능한 테스트 결과를 기준으로 하세요.