v2rayN implements no protocol of its own — it is a shell, and the core does the actual work. It now ships with both Xray and sing-box, and the core type settings let you assign one per protocol.

Xray is the right default

For the everyday protocols — VMess, VLESS, Trojan, Shadowsocks — Xray has the most complete support, and REALITY and XTLS Vision live on that side too. Without a specific reason, leave it alone.

SponsoredWhere does the subscription link come from?Our partner provider gives you 1 GB of high-speed Hong Kong data at signup — import it in one click.Get high-speed nodes

When to switch to sing-box

  • Your node uses Hysteria2 or TUIC. These QUIC-based protocols arrived earlier and are more complete in sing-box.
  • You want TUN mode. v2rayN implements TUN through sing-box, so enabling it routes that part through sing-box automatically — background in TUN mode explained.

Two things that change afterwards

First, custom configurations belong to a specific core. An Xray config.json and a sing-box configuration are structurally different files and cannot be fed to each other. If you hand-wrote json for an entry, check the format matches before switching.

Second, a core type change only takes effect after the core restarts — right-click the tray icon and restart the service. People change the setting, see no difference, and conclude it did nothing; it simply had not restarted.

Keeping them updated

Both cores can be updated from inside the client the same way, see updating the core. Note that the cores and v2rayN itself update separately: upgrading the client does not bring a new core along with it.

For how Xray relates to v2ray-core, see Xray vs v2ray-core.