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")