Pregunta 1.) Lo siento, parece que no entendiste algunas cosas.
dhcpcd
es un cliente de DHCP daemon, que normalmente inicia NetworkManager o ifupdown
, no directamente por systemd
. Es lo que se encargará de la asignación de la dirección IP para su wlan0
.
Tu puedes usa dhcpcd
como iniciado por systemd
si lo desea, sin embargo, eso requerirá deshabilitar toda la lógica de configuración de la interfaz de red normal (es decir, /etc/network/interfaces
debe estar vacío de líneas que no sean comentarios) de la distribución y reemplazarlo con su propio script personalizado cuando sea necesario. Eso es solo para usos especiales; si no está absolutamente seguro de que debe hacerlo, no debe hacerlo.
dhcpcd
nunca entregará direcciones IP a otros hosts. Esta parte que agregaste a dhcpcd.conf
parece que pertenecería al archivo de configuración del servidor DHCP de ISC demonio, dhcpd
(sí, es solo una diferencia de una letra) en su lugar:
host Accountant {
hardware ethernet 10:60:4b:68:03:21;
fixed-address 192.168.2.83;
}
host Accountant1 {
hardware ethernet 00:0c:29:35:95:ed;
fixed-address 192.168.2.66;
}
host Accountant3 {
hardware ethernet 30:85:A9:1B:C4:8B;
fixed-address 192.168.2.70;
}
Pero si estás siguiendo el tutorial de YouTube que mencionaste, es posible que ni siquiera tengas dhcpd
instalado, desde dnsmasq
se supone que debe hacer ese trabajo.
Por lo que puedo decir, la sintaxis equivalente para dnsmasq.conf
sería:
dhcp-host=10:60:4b:68:03:21,192.168.2.83,Accountant
dhcp-host=00:0c:29:35:95:ed,192.168.2.66,Accountant1
dhcp-host=30:85:A9:1B:C4:8B,192.168.2.70,Accountant3
Descargo de responsabilidad:en realidad no he usado dnsmasq
, por lo que esto se basa en buscar rápidamente en Google su página de manual.
Pregunta 2.) En el tutorial que mencionaste, dnsmasq
se suponía que actuaría como un servidor DHCP en eth0
. No dijiste nada al respecto, así que no sé si estaba funcionando o no. De lo contrario, el único cliente que siempre obtenía la misma IP podría haber estado simplemente recurriendo a una concesión de DHCP antigua recibida anteriormente que aún no había caducado. Sí, los clientes de DHCP pueden almacenar una concesión de DHCP de forma persistente y seguir utilizándola si una red no parece tener un servidor DHCP en funcionamiento disponible.
Pregunta 3.):/etc/network/interfaces
es un archivo de configuración de interfaz de red estilo Debian/Ubuntu clásico. Utilice man interfaces
para ver la documentación al respecto, o mira aquí.
En Debian, *Ubuntu, Raspbian, etc., NetworkManager tendrá un complemento que leerá /etc/network/interfaces
pero no escribir a ella.
Si las herramientas de configuración de NetworkManager como nmcli
, nmtui
o las herramientas de configuración de NetworkManager basadas en GUI del entorno de escritorio de su elección, la configuración se guardaría en archivos en /etc/NetworkManager/system-connections/
directorio en su lugar.
Si NetworkManager no está instalado, el /etc/network/interfaces
el archivo es utilizado por el ifupdown
paquete, que incluye los comandos ifup
y ifdown
. El paquete también incluye un script de inicio del sistema que ejecutará ifup -a
en el arranque, habilitando todas las interfaces de red que tienen auto <interface name>
en /etc/network/interfaces
. También hay una regla udev que ejecutará ifup <interface name>
si un controlador para una nueva interfaz de red se carga automáticamente y /etc/network/interfaces
tiene un allow-hotplug <interface name>
línea para ello.
Encontré la razón de este "error".
dhcpcd
utiliza algún tipo de "protección para principiantes/novatos", lo que garantiza una forma segura de manejar la administración de la red, en caso de que algún "novato/novato" intente usar ambos dhcpcd
y /etc/interfaces
.
dhcpcd
comprueba el /etc/interfaces
con el siguiente script de shell /usr/lib/dhcpcd5/dhcpcd
:
#!/bin/sh -e
DHCPCD=/sbin/dhcpcd
INTERFACES=/etc/network/interfaces
if grep -q -E "^[[:space:]]*iface[[:space:]]*.*[[:space:]]*inet[[:space:]]*(dhcp|static)" \
$INTERFACES; then
echo "Not running dhcpcd because $INTERFACES"
echo "defines some interfaces that will use a"
echo "DHCP client or static address"
exit 6
fi
exec $DHCPCD [email protected]
Simplemente alterné la línea
if grep -q -E "^[[:space:]]*iface[[:space:]]*.*[[:space:]]*inet[[:space:]]*(dhcp|static)" \
eliminando el |static
argumento, a
if grep -q -E "^[[:space:]]*iface[[:space:]]*.*[[:space:]]*inet[[:space:]]*(dhcp)" \
y ajustó la última línea de eco a:
echo "DHCP client"
PD asegúrese de agregar un denyinterfaces "NAME OF YOUR STATIC INTERFACE, WHICH SHALL BE CONTROLLED ONLY BY /etc/interfaces"
, por ejemplo denyinterfaces eth0
a tu /etc/dhcpcd.conf
.