AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1540777
Accepted
acgbox
acgbox
Asked: 2020-04-11 10:47:04 +0800 CST2020-04-11 10:47:04 +0800 CST 2020-04-11 10:47:04 +0800 CST

exclua várias entradas permanentes da tabela arp pela linha de comando

  • 772

Estou tentando remover as entradas permanentes da minha tabela arp. mas o comando a seguir remove apenas aqueles que não são permanentes

ip -s -s neigh flush all

Com o utilitário arp consegui eliminar os permanentes. Exemplo:

arp -a
? (192.168.1.230) en d4:63:c6:11:22:33 [ether] PERM in enp2s0
arp -d 192.168.1.230

Como existem várias entradas permanentes, eu queria automatizar o comando para remover qualquer entrada que contenha "PERM":

arp -a | grep -i perm | grep -oP '(\d+\.){3}\d+' | xargs -I {} sudo arp -d {}

mas tem um erro:

xargs: sudo: ended with status 255; aborting

O que eu fiz errado? THK

Atualizar:

resolvido bash para excluir o endereço ip do computador onde o comando é executado

localip=192.168.1.11
arp -a | grep -i perm | grep -oP '(\d+\.){3}\d+' | grep -v $localip | xargs -I {} sudo arp -d {}

Obrigado a todos

bash networking
  • 1 1 respostas
  • 849 Views

1 respostas

  • Voted
  1. Best Answer
    A.B
    2020-04-11T11:41:49+08:002020-04-11T11:41:49+08:00

    Seu sistema parece ser um sistema Linux.

    Junto com os comandos ifconfig, routee brctl, o arpestá na categoria de "comandos obsoletos": está usando a API do kernel ioctl obsoleta (para rede) para interagir com a pilha de rede.

    Comandos e ferramentas mais recentes, respectivamente e ip link, ip addresse finalmente (para substituir ), são as versões mais recentes, usando a API do kernel rtnetlink . Novos recursos (por exemplo: roteamento de política com ) geralmente estão disponíveis apenas na API mais recente.ip routebridgeip neighbourarpip rule

    A entrada permanente no exemplo do OP poderia ter sido adicionada com este comando:

    ip neighbour add 192.168.1.230 lladdr d4:63:c6:11:22:33 nud permanent dev enp2s0
    

    com nudsignificado:

    nud STATE
    o estado da entrada do vizinho. nud é uma abreviação de 'Detecção de inacessibilidade do vizinho'. O estado pode assumir um dos seguintes valores:

    permanent
    a entrada do vizinho é válida para sempre e só pode ser removida administrativamente.
    [...]

    Essas famílias de comando geralmente têm uma sintaxe mais poderosa com algum filtro que pode ser aplicado para exibir ou... excluir entradas em massa. Normalmente, quando um filtro não vazio se aplica ao subcomando show (aqui: mostre as entradas ARP permanentes):

    # ip neighbour show nud permanent
    192.168.1.230 dev enp2s0 lladdr d4:63:c6:11:22:33 PERMANENT
    

    ele se aplicará ao subcomando flush :

    # ip neighbour flush nud permanent
    # ip neighbour show nud permanent
    #
    

    Observação:

    Enquanto no meu sistema arpestá /usr/sbin/arpe eu tive que reescrever o início com /usr/sbin/arp, seu comando parecia bom quando executado por um usuário com direitos ilimitados de sudo. De qualquer forma, se entendi seu comentário corretamente, ele ressalta que tentar analisar a saída destinada principalmente à leitura humana não é confiável.


    UPDATE1: um exemplo de análise controlada com a saída JSON

    Comandos iproute2 recentes o suficiente têm uma saída JSON, que quando combinada com o jqcomando de análise JSON pode ajudar muito se um aplicativo ou script não tiver uma API mais direta disponível.

    Exemplo para recuperar todos os endereços IP na tabela ARP correspondentes a um endereço MAC administrado localmente ou um Xen ou VMware OUI:

    # ip -json neighbour | jq -r '.[] | if .lladdr != null and ( .lladdr | test("^(.[26ae]|00:16:3e|00:05:69|00:0c:29|00:1c:14|00:50:56)","xi") )  then .dst else empty end'
    

    UPDATE2: conforme comentado, como adicionar uma entrada já temporariamente, tão potencialmente aleatória, presente?

    Uma entrada já presente não pode ser adicionada. Ele pode ser alterado (se a entrada for conhecida) ou substituído (altere-o se existir, adicione-o se não existir, então isso nunca responderá EEXIST). Isso funciona para muitos outros comandos da família iproute2 .

    Exemplo:

    # ping 192.168.1.231
    PING 192.168.1.231 (192.168.1.231) 56(84) bytes of data.
    From 192.168.1.2 icmp_seq=1 Destination Host Unreachable
    
    [...]
    
    # ip neigh show nud failed
    192.168.1.231 dev enp2s0  FAILED
    # ip neigh add 192.168.1.231 lladdr 12:34:56:78:ab:cd nud permanent dev enp2s0
    RTNETLINK answers: File exists
    # ip neigh replace 192.168.1.231 lladdr 12:34:56:78:ab:cd nud permanent dev enp2s0
    # ip neigh show nud permanent
    192.168.1.231 dev enp2s0 lladdr 12:34:56:78:ab:cd PERMANENT
    
    • 3

relate perguntas

  • Como funciona um NAT atrás de um NAT (NAT do roteador e NAT do ISP)?

  • Win10 1803: Como tornar o ponto de acesso móvel uma rede privada?

  • Como o nc identifica nomes de serviço

  • Notificar-enviar notificações aparecendo na janela

  • como abrir um arquivo de escritório do WSL

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 Por que uma conexão de Internet gigabit/s via cabo (coaxial) não oferece velocidades simétricas como fibra? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    fixer1234 O "HTTPS Everywhere" ainda é relevante? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve