Skip to content

Resolve route bug for MacOS#2548

Open
happyharryh wants to merge 1 commit intozerotier:devfrom
happyharryh:dev
Open

Resolve route bug for MacOS#2548
happyharryh wants to merge 1 commit intozerotier:devfrom
happyharryh:dev

Conversation

@happyharryh
Copy link

@happyharryh happyharryh commented Dec 22, 2025

Starting from MacOS Tahoe, running ZeroTierOne may corrupt the operating system’s routing table and DNS configuration (#2520 ). The occurrence of this problem depends on the network environment (not happen in all environments). In certain network setups, when Allow Managed Addresses is enabled, either immediately or after running for a period of time, the OS routing table and DNS become unusable. In the past three months (after updating to MacOS Tahoe), I have to disable Allow Managed Addresses and manually add the virtual IP by sudo ifconfig feth537 inet xx.xx.xx.xx/24 up.

These days, by debugging, I found that this issue is related to the code in MacDNSHelper.mm. As shown in the code, skipping the configuration of State:/Network/Service/%.16llx/IPv4:Router in SystemConfiguration can prevent this problem from occurring.

The logic of the setting was introduced in commit #1d095e8, seemingly to fix network DNS on macOS. However, starting with MacOS Tahoe, Apple appears to have changed certain behaviors related to SystemConfiguration, causing the breaking.

Here is my environment:

MacOS 26.2
ZeroTierOne 1.16.0
allowManaged = 1
allowGlobal = 0
allowDefault = 0
allowDNS = 0

In my network environment, applying the modification of this PR restores normal behavior. However, I am not sure whether this change could introduce other issues, for example when the settings of allowGlobal/allowDefault/allowDNS changes.

I would appreciate if maintainers or others who can build and test ZeroTier could help verify this PR.

UPDATE:
Wed Jan 21 10:56:29 CST 2026, I have built the commit in this PR by Github Action. MacOS users are welcome to try zerotier-one-mac by replacing /Library/Application Support/ZeroTier/One/zerotier-one (after backup) followed by restarting the service.

@CLAassistant
Copy link

CLAassistant commented Dec 22, 2025

CLA assistant check
All committers have signed the CLA.

@vint2k
Copy link

vint2k commented Jan 16, 2026

This helped me solve issue #2520. I tested it for about 5 days and it works great.
@happyharryh thank you!

@laduke @adamierymenko please check this PR. The community needs a bugfix release.

@zhuyunxiang
Copy link

It works on macOS26.2.
Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants