
Tengo un servidor Linux (Rasperry Pi que usa Raspbian como sistema operativo) que debería usar solo IP estática.
Sin embargo, noté que también obtuvo la IP del servidor DHCP (la IP proporcionada por DHCP es 192.168.111.2
). Según la configuración de red, el servidor solo debe utilizar IP estática ( 192.168.111.100
).
Los contenidos 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
A pesar de usar una configuración estática, puedo conectar SSH al dispositivo también usando la IP proporcionada por DHCP. También parece que ntpd
está utilizando la IP incorrecta además de la correcta.
Salida de 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
Según ifconfig
la IP 192.168.111.2
no se utiliza:
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
muestra que tengo un demonio DHCP ejecutándose:
root 2000 1 0 Oct07 ? 00:00:06 /sbin/dhcpcd
¿Cómo desactivo el DHCP
inicio del demonio y me aseguro de que mi servidor use solo estático?
Respuesta1
Este escenario suena realmente extraño porque su configuración debería funcionar como lo describe (y esperar que funcione) si hay una IP estática configurada en /etc/network/interfaces
. Dicho eso,esta discusión en el sitio oficial de Raspberry Pise centra en el problema con el usuario "rpdom" que indica esto en la publicación de "jueves 28 de mayo de 2015 a las 6:21 am":
Esto sucede en las últimas actualizaciones. Se debe a que el nuevo cliente dhcp ignora lo que hacen los archivos de interfaz y además hace lo suyo... me parece una locura. Vería cómo reconfigurar el cliente dhcp (no recuerdo cuál es ni cómo hacerlo, todavía estoy en el anterior que funciona para mí), deshabilitarlo o eliminarlo (si es posible).
Más profundamente en el hilo sugiere el usuario "KLL"la siguiente otra publicaciónen su respuesta de fecha “lunes 10 de agosto de 2015 12:59 p. m.”. Según “knute”:
En algún momento, una actualización modificó mi
/etc/network/interfaces
archivo con la palabra "manual" en lugar de dhcp o estática y terminé con dos direcciones IP, la estática y una dirección dhcp. Finalmente tuve tiempo de jugar con él y descubrí quedhcpcd5
funciona de manera diferente a todo lo que contenía antes. Para obtener solo su dirección estática, no la modifique/etc/network/interfaces
. Vuelva a colocar la palabra "manual" si la cambió y en su lugar modifíquela/etc/dhcpcd.conf
como se muestra en el ejemplo de los documentos.
Entonces la idea es que dhcpcd5
el comportamiento de 's haya cambiado en una de las actualizaciones. Y la sugerencia para resolver el problema es eliminar cualquier cambio /etc/network/interfaces
y, en su lugar, ajustar la configuración /etc/dhcpcd.conf
para obtener una dirección IP estática; configuración de ejemplo a continuación:
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
dhcpcd.conf
Puede encontrar más información sobre el contenido deen la página de manual oficial para ello.
Dicho esto, otra idea es conservar la configuración que tiene /etc/network/interfaces
pero luego editarla /etc/dhcpcd.conf
para agregar la línea denyinterfaces eth0
que le indique al demonio DHCP que la ignore por completo eth0
. Cualquiera de las soluciones debería funcionar, pero una solución podría ser más preferible dependiendo de sus necesidades/requisitos generales de red.
Respuesta2
Lo que funcionó para mí es usar /etc/network/interfaces como en la pregunta original y simplemente eliminar el cliente dhcp:
apt-get remove dhcpcd5 isc-dhcp-client isc-dhcp-common
Respuesta3
La forma preferible de desactivar cualquier servicio como dhcpcd es utilizar las funciones de administración del sistema. Tendrás que reiniciar para que surta efecto, a menos que también detengas el servicio.
Para Jessie (que usa systemd
administración):
sudo systemctl disable dhcpcd.service
Y para los mayores Wheezy ( System-V
administración):
sudo update-rc.d dhcpcd disable
Pero si lo desactiva, debe asegurarse de tener una configuración de IP estática; de /etc/network/interfaces
lo contrario, sus interfaces no obtendrán una dirección IP.
Respuesta4
Aquí hay un resumen de lo que necesitaba hacer para Raspbian Jessie 2017-01-11:
Edite /etc/network/interfaces y agregue la sección de dirección estática, elimine otras referencias a la interfaz estática (eth0 en este caso). La línea automática es importante, de lo contrario la interfaz no se iniciará en el arranque:
auto eth0
iface eth0 inet static
address 192.168.44.17
netmask 255.255.255.0
gateway 192.168.44.27
A continuación, deshabilite dhcpcd y habilite la red estándar:
- Deshabilitar dhcpcd:
systemctl disable dhcpcd.service
- Habilitar redes:
systemctl enable networking
- reiniciar
Raspbian Jessie a partir de la versión 2017-01-11 no parece utilizar la red de systemd