-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Resolve route bug for MacOS #2548
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
Conversation
|
In macOS 26.2 (Build 25C56), ZeroTier One built from the latest main branch commit ➜ ~ route -n get default
route to: default
destination: default
mask: default
gateway: 192.168.1.1
interface: en0
flags: <UP,GATEWAY,DONE,STATIC,PRCLONING,GLOBAL>
recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
0 0 0 0 0 0 1500 0Based on this limited testing, it appears that Apple may have addressed the underlying issue at the OS level. However, this is purely anecdotal, and confirmation from other users and environments would be helpful to determine whether the problem has been fully resolved. UPDATE: |
I have built the commit in this PR by Github Action. You can try it. |
|
This helped me solve issue #2520. I tested it for about 5 days and it works great. @laduke @adamierymenko please check this PR. The community needs a bugfix release. |
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 Addressesis 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 disableAllow Managed Addressesand manually add the virtual IP bysudo 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 ofState:/Network/Service/%.16llx/IPv4:RouterinSystemConfigurationcan 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:
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/allowDNSchanges.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-macby replacing/Library/Application Support/ZeroTier/One/zerotier-one(after backup) followed by restarting the service.