Skip to main content

Como usar o comando Netstat no Mac

How to use the command line on Mac (Pode 2024)

How to use the command line on Mac (Pode 2024)
Anonim

O comando netstat no macOS é um comando Terminal usado para exibir informações detalhadas sobre as comunicações de rede do seu Mac. As comunicações de rede incluem todas as maneiras que o seu Mac está falando com o mundo exterior, em todas as portas e em todos os aplicativos. Depois de dominar o netstat, os usuários do Mac podem entender rapidamente quais conexões seu computador está fazendo e por quê.

Executando o Netstat

O comando netstat está disponível em Macs por padrão. Não precisa ser baixado ou instalado.

Para executar o netstat, abra uma janela do Terminal. Se você não estiver familiarizado com o Terminal, ele será encontrado em /Applications/Utilities/Terminal.app. Tipo netstat e pressione Enter para executar o comando.

Você notará que uma enorme quantidade de texto enigmático começará a rolar pela tela. Isso é normal e esperado. Sem opções adicionais, o netstat reportará todas 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 do netstat pode executar bem mais de 1.000 linhas.

Filtrar a saída do netstat é essencial para entender o que está acontecendo nas suas portas ativas do Mac. Você pode filtrar a saída do netstat com os sinalizadores internos. Esses sinalizadores permitem definir opções, limitando o escopo e a saída do netstat.

Bandeiras e opções do Netstat

Para ver todas as opções disponíveis do netstat, digite man netstat no prompt de comando. Isto irá revelar a página man do netstat. Você também pode ver uma versão online da página man do netstat.

netstat -AabdgiLlmnqrRsSvWx -c fila -f address_family -EU interface -p protocolo -W esperar

O Netstat no macOS não funciona da mesma maneira que o netstat no Windows ou o netstat no Linux. Usar sinalizadores ou sintaxe dessas implementações do netstat pode não resultar no comportamento esperado.

Gorjeta: Se a abreviação acima parecer completamente incompreensível, aprenda a ler a sintaxe de comando.

-r exibe a tabela de roteamento, mostrando como os pacotes são roteados pela rede.

-p protocolo lista o tráfego associado a um protocolo de rede específico. Embora a lista completa de protocolos possa ser encontrada em / etc / protocols, os mais importantes são o udp e o tcp.

-v aumenta o detalhamento, especificamente adicionando uma coluna mostrando o ID do processo (PID) associado a cada porta aberta.

-EU 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.

-g exibe informações associadas a conexões multicast.

-s mostra as estatísticas da rede para todos os protocolos, estejam eles ativos ou não.

-n suprime o rótulo de endereços remotos com nomes. Isso aumenta drasticamente a saída do netstat, sacrificando apenas informações limitadas.

-uma inclui portas do servidor na saída do netstat, que não estão incluídas na saída padrão.

Exemplos do Netstat

Para colocar nossa compreensão em prática, vamos ver alguns exemplos de netstat.

netstat -apv TCP

Este comando só retornará conexões TCP no seu Mac, incluindo portas abertas e portas ativas. Ele também usará a saída detalhada, listando os PIDs associados a cada conexão.

netstat -a | grep -i "escuta"

Essa combinação de netstat e grep revelará portas abertas no seu Mac. Portas abertas são portas que estão escutando uma mensagem. Se você não estiver familiarizado com a sintaxe, o caractere de pipe | é usado para enviar a saída de um comando para outro comando. Nós canalizamos a saída de netstat para grep, permitindo-nos procurar a palavra-chave "listen" e encontrar nossos resultados.

Acessando o netstat através do Network Utility

Além do uso completo através da interface de linha de comando do Terminal, algumas das funcionalidades do netstat também podem ser acessadas através do aplicativo Network Utility. Este aplicativo macOS integrado pode ser encontrado em / Applications / Utilities / Network Utility.app. Abra o aplicativo e clique no Netstat guia para acessar a interface gráfica do netstat.

Opções dentro do Network Utility são claramente muito mais limitadas do que aquelas disponíveis através da linha de comando. As quatro seleções de botões de opção simplesmente executam um comando netstat predefinido e exibem a saída na tela abaixo.

Os comandos netstat para cada botão de opção são os seguintes:

  • Exibir informações da tabela de roteamento roda netstat -r
  • Exibir estatísticas abrangentes da rede para cada protocolo corre netstat -s
  • Exibir informações multicast roda netstat -g
  • Exibe o estado de todas as conexões de soquete atuais corre netstat

Suplementando netstat com lsof

O fato é que a implementação do macOS no netstat não inclui grande parte da funcionalidade 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, pode substituir grande parte da funcionalidade ausente.

O lsof exibe todos os arquivos atualmente abertos por qualquer aplicativo. Isso também pode ser usado para inspecionar portas abertas associadas a aplicativos. Execute lsof -i e você verá uma lista de todos os aplicativos que estão se comunicando 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 o netstat, mas com o lsof.

A exibição de cada arquivo aberto ou conexão com a Internet geralmente é extremamente detalhada.É por isso que o lsof vem com vários sinalizadores para restringir resultados com critérios específicos. Existem muitos sinalizadores úteis que expandem o utilitário do comando. Os mais importantes estão abaixo. Para leitura adicional, incluindo mais sinalizações e explicações técnicas da implementação de cada sinalizador, verifique a página de manual do lsof ou execute homem lsof em um prompt do Terminal.

lsof sinalizadores e opções

-Eu exibe todas as conexões de rede abertas e o nome do processo que está usando a conexão. Adicionando um 4, como em -i4, exibirá apenas conexões IPv4. Adicionando um 6 em vez disso (-i6) exibirá apenas conexões IPv6.

o -Eu flag também pode ser expandido para especificar mais detalhes. -iTCP ou -iUDP retornará somente conexões TCP e UDP. -iTCP: 25 somente retornará conexões TCP na porta 25. Um intervalo de portas pode ser especificado com um traço, como -iTCP: 25-50.

O uso de [email protected] retornará apenas conexões para o endereço IPv4 1.2.3.4. Endereços IPv6 podem ser especificados da mesma maneira. O precursor @ também pode ser usado para especificar os 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 o lsof a exibir o tamanho do arquivo. Mas quando emparelhado com o -Eu bandeira, -s funciona de forma diferente. Em vez disso, permite que o usuário especifique o protocolo e o status para o comando retornar.

-p restringe lsof a um determinado ID de processo (PID). Vários PIDs podem ser definidos usando commons, como -p 123.456.789. As IDs de processo também podem ser excluídas com um ^, como em 123, ^ 456, que excluiria especificamente o PID 456.

-P desativa a conversão de números de portas em nomes de portas, acelerando a saída.

-n desativa a conversão de números de rede em nomes de host. Quando usado com -P acima, pode acelerar significativamente a saída do lsof.

-você do utilizador só retorna comandos de propriedade do usuário nomeado.

lsof examples

Como o netstat, ver alguns exemplos de lsof ajudará a praticar nosso entendimento.

lsof -nP [email protected]: 513

Este comando de aparência complexa listará todas as conexões TCP com o nome do host lsof.itap e o porto 513. Ele também executará lsof sem conectar nomes a endereços IP e portas, tornando o comando mais rápido.

lsof -iTCP -sTCP: LISTEN

Isso retornará todas as conexões TCP com o status OUÇO. Isso revela todas as portas TCP abertas no seu Mac. Também lista os processos associados a essas portas abertas. Essa é uma atualização significativa sobre o netstat, que lista os PIDs no máximo.

sudo lsof -i -u ^ $ (whoami)

Retorna todas as conexões não de propriedade do usuário atualmente logado. Este comando é um pouco diferente dos outros, então vamos detalhadamente.

O caret ^ é usado para negação. Qualquer coisa que corresponda ao texto após o cursor será removido dos resultados. Obtemos o nome do usuário atualmente conectado executando Quem sou eu dentro do comando lsof, cercado por $() deixar o lsof acessar sua saída como texto. Rodar com o sudo permite que você veja tarefas que não são de sua propriedade. Executar este comando sem sudo retornará uma lista vazia.

Outros comandos de rede

Outros comandos de rede do Terminal que podem ser de interesse no exame da sua rede incluem arp, ping e ipconfig.