mirror of
https://github.com/2dust/v2rayN.git
synced 2026-10-22 21:25:00 +03:00
4869a6cbba
* Route IPv6 into the Xray TUN on NAT66 hosts and when IPv6 is enabled #10080 dropped ::/0 from autoSystemRoutingTable whenever the host held no address inside 2000::/3. A host behind NAT66 holds only unique local addresses, yet it reaches the IPv6 internet through its IPv6 default gateway. With ::/0 gone, its IPv6 follows the system default route, bypasses the tunnel and exposes the real IPv6 address (#10327). The check also overrode EnableIPv6Address. Before #9930, enabling it always added ::/0; since #10080 the option only assigned the interface address, so users who had enabled it were affected as well. Route ::/0 when EnableIPv6Address is on, and otherwise when the host has IPv6 connectivity: a global IPv6 address or an IPv6 default gateway. Routes whose next hop is ::, such as the one the tunnel installs, do not count. A host with neither, as in #10051, still skips ::/0. The RouteExcludeAddress branch uses the same decision. Reproduced in network namespaces with Xray 26.7.28: on a NAT66 client the 7.25.4 TUN inbound let curl -6 reach the echo server from the NAT66 address, while the inbound generated by this change sends it through the proxy, with EnableIPv6Address on or off. Fixes #10327 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Simplify: route ::/0 when EnableIPv6Address is on Drop the rename and the gateway detection; keep HasGlobalIPv6Address and let EnableIPv6Address override it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0142Bna7M2GhesX7P7d4CSrt --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>