O que saber
- Para executar o netstat e ver dados detalhados sobre a rede do seu Mac, abra uma nova janela Terminal, digite netstat e pressioneEnter.
- Limite a saída do netstat com flags e opções. Para ver as opções disponíveis do netstat, digite man netstat no prompt de comando.
- Use o comando lsof para compensar a f alta ou funcionalidade limitada do netstat, incluindo a exibição de qualquer arquivo aberto em qualquer aplicativo.
Este artigo explica como executar o comando netstat Terminal no macOS para que você possa ver informações detalhadas sobre as comunicações de rede do seu Mac, incluindo as formas como o seu Mac está se comunicando com o mundo exterior, em todas as portas e todos os aplicativos.
Como executar o Netstat
Aprender a usar o netstat pode ajudá-lo a entender as conexões que seu computador está fazendo e por quê. O comando netstat está disponível em Macs por padrão. Você não precisa baixá-lo ou instalá-lo.
Para executar o netstat:
-
Vá para Finder > Go > Utilities.
-
Clique duas vezes Terminal.
-
Na nova janela do Terminal, digite netstat e pressione Return (ou Enter) para executar o comando.
-
Uma enorme quantidade de texto começará a rolar na tela. Se você não usar nenhum dos sinalizadores disponíveis (veja abaixo), o netstat relata as conexões de rede ativas no seu Mac. Considerando o número de funções que um dispositivo de rede moderno executa, você pode esperar que a lista seja longa. Um relatório padrão pode ter mais de 1.000 linhas.
Netstat Flags and Options
Filtrar a saída do netstat é essencial para entender o que está acontecendo nas portas ativas do seu Mac. Os sinalizadores internos do Netstat permitem definir opções, limitando o escopo do comando.
Para ver todas as opções disponíveis do netstat, digite man netstat no prompt de comando para revelar a página man do netstat (abreviação de "manual"). Você também pode ver uma versão online da página de manual do netstat.
Sintaxe
É importante notar que o netstat no macOS não funciona da mesma forma que o netstat no Windows e Linux. Usar sinalizadores ou sintaxe dessas implementações de netstat pode não resultar no comportamento esperado.
Para adicionar sinalizadores e opções ao netstat no macOS, use a seguinte sintaxe:
netstat [-AabdgiLlmnqrRsSvWx] [-c queue] [-f address_family] [-I interface] [-p protocol] [-w wait]
Se a abreviação acima parecer completamente incompreensível, aprenda a ler a sintaxe do comando.
Bandeiras Úteis
Aqui estão alguns dos sinalizadores mais usados:
- - a inclui portas de servidor na saída do netstat, que não estão incluídas na saída padrão.
- - g exibe informações associadas a conexões multicast.
- - I interface fornece dados de pacote para a interface especificada. Todas as interfaces disponíveis podem ser visualizadas com o sinalizador - i, mas en0 normalmente é a interface de rede de saída padrão. (Observe a letra minúscula.)
- - n suprime o rótulo de endereços remotos com nomes. Isso acelera a saída do netstat enquanto elimina apenas informações limitadas.
- - p protocolo lista o tráfego associado a um protocolo de rede específico. A lista completa de protocolos está disponível em /etc/protocols, mas os mais importantes são udp e tcp.
- - r exibe a tabela de roteamento, mostrando como os pacotes são roteados pela rede.
- - s mostra as estatísticas de rede para todos os protocolos, estejam ou não os protocolos ativos.
- - v aumenta a verbosidade, especificamente adicionando uma coluna mostrando o ID do processo (PID) associado a cada porta aberta.
Exemplos do Netstat
Considere estes exemplos:
netstat -apv TCP
Este comando retorna apenas conexões TCP no seu Mac, incluindo portas abertas e portas ativas. Ele também usa saída detalhada, listando os PIDs associados a cada conexão.
netstat -a | grep -i "ouvir"
Esta combinação de netstat e grep revela portas abertas, que são portas que estão escutando uma mensagem. O caractere pipe | envia a saída de um comando para outro comando. Aqui, a saída de netstat canaliza para grep, permitindo que você pesquise a palavra-chave "listen" e encontre os resultados.
Acessando o Netstat através do Utilitário de Rede
Você também pode acessar algumas das funcionalidades do netstat através do aplicativo Network Utility, que está incluído nas versões do macOS até o Catalina (não está incluído no Big Sur).
Para acessar o Network Utility, digite Network Utility na Pesquisa Spotlight para iniciar o aplicativo e selecione a guia Netstat para acessar a interface gráfica.
As opções do Network Utility são mais limitadas do que as disponíveis na linha de comando. Cada uma das quatro seleções de botão de opção executa um comando netstat predefinido e exibe a saída.
Os comandos netstat para cada botão de opção são os seguintes:
- Exibe informações da tabela de roteamento executa netstat -r.
- Exibe estatísticas abrangentes de rede para cada protocolo executa netstat -s.
- Exibe informações de multicast executa netstat -g.
- Exibe o estado de todas as conexões de soquete atuais executa netstat.
Suplementando Netstat com Lsof
A implementação do netstat no macOS não inclui muitas das funcionalidades que os usuários esperam e precisam. Embora tenha seus usos, o netstat não é tão útil no macOS quanto no Windows. Um comando diferente, lsof, substitui grande parte da funcionalidade ausente.
Lsof exibe arquivos atualmente abertos em aplicativos. Você também pode usá-lo para inspecionar portas abertas associadas ao aplicativo. Execute lsof -i para ver a lista de aplicativos que se comunicam pela Internet. Normalmente, esse é o objetivo ao usar o netstat em máquinas Windows; no entanto, a única maneira significativa de realizar essa tarefa no macOS não é com netstat, mas com lsof.
Lsof Flags and Options
Exibir cada arquivo aberto ou conexão com a internet é normalmente detalhado. É por isso que o lsof vem com sinalizadores para restringir resultados com critérios específicos. Os mais importantes estão abaixo.
Para obter informações sobre mais sinalizadores e explicações técnicas de cada um, confira a página man do lsof ou execute man lsof em um prompt do Terminal.
- - i exibe as conexões de rede abertas e o nome do processo que está usando a conexão. Adicionar um 4, como em - i4, exibe apenas conexões IPv4. Adicionar um 6 (- i6) exibe apenas conexões IPv6.
- O sinalizador - i também pode ser expandido para especificar mais detalhes. -iTCP ou -iUDP retorna apenas conexões TCP e UDP. -iTCP:25 retorna apenas conexões TCP na porta 25. Um intervalo de portas pode ser especificado com um traço, como -iTCP:25-50.
- Usar [email protected] retorna apenas conexões com o endereço IPv4 1.2.3.4. Os endereços IPv6 podem ser especificados da mesma forma. O precursor @ também pode ser usado para especificar nomes de host da mesma maneira, mas os endereços IP remotos e os nomes de host não podem ser usados simultaneamente.
- - s normalmente força lsof a exibir o tamanho do arquivo. Mas quando emparelhado com o sinalizador - i, - s funciona de forma diferente. Em vez disso, ele permite que o usuário especifique o protocolo e o status para o retorno do comando.
- - p restringe lsof a um ID de processo específico (PID). Vários PIDs podem ser definidos usando comuns, como -p 123, 456, 789. Os IDs de processo também podem ser excluídos com um ^, como em 123, ^456, que excluiria especificamente o PID 456.
- - P desabilita a conversão de números de porta em nomes de porta, acelerando a saída.
- - n desabilita a conversão de números de rede para nomes de host. Quando usado com - P acima, pode acelerar significativamente a saída de lsof.
- - u user apenas retorna comandos pertencentes ao usuário nomeado.
lsof Exemplos
Aqui estão algumas maneiras de usar lsof.
lsof -nP [email protected]:513
Este comando de aparência complexa lista as conexões TCP com o nome do host lsof.itap e a porta 513. Ele também executa lsof sem conectando nomes a endereços IP e portas, tornando o comando visivelmente mais rápido.
lsof -iTCP -sTCP:LISTEN
Este comando retorna todas as conexões TCP com o status LISTEN, revelando as portas TCP abertas no Mac. Ele também lista os processos associados a essas portas abertas. Esta é uma atualização significativa sobre netstat, que lista no máximo PIDs.
sudo lsof -i -u^$(whoami)
Outros comandos de rede
Outros comandos de rede do Terminal que podem ser de interesse para examinar sua rede incluem arp, ping e ipconfig.