Shadowrocket은 여러 프록시 및 터널 프로토콜을 지원합니다. 프로토콜을 선택할 때는 서비스 제공자가 안내한 유형을 확인하고 인증, 전송 방식, TLS 설정을 점검하세요. 프로토콜 이름만 비교해서는 안 됩니다. 이 글은 iPhone, iPad, Mac, Windows, Android, Linux에서 설정 항목을 이해하는 데 도움을 줍니다. Home, Add Server, Config 메뉴를 기준으로 설명하며, 실제 옵션은 사용 중인 기기의 화면에서 확인하세요. 프로토콜과 전송 계층을 구분하고, 가져온 설정에서 점검할 항목과 연결 문제를 순서대로 확인하는 방법을 알아봅니다.
프로토콜·전송 방식·라우팅 규칙 구분하기
노드 유형은 클라이언트와 서버가 통신하는 방식을, 전송 방식은 데이터가 전달되는 방식을 설명합니다. 라우팅 규칙은 요청마다 사용할 출구를 결정합니다. 서로 관련은 있지만 같은 의미는 아닙니다. 예를 들어 VLESS는 여러 전송 방식과 조합할 수 있습니다. VLESS를 선택했다고 해서 WebSocket 경로, TLS 또는 서버 포트가 자동으로 정해지는 것은 아닙니다.
서비스 제공자로부터 구독 정보나 전체 설정값을 받은 뒤에는 안내된 프로토콜 조합을 그대로 사용하세요. 같은 주소의 Type을 VMess에서 Trojan으로 바꿔도 서버가 Trojan으로 바뀌지는 않습니다. 두 설정에 모두 포트 443이 입력되어 있어도 포트 번호만 같을 뿐, 인증 방식이나 핸드셰이크 과정까지 같다는 뜻은 아닙니다.
- 프로토콜 계층: Shadowsocks, VMess, VLESS, Trojan, HTTP, SOCKS5, Hysteria2, WireGuard는 각각 고유한 인증 및 통신 규약을 사용합니다.
- 전송·보안 계층: TCP, UDP, WebSocket, QUIC, TLS 등의 사용 여부와 조합은 서버 설정과 일치해야 합니다.
- 라우팅 계층: Global Routing 및 Config의 규칙은 트래픽 출구를 선택하며, 노드에서 실제 사용하는 프로토콜을 바꾸지는 않습니다.
주요 프로토콜 7종 설정 항목 빠르게 확인하기
아래 표는 설정 항목을 확인하기 위한 것으로, 그대로 사용하는 설정 템플릿이 아닙니다. 서비스 제공자는 인증, 전송, 인증서 정보를 하나의 공유 링크에 포함할 수 있습니다. 가져온 뒤에도 항목별로 확인하세요. 포트는 설명을 위한 예시입니다. Trojan은 보통 443, WireGuard는 흔히 51820/UDP를 사용하지만, 반드시 이 값을 입력해야 하는 것은 아닙니다.
| 프로토콜 | 통신 특성 | 우선 확인할 항목 |
|---|---|---|
| Shadowsocks | 암호화 프록시이며 TCP를 전달할 수 있습니다. UDP 포워딩은 양쪽 설정과 네트워크에 따라 달라집니다. | Address, Port, 암호화 방식, Password |
| VMess | 인증 및 암호화 기능을 제공하며 다양한 전송 방식과 조합할 수 있습니다. | UUID, 암호화 옵션, 전송 방식, TLS, 기기 시간 |
| VLESS | 가벼운 인증 프로토콜로, 자체적으로 데이터 내용을 암호화하지 않습니다. | UUID, 전송 방식, TLS, 서버에서 지정한 추가 매개변수 |
| Trojan | 일반적으로 TLS로 프록시 통신을 보호하며, 지원 여부는 서버 설정에도 좌우됩니다. | Password, TLS, SNI, 인증서 도메인 |
| HTTP / SOCKS5 | 범용 프록시 프로토콜입니다. HTTP CONNECT는 TCP 터널을 만들 수 있고, SOCKS5는 UDP ASSOCIATE를 지원할 수 있습니다. | 프록시 유형, 주소, 포트, 사용자 이름과 비밀번호, TLS 사용 여부 |
| Hysteria2 | QUIC 기반이며 UDP를 사용합니다. | 인증 정보, UDP 포트, TLS, 대역폭 및 난독화 설정 |
| WireGuard | UDP 기반의 암호화 IP 터널로, 키 쌍을 사용해 상대 피어를 식별합니다. | Private Key, Peer Public Key, Endpoint, 터널 주소, MTU |
요약: 먼저 설정 항목이 모두 갖춰졌는지 확인하세요
기존 노드에 UUID, 키 또는 전송 설정이 빠져 있다면 서비스 제공자에게 먼저 확인하세요. Type을 바꾸거나 포트를 추측해 연결을 시도하지 마세요.
Shadowsocks·VMess·VLESS: 인증과 암호화 방식의 차이
Shadowsocks: 암호화 방식을 정확히 맞추세요
Shadowsocks 설정에는 서버 주소, 포트, 암호화 방식, 비밀번호가 필요합니다. 암호화 방식은 속도 설정이 아니며 클라이언트와 서버에서 동일해야 합니다. 비밀번호만 복사하고 다른 암호화 방식을 그대로 두면 정상적으로 통신하지 못할 수 있습니다. 서버에서 플러그인이나 별도의 전송 설정을 요구하는 경우에는 사용 중인 클라이언트가 해당 기능을 지원하고 올바르게 설정해야 합니다. 기본 네 항목이 같더라도 충분하지 않을 수 있습니다.
VMess: UUID뿐 아니라 전송 방식도 확인하세요
VMess의 UUID는 사용자를 식별하며, 전송 방식과 TLS는 연결 설정에 영향을 줍니다. 서비스 제공자가 WebSocket을 사용한다면 경로와 Host도 확인하세요. TLS의 SNI와 WebSocket의 Host는 서로 다른 역할을 할 수 있으므로 도메인이라는 이유만으로 바꿔 쓰면 안 됩니다. VMess는 기기 시간 설정에도 영향을 받습니다. 인증 오류가 발생하면 먼저 기기의 자동 시간 설정을 켠 뒤 매개변수를 확인하세요.
VLESS: 인증과 암호화를 혼동하지 마세요
VLESS 자체는 데이터 내용을 암호화하지 않습니다. 실제 보호 여부는 외부 보안 계층과 전체 구성에 달려 있습니다. UUID가 올바르더라도 TLS로 보호되고 있다는 뜻은 아니며, 서버에서 요구하는 다른 설정이 모두 입력되었다는 뜻도 아닙니다. VLESS를 가져온 뒤에는 서비스 제공자의 안내에 따라 TLS, 전송 방식, 추가 항목을 확인하고, 의미를 모르는 옵션을 임의로 삭제하지 마세요.
Trojan·HTTP·SOCKS5: 포트 번호만으로 TLS를 판단하지 마세요
Trojan은 일반적으로 TLS로 보안 연결을 설정하며, 비밀번호는 프록시 인증에 사용됩니다. 연결 주소로 IP를 사용할 수 있지만, 인증서를 확인하려면 올바른 도메인과 SNI가 필요할 수 있습니다. 인증서 이름이 일치하지 않는다면 서비스 제공자가 안내한 도메인과 SNI, 기기 시간을 확인하세요. 인증서 검증을 끄는 것은 일반적인 해결 방법이 아닙니다.
HTTP와 SOCKS5는 범용 프록시 인터페이스입니다. 일반 HTTP 프록시 연결은 기본적으로 암호화되지 않습니다. HTTPS 웹사이트에 접속할 때 HTTP CONNECT가 웹사이트의 TLS 연결을 전달할 수는 있지만, 클라이언트와 프록시 사이의 연결에 별도로 TLS를 적용하는지는 다른 문제입니다. SOCKS5도 자체적으로 데이터 내용을 암호화하지 않으며, 사용자 이름과 비밀번호는 전송 암호화를 대신할 수 없습니다.
- HTTP: 사용자 이름과 비밀번호가 필요한지, 프록시 연결 자체에 TLS를 사용하는지 확인하세요. 웹사이트의 HTTPS와 프록시의 TLS 설정을 혼동하지 마세요.
- SOCKS5: TCP 연결이 된다고 해서 UDP도 사용할 수 있는 것은 아닙니다. UDP ASSOCIATE를 사용하려면 클라이언트, 서버, 중간 네트워크가 모두 지원해야 합니다.
- Trojan: 포트가
443이어도 올바른 비밀번호와 인증서 설정이 필요합니다. 포트가 열려 있다는 것은 서비스 응답이 있다는 뜻일 뿐, 인증에 성공했다는 뜻은 아닙니다.
Hysteria2와 WireGuard: 둘 다 UDP를 사용하지만 용도는 다릅니다
Hysteria2는 QUIC 기반이며 UDP를 사용합니다. 실제 연결 성능은 UDP 연결 가능 여부, 패킷 손실, 혼잡 제어, 대역폭 설정에 영향을 받습니다. 네트워크에서 UDP를 차단한다면 같은 서버의 TCP 포트에 접속할 수 있어도 Hysteria2를 사용할 수 있다고 단정할 수 없습니다. 대역폭은 실제 회선 성능과 서비스 제공자의 안내에 맞춰 설정하세요. 값을 크게 입력한다고 속도가 빨라지는 것은 아닙니다.
WireGuard는 암호화 IP 터널이며, 사용자 이름과 비밀번호로 로그인하는 프록시 프로토콜이 아닙니다. Private Key는 기기에 보관하고, Peer Public Key로 원격 피어를 식별합니다. 두 키를 서로 바꿔 사용할 수 없습니다. Endpoint는 원격 주소와 포트이며, 터널 주소는 기기에 할당된 가상 주소입니다. 공인 서버 IP를 터널 주소에 입력해서도 안 됩니다.
- Hysteria2: 인증 정보가 맞는데도 계속 시간 초과가 발생하면 먼저 현재 네트워크에서 대상 UDP 포트를 허용하는지 확인한 뒤 TLS와 난독화 설정을 점검하세요.
- WireGuard: 핸드셰이크에 응답이 있지만 일부 웹페이지가 멈춘다면 라우팅, DNS, MTU를 확인하세요. 핸드셰이크가 된다고 해서 목적지 웹사이트까지 연결된다는 뜻은 아닙니다.
- 공통 확인 사항: Wi-Fi와 모바일 네트워크를 바꿔 테스트하면 로컬 네트워크 제한 여부를 구분하는 데 도움이 됩니다. 같은 설정에서의 결과를 기록하고 여러 항목을 동시에 바꾸지 마세요.
UDP를 사용한다는 이유만으로 두 프로토콜을 같은 것으로 판단하지 마세요. Hysteria2는 프록시 전송용이고 WireGuard는 IP 터널을 만듭니다. 가져오는 설정 항목, 주소 할당 방식, 라우팅 범위가 서로 다릅니다. 이 글에서는 속도를 순위로 비교하거나 측정되지 않은 네트워크 성능을 고정된 수치로 제시하지 않습니다.
Add Server에서 Home까지: 설정 확인 및 연결 테스트
아래 절차는 서비스 제공자와 설정 정보를 이미 보유한 경우를 전제로 합니다. 구독을 사용하면 노드 설정을 한곳에서 업데이트할 수 있고, 수동 추가는 개별 항목을 확인할 때 편리합니다. 구독을 업데이트하면 원격 관리 항목이 덮어써질 수 있으므로 수동으로 점검하기 전에 기존 설정을 보관하세요. 필요하다면 별도 항목으로 복사한 뒤 수정하세요.
-
유형 확인
Home에서 기존 노드의 편집 화면을 열거나 오른쪽 위의 “+”를 눌러 Add Server로 이동한 뒤 Type을 확인하세요. 노드 이름으로 추측하지 말고 서비스 제공자가 안내한 유형에 따라 Shadowsocks, VMess, VLESS, Trojan 등을 선택하세요.
-
인증 정보 확인
Add Server에서 Address, Port와 선택한 Type에 해당하는 인증 항목을 확인하세요. UUID에 공백이 들어가지 않도록 하고 Password는 대소문자를 구분해 입력하세요. WireGuard의 Private Key를 다른 사람에게 보내지 마세요.
-
전송 설정 확인
이어서 TLS와 SNI, 설정에 필요한 WebSocket 경로와 Host를 확인하세요. 서비스 제공자가 명확히 안내한 항목만 입력하고, 안내받지 않은 값은 다른 노드에서 복사하지 마세요.
-
연결 테스트
저장한 뒤 Home으로 돌아와 해당 노드를 선택하고 연결을 켜세요. 같은 대상을 테스트할 때는 잠시 Global Routing → Proxy를 사용해 시간 초과, 인증 실패, 인증서 오류 여부를 기록하세요. 테스트가 끝나면 원래 라우팅 방식으로 되돌리세요.
-
업데이트 확인
구독을 사용하는 경우 Config → Subscribe에서 구독 항목을 확인하고 업데이트한 뒤 Home으로 돌아가 노드가 바뀌었는지 확인하세요. 구독 링크는 서비스 제공자에게 받으세요. 클라이언트 설정 파일 주소를 노드 구독 주소 대신 사용하지 마세요.
예를 들어 https://example.com/sub?token=xxxx는 구독 URL에 쿼리 매개변수가 포함될 수 있음을 보여주는 명백한 예시입니다. 실제 링크에는 접근 자격 정보가 들어 있는 경우가 많습니다. 문제 해결을 위해 화면을 공유할 때는 서버 이름뿐 아니라 링크 전체와 QR 코드도 가리세요.
Global Routing: 프로토콜 문제와 규칙 문제 구분하기
같은 노드가 Proxy에서는 접속되지만 Config에서는 실패한다면 노드를 다시 만들기 전에 규칙과 정책의 경로를 먼저 확인하세요. Config는 설정된 규칙에 따라 출구를 선택합니다. 도메인 규칙과 일치하지 않는 트래픽이 반드시 직접 연결되는 것은 아니며, 최종 동작은 뒤에 이어지는 규칙과 FINAL에 따라 달라집니다.
Config
권장현재 설정의 규칙과 정책에 따라 트래픽을 처리합니다. 먼저 설정이 활성화되어 있는지 확인한 뒤 대상 요청에 적용된 규칙을 점검하세요.
적합한 경우: 사용 가능한 규칙 설정으로 평소 트래픽을 분기할 때
Proxy
프록시 처리 대상인 요청을 프록시 출구로 보내 Config의 규칙 선택을 잠시 배제할 수 있습니다. 잘못된 인증이나 TLS 설정을 해결해 주지는 않습니다.
적합한 경우: 노드와 대상에 연결할 수 있는지 잠시 확인할 때
Direct
선택한 프록시 노드를 거치지 않고 직접 연결합니다. 이 상태에서 웹페이지가 열린다고 해서 해당 노드의 프로토콜 설정이 올바르다는 뜻은 아닙니다.
적합한 경우: 로컬 네트워크에서 직접 접속한 결과와 비교할 때
Global Routing의 Scene은 설정된 장면에 따라 동작을 결정하는 기능이지, 별도의 프록시 프로토콜이 아닙니다. 문제를 진단할 때는 Settings → On Demand도 확인하세요. 자동 연결 조건이 활성화되어 있으면 수동으로 연결을 끊어도 다시 연결될 수 있습니다. 잠시 끌 때는 기존 설정을 기록해 두고 테스트 후 복원하세요.
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.0.2.0/24,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY
위 내용은 규칙 구조를 설명하는 예시이며 그대로 교체해 사용할 수 있는 완성된 설정이 아닙니다. example.com과 192.0.2.0/24는 설명용 예시입니다. PROXY는 설정에 존재하는 유효한 정책을 가리켜야 합니다. DOMAIN-SUFFIX는 도메인과 하위 도메인을 일치시키고, IP-CIDR은 IP 주소 대역을 일치시킵니다. GEOIP는 IP 지리 데이터베이스를 기준으로 판단하며, FINAL은 앞선 규칙과 일치하지 않은 요청을 처리합니다. 규칙은 일반적으로 순서대로 적용됩니다. no-resolve는 이 IP 규칙을 위해서만 도메인 조회를 실행하지 않도록 합니다.
프로토콜 선택 및 연결 문제 FAQ
노드 이름에 고속이라고 적혀 있는데 어떤 Type을 선택해야 하나요?
노드 이름은 단순한 라벨입니다. Home에서 해당 노드의 편집 화면을 열어 Type을 확인하거나 서비스 제공자가 준 전체 공유 링크를 다시 가져오세요. 주소와 포트만 받았다면 먼저 프로토콜과 인증 정보를 요청하세요. 이름에 포함된 홍보 문구를 프로토콜 설정으로 간주하지 마세요.
지연 시간 테스트에 숫자가 나오는데 웹페이지가 열리지 않는 이유는 무엇인가요?
지연 시간은 해당 테스트 방식에 대한 응답만 보여줄 뿐, 대상 웹사이트에 접속할 수 있다는 뜻은 아닙니다. Home에서 같은 노드를 선택하고 Global Routing → Proxy로 잠시 전환한 뒤 같은 대상에 접속해 DNS, TLS, 인증 정보를 확인하세요. Config로 돌아간 뒤에만 실패한다면 규칙과 정책을 점검하세요.
Hysteria2가 시간 초과되면 Trojan으로 바꾸면 되나요?
Type만 바꿔서는 안 됩니다. 서버에서 Trojan을 지원하고 전체 설정 정보를 제공해야 합니다. 먼저 기존 Hysteria2 설정으로 다른 네트워크에서 테스트하고 UDP 연결 가능 여부를 확인하세요. 프로토콜을 바꾸려면 서비스 제공자에게 다른 유형의 전체 설정을 받으세요.
구독을 업데이트한 뒤 수동으로 바꾼 설정이 다시 원래대로 돌아왔어요. 왜 그런가요?
원격 구독 업데이트가 관리 대상 노드의 항목을 새 내용으로 덮어쓸 수 있습니다. Config → Subscribe에서 업데이트 전후 항목을 비교하고 서비스 제공자에게 변경 사항을 확인하세요. 임시로 문제를 진단할 때는 별도 복사본을 보관하고, 덮어써질 원본 항목을 반복해서 수정하지 마세요.
컴퓨터와 휴대폰에서 반드시 같은 프로토콜을 사용해야 하나요?
그럴 필요는 없습니다. 먼저 각 기기의 현재 인터페이스가 서비스 제공자의 전체 설정을 지원하는지 확인하고 네트워크별로 테스트하세요. 같은 프로토콜도 네트워크, DNS, 서버 정책에 따라 결과가 다를 수 있습니다. 프로토콜 이름만 비교하기보다 설정 차이를 기록하는 편이 효과적입니다.