Trojan Protocol

Trojan commonly appears as a TLS-shaped connection. It is simpler than VMess/VLESS, but certificate and SNI details still matter.

Short answer

Trojan commonly appears as a TLS-shaped connection. It is simpler than VMess/VLESS, but certificate and SNI details still matter. In real use, trust the provider subscription first and then verify whether the selected client core supports this exact type.

What It Means

In Clash/Mihomo configuration, trojan identifies the outbound type used by the node, policy or group. The same display name in a GUI can hide different transport fields, so the YAML or subscription output is more reliable than the node nickname.

Common Fields

  • type: trojan
  • password
  • sni / servername
  • alpn
  • network / ws-opts / grpc-opts
  • udp

When to Use It

  • The subscription provides trojan nodes.
  • The provider requires TLS, SNI or ALPN settings.
  • Useful when you want modern-client support with relatively compact fields.

Support Checks Checks

  • For certificate connection symptoms, first check system time, SNI and the provider certificate.
  • skip-cert-verify should be a diagnostic fallback, not a casual long-term setting.
  • With WebSocket/gRPC transports, paths or service names still need to match.

Minimal Shape

proxies:
- name: "trojan-node"
  type: trojan
  server: server.example.com
  port: 443
  password: "password"
  sni: example.com
  udp: true

Compatibility Notes

Client support changes with the bundled core. A maintained Mihomo-based client usually supports more modern node types than historical Clash clients, but mobile clients and iOS alternatives still vary by app and release.

If a subscription contains this type but the client filters it out, switch to a compatible client, ask the provider for a compatible subscription format, or use a converter only when you understand what fields are being changed.

Official Reference

Trojan in Mihomo docs