I've installed iTerm2 as a replacement for the macOS native terminal.
This issue has baffled me for at least a year and I just now finally took the time to dig into it. If you want to have split screen of the current location you are working in go to: Preferences Profiles General Working Directory Then choose Advanced Configuration. Maybe its time to pay for a static IP from my ISP if I want to host from home. By default, splitting current screen in iTerm2 gives me new split screen in default location (which is user’s home directory) not in my current location. I had this app to refresh my dynamic IP to DYN for my domain.
I would assume that any Dynamic DNS update application may play similar tricks. I removed their app and the issue went away. I had a very similar issue that was being co-opted by an app that I have from DYNDNS called DynUpdater. On the video I am using the 3 commands below on iTerm split window:Ĭontents of an original clean Mojave /Library/Preferences/ file Log stream -predicate 'subsystem = "" and (message CONTAINS ".network_change" OR message CONTAINS "changedKeys") and (message CONTAINS "DNS") ' -info -debug -signpost -style compact Log stream -predicate 'subsystem = "" AND category != "flow" AND message CONTAINS "DNS"' -info -debug -signpost -style compact And they will be logged on the 3 terminal windows. Keep them running all the time until the DNS issue happens and your DNS changes. Put each command below on each specific terminal window. Open iTerm with 3 split terminal screens, or open 3 macOS Terminal windows. I think they are the best for you and will for sure help you find the reason and when/who/what is changing your MacOS DNS configuration. Log show -predicate 'subsystem = "" and category = "CUSystemMonitor" ' -info -debug -signpost -style compact -start " 14:21:45" -end " 14:22:00" Log show -predicate 'subsystem = "" ' -info -debug -signpost -style compact -start " 14:21:45" -end " 14:22:00"ĩ) Filter all events CoreUtils -> System Monitor at the same interval:
Log show -predicate 'subsystem = "" and process = "rapportd" ' -info -debug -signpost -style compact -start " 14:21:45" -end " 14:22:00"Ĩ) All CoreUtils events at the same time/date interval : Log show -predicate 'subsystem = "" and category = "CUNetInterfaceMonitor" ' -info -debug -signpost -style compact -last 15m Log show -predicate 'subsystem = "" ' -info -debug -signpost -style compact -last 10mĦ) Filter via interface using CoreUtils -> InterfaceMonitor Log show -predicate 'subsystem = "" and message CONTAINS "DNS" ' -info -debug -signpost -style compact -last 10m Log show -predicate 'subsystem = "" and category !="SCNetworkReachability" ' -info -debug -signpost -style compact -last 30mĤ) Filter what is changing DNS system configuration: Log show -predicate 'subsystem = "" AND category != "flow" AND message CONTAINS "DNS"' -info -debug -signpost -style compact -last 30mģ) Filtrar atraves do System Configuration por alteracoes: Log show -predicate 'subsystem = "" AND category != "flow"' -info -debug -signpost -style compactĢ) Filter messages about DNS (case insensitive) Process/application/network/whatever is causing the changes, and youĬan monitor it on Realtime, and also query past events to find the Keep them running all the time until the issue happens. You need to keep those 3 commands open in terminal, UNTIL your DNS issue changes happens, and it will be logged. On the end, using the 3 commands, they monitor in realtime any DNS changes by directly monitoring the system configuration root daemon, also any Network System Configuration FILE changes, and also the root Network Diagnostic sub-system.
You can find the cause using the Logger, here are several examples, and at the end I show how to use the best 3 combinations for your case (video included):