From 3239d21168c8731b0100570e17a904394be8f947 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A3=8E=E6=89=87=E6=BB=91=E7=BF=94=E7=BF=BC?= Date: Tue, 9 Jun 2026 17:40:55 +0800 Subject: [PATCH] TUN inbound: `autoOutboundsInterface` bypasses loopback addresses (#6276) Fixes https://github.com/XTLS/Xray-core/issues/6269 --- proxy/tun/handler.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/proxy/tun/handler.go b/proxy/tun/handler.go index c26f14d5..d552eca5 100644 --- a/proxy/tun/handler.go +++ b/proxy/tun/handler.go @@ -2,6 +2,8 @@ package tun import ( "context" + "net/netip" + "strings" "syscall" "github.com/xtls/xray-core/common" @@ -85,6 +87,11 @@ func (t *Handler) Start() error { return nil } return c.Control(func(fd uintptr) { + addrPort, _ := netip.ParseAddrPort(address) + // skip loopback + if addrPort.Addr().IsLoopback() || strings.HasPrefix(strings.ToLower(address), "localhost:") { + return + } err := setinterface(network, address, fd, iface) if err != nil { errors.LogInfoInner(context.Background(), err, "[tun] falied to set interface")