tun_linux: use IFF_TUN_EXCL to prevent multiple nebulas

This commit is contained in:
JackDoan
2026-07-31 10:45:34 -05:00
parent 16878eec1c
commit 575b97904d
+2 -1
View File
@@ -157,7 +157,8 @@ func offloadUSOEnabled(offloadFlags uint) bool {
} }
func newTun(c *config.C, l *slog.Logger, vpnNetworks []netip.Prefix, multiqueue bool) (*tun, error) { func newTun(c *config.C, l *slog.Logger, vpnNetworks []netip.Prefix, multiqueue bool) (*tun, error) {
baseFlags := uint16(unix.IFF_TUN | unix.IFF_NO_PI) // IFF_TUN_EXCL prevents us from attaching to an already-running tun
baseFlags := uint16(unix.IFF_TUN | unix.IFF_NO_PI | unix.IFF_TUN_EXCL)
if multiqueue { if multiqueue {
baseFlags |= unix.IFF_MULTI_QUEUE baseFlags |= unix.IFF_MULTI_QUEUE
} }