1.2 KiB
1.2 KiB
NordVPN macOS DNS Design
Goal
Keep NordVPN DNS while connected on macOS, but only apply it to active physical services so the WireGuard backend does not break Tailscale or other virtual interfaces.
Behavior
- Keep the generated WireGuard config free of
DNS = ... - During
connecton macOS:- detect active physical network services
- snapshot current DNS/search-domain settings
- set NordVPN DNS only on those physical services
- During
disconnect:- restore the saved DNS/search-domain settings
- During failed
connectafter DNS changes:- restore DNS before returning the error
DNS Values
- IPv4 primary:
103.86.96.100 - IPv4 secondary:
103.86.99.100 - No IPv6 DNS for now
Service Selection
Include only enabled physical services from networksetup.
Exclude names matching:
- Tailscale
- Bridge
- Thunderbolt Bridge
- Loopback
- VPN
- utun
Persistence
- Save DNS snapshot under
~/.nordvpn-client - Overwrite on each successful connect
- Clear after successful disconnect restore
Verification
- Unit tests for service selection and DNS snapshot/restore helpers
- Direct logic/config tests
- Avoid live connect tests from this session unless explicitly requested because they can drop connectivity