Existe uma maneira de desabilitar o cliente DHCP no Raspbian Linux em um Rasperry Pi?

Existe uma maneira de desabilitar o cliente DHCP no Raspbian Linux em um Rasperry Pi?

Eu tenho um servidor Linux (Rasperry Pi usando Raspbian como sistema operacional) que deveria usar apenas IP estático.

Porém notei que ele também possui IP do servidor DHCP (o IP fornecido pelo DHCP é 192.168.111.2). De acordo com as configurações de rede o servidor deve usar apenas IP estático ( 192.168.111.100).

O conteúdo de /etc/network/interfaces:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.111.100
netmask 255.255.255.0
gateway 192.168.111.1
dns-nameservers ip1 ip2

Apesar de usar configuração estática posso fazer SSH para o dispositivo também usando o IP fornecido pelo DHCP. Também parece que ntpdestá usando o IP errado e também o correto.

Saída do Netstat:

udp        0      0 192.168.111.2:123       0.0.0.0:*                           2774/ntpd
udp        0      0 192.168.111.100:123     0.0.0.0:*                           2774/ntpd

De acordo com ifconfigo IP 192.168.111.2não é utilizado:

eth0      Link encap:Ethernet  HWaddr b8:27:eb:be:18:1c
          inet addr:192.168.111.100  Bcast:192.168.111.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:138099 errors:0 dropped:0 overruns:0 frame:0
          TX packets:81146 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:95954711 (91.5 MiB)  TX bytes:27076870 (25.8 MiB)

ps -ef | grep dhcpmostra que tenho um daemon DHCP em execução:

root      2000     1  0 Oct07 ?        00:00:06 /sbin/dhcpcd

Como desabilito a DHCPinicialização do daemon e certifico-me de que meu servidor usa apenas a estática?

Responder1

Este cenário parece muito estranho porque sua configuração deve estar funcionando conforme você descreve – e esperar que funcione – se houver um IP estático definido no arquivo /etc/network/interfaces. Dito isto,esta discussão no site oficial do Raspberry Piconcentra-se no problema com o usuário “rpdom” afirmando isso na postagem datada de “Qui, 28 de maio de 2015, 6h21”:

Isso acontece nas atualizações mais recentes. Isso é causado pelo novo cliente dhcp ignorando o que os arquivos de interface fazem e fazendo suas próprias coisas ... parece loucura para mim. Eu veria como reconfigurar o cliente dhcp (não consigo lembrar qual é ou como fazê-lo, ainda estou no antigo que funciona para mim), desabilitando-o ou removendo-o (se possível).

Mais profundamente no tópico, o usuário “KLL” sugerea seguinte outra postagemem sua resposta datada de “segunda-feira, 10 de agosto de 2015, 12h59”. De acordo com “knute”:

Em algum lugar ao longo do caminho, uma atualização modificou meu /etc/network/interfacesarquivo com a palavra 'manual' em vez de dhcp ou estático e acabei com dois endereços IP, o meu estático e um endereço dhcp. Finalmente tive tempo de brincar com ele e descobri que dhcpcd5funciona de maneira diferente do que estava nele antes. Para obter apenas seu endereço estático, não modifique o arquivo /etc/network/interfaces. Coloque de volta a palavra 'manual' se você a alterou e, em vez disso, modifique /etc/dhcpcd.confconforme mostrado no exemplo dos documentos.

Então a ideia é que dhcpcd5o comportamento do s tenha mudado em uma das atualizações. E a sugestão para resolver o problema é remover quaisquer alterações /etc/network/interfacese, em vez disso, ajustar as configurações /etc/dhcpcd.confpara obter um endereço IP estático; exemplo de configuração abaixo:

static <value>
             Configures a static <value>.  If you set ip_address then dhcpcd
             will not attempt to obtain a lease and just use the value for the
             address with an infinite lease time.

             Here is an example which configures a static address, routes and
             dns.
                   interface eth0
                   static ip_address=192.168.0.10/24
                   static routers=192.168.0.1
                   static domain_name_servers=192.168.0.1

Mais informações sobre o conteúdo de dhcpcd.confpodem ser encontradasna página oficial do manual para isso.

Dito isto, outra ideia é manter as configurações que você possui, /etc/network/interfacesmas depois editar /etc/dhcpcd.confpara adicionar a linha denyinterfaces eth0para informar ao daemon DHCP para ignorar completamente eth0. Qualquer uma das soluções deve funcionar, mas uma solução pode ser mais preferível, dependendo das suas necessidades/requisitos gerais de rede.

Responder2

o que funcionou para mim foi usar /etc/network/interfaces como na pergunta original e simplesmente remover o cliente dhcp:

apt-get remove dhcpcd5 isc-dhcp-client isc-dhcp-common

Responder3

A maneira preferível de desabilitar qualquer serviço como o dhcpcd é usar as funções de gerenciamento do sistema. Você precisará reinicializar para que ele tenha efeito - a menos que você interrompa o serviço também.

Para Jessie (que usa systemdgerenciamento):

sudo systemctl disable dhcpcd.service

E para o Wheezy mais velho ( System-Vgestão):

sudo update-rc.d dhcpcd disable

Mas se você desativá-lo, precisará ter certeza de que possui uma configuração de IP estático, caso /etc/network/interfacescontrário, suas interfaces não obterão um endereço IP.

Responder4

Aqui está um resumo do que eu precisava fazer para Raspbian Jessie 11/01/2017:

Edite /etc/network/interfaces e adicione a sub-rotina de endereço estático, remova outras referências à interface estática (eth0 neste caso). A linha automática é importante, caso contrário a interface não iniciará na inicialização:

    auto eth0
    iface eth0 inet static
      address 192.168.44.17
      netmask 255.255.255.0
      gateway 192.168.44.27

Em seguida, desative o dhcpcd e ative a rede padrão:

  • Desative o dhcpcd:systemctl disable dhcpcd.service
  • Ative a rede:systemctl enable networking
  • reinício

Raspbian Jessie a partir do lançamento de 11/01/2017 não parece usar a rede do systemd

informação relacionada