From e88ed52dbc1e402f503fd8ce225318ce961abfa8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= Date: Wed, 28 Jan 2026 15:47:10 +0800 Subject: [PATCH] Fix auto_redirect on IPv6-only or IPv4-only servers --- tun_linux.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/tun_linux.go b/tun_linux.go index abca009..e4d1044 100644 --- a/tun_linux.go +++ b/tun_linux.go @@ -630,6 +630,23 @@ func (t *NativeTun) rules() []*netlink.Rule { it.Family = unix.AF_INET6 rules = append(rules, it) } + // Fallback rules after system default rules (32766: main, 32767: default) + // Only reached when main and default tables have no route + const fallbackPriority = 32768 + if p4 { + it = netlink.NewRule() + it.Priority = fallbackPriority + it.Table = t.options.IPRoute2TableIndex + it.Family = unix.AF_INET + rules = append(rules, it) + } + if p6 { + it = netlink.NewRule() + it.Priority = fallbackPriority + it.Table = t.options.IPRoute2TableIndex + it.Family = unix.AF_INET6 + rules = append(rules, it) + } return rules }