TLS 필드
tls를 사용하는 프로토콜(VMess/VLESS/Trojan/AnyTLS 등)은 모두 이 TLS 설정 필드 세트를 공유합니다. SNI, 인증서 검증, uTLS 지문, REALITY, ECH 등이 포함됩니다.
설정 예시
proxies: - name: "tls-example" tls: true sni: example.com fingerprint: xxx alpn: - h2 - http/1.1 skip-cert-verify: true client-fingerprint: chrome reality-opts: public-key: xxxx short-id: xxxx ech-opts: enable: true config: base64_encoded_config
핵심 필드
tls선택TLS를 활성화합니다. tls를 지원하는 프로토콜에만 적용되며, Trojan 프로토콜은 강제로 활성화됩니다.
sni / servername선택서버 이름 지정(SNI)입니다. VMess/VLESS에서는 servername이라고 불리며, 비워두면 기본적으로 server의 주소를 사용합니다.
fingerprint선택인증서 지문으로, openssl x509 -noout -fingerprint -sha256 -inform pem -in yourcert.pem으로 얻을 수 있으며 브라우저의 "인증서 뷰어"에 있는 SHA256 지문에서도 확인할 수 있습니다. 리프 인증서 지문을 입력하면 서버 인증서가 일치하는지만 검증하고, 중간/루트 인증서 지문을 입력하면 인증서 체인이 해당 인증서로 발급되었는지 검증합니다.
alpn선택지원하는 애플리케이션 레이어 프로토콜 협상 목록으로, 우선순위 순서로 나열합니다. 양쪽이 모두 ALPN을 지원할 때만 적용되며, 공통 프로토콜이 없으면 연결이 실패합니다.
skip-cert-verify선택인증서 검증을 건너뜁니다. 테스트 환경이나 자체 서명 인증서 상황에서만 필요하며, 프로덕션 환경에서는 활성화를 권장하지 않습니다.
certificate / private-key선택두 항목을 모두 입력하면 mTLS(양방향 인증서 인증)가 활성화됩니다. 값은 PEM 내용이나 파일 경로일 수 있습니다.
client-fingerprintVMess/VLESS/Trojan/AnyTLS 전용클라이언트 uTLS 지문으로, 실제 브라우저의 TLS 특징을 모방하는 데 사용됩니다. chrome/firefox/safari/ios/android/edge/360/qq/random(실제 브라우저 분포 확률에 따라 무작위 생성) 중 선택할 수 있습니다.
reality-opts
REALITY 설정으로, 비어있지 않으면 활성화됩니다.
public-key필수REALITY 서버 개인키에 대응하는 공개키입니다.
short-id필수서버에 설정된 short id 중 하나입니다.
support-x25519mlkem768선택X25519-MLKEM768 양자내성 키 교환을 지원합니다.
상류(upstream) 구현의 호환성 문제로 인해 xray-core v26.7.11 이상 버전에서는 REALITY 사용을 권장하지 않습니다. mihomo 네이티브 listener, sing-box, 또는 이전 버전의 xray-core를 서버로 사용하는 것을 권장합니다.
ech-opts
enable선택ECH(Encrypted Client Hello)를 활성화합니다.
config선택ECH 설정 내용으로, 비워두면 DNS 해석을 통해 가져오며, 입력하면 해당 base64로 인코딩된 값을 사용합니다. mihomo generate ech-keypair test.com 명령으로 자체 서명 설정 한 쌍을 생성할 수 있으며, 출력의 Config: 뒤의 내용을 여기에 입력하고 Key: 뒤의 내용은 서버 설정에 입력합니다.
query-server-name선택DNS를 통해 ECH 설정을 조회할 때 사용할 도메인을 지정합니다.