
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 ntpd
está 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 ifconfig
o IP 192.168.111.2
nã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 dhcp
mostra que tenho um daemon DHCP em execução:
root 2000 1 0 Oct07 ? 00:00:06 /sbin/dhcpcd
Como desabilito a DHCP
inicializaçã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/interfaces
arquivo 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 quedhcpcd5
funciona 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.conf
conforme mostrado no exemplo dos documentos.
Então a ideia é que dhcpcd5
o comportamento do s tenha mudado em uma das atualizações. E a sugestão para resolver o problema é remover quaisquer alterações /etc/network/interfaces
e, em vez disso, ajustar as configurações /etc/dhcpcd.conf
para 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.conf
podem ser encontradasna página oficial do manual para isso.
Dito isto, outra ideia é manter as configurações que você possui, /etc/network/interfaces
mas depois editar /etc/dhcpcd.conf
para adicionar a linha denyinterfaces eth0
para 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 systemd
gerenciamento):
sudo systemctl disable dhcpcd.service
E para o Wheezy mais velho ( System-V
gestã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/interfaces
contrá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