Du behöver inte installera något för att få en riktig, aktuell bild av vad din Mac pratar med. Varje verktyg i det här labbet levereras med macOS. Ingen av dem kräver att du litar på en tredje part med din trafik, och alla sex tillsammans tar cirka tio minuter att köra igenom när du väl känner till kommandona. Vad de inte kommer att göra, och det här spelar roll, är att berätta vilka av dessa kopplingar som är bra och vilka som inte är det - för det behöver du fortfarande sammanhang, och i slutet kommer vi att vara ärliga om var dessa verktyg slutar.
1. lsof — varje öppen anslutning, just nu
På Unix är ett nätverksuttag en fil, och lsof (lista öppna filer) listar dem. MacOS-man-sidan beskriver -i som att välja filer vars internetadress matchar en given specifikation — utan någon given, varje internetuttag. Lägg till -n för att hoppa över att lösa adresser till värdnamn och -P för att hoppa över portar till tjänstnamn; båda gör kommandot snabbare och resultatet exakt snarare än ungefärligt.
sudo lsof -i -n -P
# example output, trimmed to a few representative lines
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Mail 612 alice 9u IPv4 0x... 0t0 TCP 192.168.1.10:54321->17.57.145.13:993 (ESTABLISHED)
Slack 980 alice 22u IPv4 0x... 0t0 TCP 192.168.1.10:54400->35.186.224.25:443 (ESTABLISHED)
mDNSResp 88 root 4u IPv4 0x... 0t0 UDP *:5353Läs det från vänster till höger: processnamn och PID, den lokala adressen och porten, -> och fjärradressen och porten samt anslutningsstatus. ESTABLISHED betyder en aktiv tvåvägsförbindelse just nu. Kör utan sudo du kommer fortfarande att se dina egna processer; rotägda behöver det. Vad detta inte kan säga dig: lsof är en ögonblicksbild av ögonblicket du tryckte på Enter. En anslutning som öppnades, skickade några kilobyte och stängdes en halv sekund innan du körde kommandot finns helt enkelt inte där - du måste köra det upprepade gånger, eller flytta till nästa verktyg för att fånga det.
2. nettop — samma vy, men live
nettop är liveversionen av samma idé. Dess man-sida beskriver det som att det visar "en lista över uttag eller rutter" med periodiskt uppdaterad statistik. -m route växlar den från listning av sockets till listning av routingtabellvyn; -m tcp eller -m udp begränsa det till ett protokoll.
nettop -m route
# interactive; press q to quit, or use -l N to print N samples and exit
# example output, trimmed
time interface state bytes_in bytes_out
23:41:02.123 Mail.612 en0 Established 4.2K 1.1K
23:41:02.123 Slack.980 en0 Established 18.6K 6.4KLägg till -l 5 för att ta fem prover och avsluta istället för att hålla en interaktiv session, användbart om du vill överföra utdata någonstans. nettop fixar lsofs ögonblicksbildproblem – du kan se en anslutning dyka upp, överföra data och stänga – men den ärver samma tak: ett processnamn och en PID, ingenting om vem som signerade binären och inget minne när du stänger terminalen.
3. loggström — vad systemet självt säger om nätverket
macOS håller en enhetlig, strukturerad logg över vad varje process gör, och log stream låter dig se den live, filtrerad. Mansidan beskriver --predicate som filtrering av poster med hjälp av NSPredicate-liknande satser mot subsystem, kategori, process och meddelandeinnehåll.
log stream --predicate 'eventMessage contains "network" or subsystem == "com.apple.network"' --info
# live stream; Ctrl-C to stop. Example line, trimmed:
2026-09-14 23:41:05.001 process=nesessionmanager subsystem=com.apple.network "TCP Connection ... state changed to Ready"Detta är det minst lättillgängliga av de sex verktygen – volymen är hög och predikatsyntaxen har en inlärningskurva – men det är också det enda som visar nätverkstillståndsförändringar på systemnivå och anslutningslivscykelhändelser när de inträffar, på ren (ish) engelska, taggade av det ansvariga undersystemet. Behandla det som något att grepa, inte läs rad för rad: rör det genom grep för ett processnamn du bryr dig om, eller ett nyckelord som "Wi-Fi" eller "VPN".
4. scutil --dns och gräva — vad din Mac faktiskt löser
Innan en anslutning sker finns det vanligtvis en DNS-uppslagning. scutil --dns, enligt sin man-sida, "rapporterar den aktuella DNS-konfigurationen": vilka resolvers som är konfigurerade, vilket är standard, och vilka gäller endast för specifika domäner (delad DNS, vanlig på VPN).
scutil --dns
# example output, trimmed
DNS configuration
resolver #1
nameserver[0] : 192.168.1.1
if_index : 12 (en0)
flags : Request A records, Request AAAA records
reach : 0x00020002 (Reachable,Directly Reachable Address)dig svarar direkt på en enda fråga: vad löser det här namnet just nu. Dess man-sida kallar det "ett flexibelt verktyg för att förhöra DNS-namnservrar" värderat för "flexibilitet, användarvänlighet och klarhet i utdata."
dig example.com +short
# example output
93.184.216.34Inget av verktygen berättar vilken app som utlöste sökningen eller vad som hände efter — DNS ger dig bara adressen som en app är på väg att (eller redan har) anslutit till; själva anslutningen är vad lsof, nettop eller en brandväggslogg visar dig.
5. tcpdump — grundsanningen, och den som behöver sudo
Allt ovanstående läser status som operativsystemet redan behåller. tcpdump är annorlunda: den fångar paket direkt från ett gränssnitt, varför dess egen dokumentation är direkt om kravet — "Att läsa paket från ett nätverksgränssnitt kan kräva att du har speciella privilegier" — i praktiken sudo på macOS. Använd -i för att välja gränssnittet, -n för att hålla adresserna numeriska och ett filteruttryck som port 53 för att isolera DNS-trafik:
sudo tcpdump -i en0 -n port 53
# example output, trimmed
23:41:10.221331 IP 192.168.1.10.54812 > 192.168.1.1.53: 41213+ A? example.com. (30)
23:41:10.244109 IP 192.168.1.1.53 > 192.168.1.10.54812: 41213 1/0/0 A 93.184.216.34 (46)Mönstret att lägga märke till: en fråga går ut på port 53 omedelbart följt av ett svar som kommer tillbaka. Om du kör dig i en terminal medan tcpdump körs i en annan, kan du titta på den exakta frågan och svaret som ditt eget kommando producerat - ett bra sätt att faktiskt tro på vad man-sidorna säger snarare än att ta dem på tro.
Ett gratis sjunde verktyg: Activity Monitor
Det är värt att namnge det ena grafiska alternativet i den här listan, eftersom inte allt behöver en terminal. Aktivitetsmonitorns nätverksflik ger dig totaler – data som skickas och tas emot per process, och en graf för livegenomströmning – vilket är det rätta första stoppet för "något tuggar genom bandbredden och jag vet inte vad." Det är också den tydligaste illustrationen av taket som varje verktyg i den här artikeln delar: det kan berätta för dig att en hjälpprocess flyttade två gigabyte över natten, och den har ingen kolumn för var dessa två gigabyte tog vägen. Volym och destination är två olika frågor, och macOS svarar på dem med två olika verktyg.
Att lägga ihop de tio minuterna
sudo lsof -i -n -P— få den aktuella listan över öppna uttag, ett pass, trettio sekunder.nettop -m route -l 5— ta några livesamplingar för att fånga allt som lsofs ögonblicksbild missat.scutil --dns— bekräfta vilken resolver du faktiskt använder, speciellt om du är på ett VPN eller offentligt Wi-Fi.dig <name> +short, på allt okänt från steg 1, för att se vad det för närvarande löser sig till.sudo tcpdump -i en0 -n port 53, i sextio sekunder, för att titta på DNS-trafik i obearbetad form när appar gör sitt jobb.log stream --predicatemed nyckelordet grep, om något ovan väckte en fråga som de tidigare fem inte svarade.
Ett fungerande exempel
Säg att steg 1 visar en process som heter helperd som håller en öppen anslutning till en adress du inte känner igen. Stanna inte där. Kör dig -x <the address> för en omvänd uppslagning – det kommer inte alltid att lösas till något läsbart, men när det gör det berättar ett värdnamn som ads.example-cdn.net dig mer på fem sekunder än den råa IP-adressen någonsin kommer att göra. Kör nettop -m tcp -l 3 och se om samma anslutning fortfarande är öppen några sekunder senare, och om bytes faktiskt rör sig över den eller om den är inaktiv. Om den är inaktiv och öppnar igen med ett fast intervall, är det formen av en periodisk incheckning snarare än en engångsöverföring - värt att komma ihåg, inte automatiskt värt att oroa sig för, eftersom vanliga uppdateringskontroller beter sig på samma sätt. Kontrollera sedan scutil --dns för att bekräfta att resolvern som producerade vilken adress helperd var kopplad till var den du förväntade dig, särskilt om du är på någon annans Wi-Fi. Fem kommandon, en process, och du har gått från "Jag känner inte igen det här" till "här är specifikt vad jag vet och inte vet om det" - vilket är det faktiska målet för en granskning som denna, mer än en bedömning av bra eller dåligt.
Vad inget av dessa verktyg kommer att berätta för dig
Kör igenom alla sex och du har fortfarande tre riktiga luckor. För det första, identitet bortom ett processnamn: ingenting här kontrollerar om binären som kallas "Mail" är Apples Mail eller något som döpt om sig själv, eller om den är signerad överhuvudtaget - det är en separat uppslagning med codesign och spctl. För det andra, minne: när terminalfönstret stängs, så gör allt du lärt dig; det finns ingen logg över "vad min Mac kopplade till i tisdags" om du inte bygger en själv. För det tredje, bedömning: inget av dessa verktyg har en åsikt om huruvida ett samband förväntas. En anteckningsapp som ansluter till en adress som den aldrig har använt förut ser exakt likadan ut i lsof som en som ansluter till sin vanliga synkroniseringsserver – att skilja mellan dessa två är mönsterigenkänning du måste ta med dig själv, eller ett verktyg måste ta med dig.
Var FireAI och HisnLabs kommer in
Everything in this lab is free and built into macOS, and none of it names the process behind a connection or remembers it after the terminal closes — which is the specific, narrow gap FireAI’s per-app rules and connection history are built to close.
FireAI är HisnLabs eget verktyg: en AI-brandvägg som körs direkt på din Mac. Den visar varje anslutning dina appar gör, på klarspråk, och låter dig avgöra vad som lämnar din Mac — AI:n körs lokalt, så din trafik skickas aldrig till oss eller någon annan. HisnLabs säkerhetsforskningsteam är de som håller de bedömningarna tillförlitliga: de katalogiserar vilka domäner som är vanlig telemetri och vilka som är en riktig tjänst, spårar land och nätverk bakom en anslutning och tränar den lokala modellen (Autopilot-funktionen) på verkliga trafikmönster — utan att något av det lämnar din Mac.
Du kan läsa om de tekniska besluten bakom, eller prova FireAI i 17 dagar, på FireAI, från HisnLabs.
