Otázka 1.) Promiňte, zdá se, že jste pár věcí špatně pochopili.
dhcpcd
je klient DHCP démon, který je normálně spouštěn NetworkManagerem nebo ifupdown
, nikoli přímo systemd
. Je to to, co bude zpracovávat přidělení IP adresy pro váš wlan0
.
můžete použijte dhcpcd
jak začalo systemd
pokud si to však přejete, bude to vyžadovat deaktivaci veškeré běžné logiky konfigurace síťového rozhraní (tj. /etc/network/interfaces
musí obsahovat řádky bez komentářů) distribuce a v případě potřeby je nahradit vlastním skriptem. To je pouze pro speciální použití; pokud si nejste absolutně jisti, že byste to měli udělat, neměli byste.
dhcpcd
nikdy nebude poskytovat IP adresy jiným hostitelům. Tuto část jste přidali do dhcpcd.conf
vypadá, že by patřil do konfiguračního souboru serveru ISC DHCP démon, dhcpd
(ano, je to pouze jednopísmenný rozdíl) místo toho:
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;
}
Ale pokud sledujete výukový program YouTube, který jste zmínil, možná nemáte ani dhcpd
nainstalováno od dnsmasq
má dělat tuto práci.
Pokud mohu říci, ekvivalentní syntaxe pro dnsmasq.conf
by bylo:
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
Prohlášení:Ve skutečnosti jsem dnsmasq
nepoužil , takže je to založeno na rychlém googlování jeho manuálové stránky.
Otázka 2.) V uvedeném tutoriálu dnsmasq
měl fungovat jako DHCP server na eth0
. Nic jsi o tom neřekl, tak nevím, jestli to běželo nebo ne. Pokud ne, jeden klient, který vždy získával stejnou IP, se mohl jednoduše vrátit k dříve přijaté staré zápůjčce DHCP, která ještě nevypršela. Ano, klienti DHCP mohou trvale ukládat zapůjčení DHCP a nadále jej používat, pokud se zdá, že síť nemá k dispozici funkční server DHCP.
Otázka 3.):/etc/network/interfaces
je klasický konfigurační soubor síťového rozhraní ve stylu Debian/Ubuntu. Použijte man interfaces
k zobrazení dokumentace nebo se podívejte sem.
V Debianu, *Ubuntu, Raspbian atd. bude mít NetworkManager zásuvný modul, který bude číst /etc/network/interfaces
ale nepíše k tomu.
Pokud konfigurační nástroje NetworkManager jako nmcli
, nmtui
nebo se použijí konfigurační nástroje NetworkManager založené na grafickém uživatelském rozhraní vašeho zvoleného desktopového prostředí, konfigurace bude uložena do souborů v /etc/NetworkManager/system-connections/
místo toho.
Pokud není nainstalován NetworkManager, /etc/network/interfaces
soubor používá ifupdown
balíček, který obsahuje příkazy ifup
a ifdown
. Balíček také obsahuje spouštěcí skript systému, který spustí ifup -a
při spouštění, povolte všechna síťová rozhraní, která mají auto <interface name>
v /etc/network/interfaces
. Existuje také pravidlo udev, které spustí ifup <interface name>
pokud se automaticky načte ovladač pro nové síťové rozhraní a /etc/network/interfaces
má allow-hotplug <interface name>
řádek pro to.
Našel jsem důvod této "chyby".
dhcpcd
používá jakousi "ochranu noob/nováček", která zaručuje bezpečný způsob manipulace se správou sítě, pokud by se nějaký "noob/nováček" pokusil použít obě dhcpcd
a /etc/interfaces
.
dhcpcd
zkontroluje /etc/interfaces
s následujícím shell-scriptem /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]
Jednoduše jsem střídal linku
if grep -q -E "^[[:space:]]*iface[[:space:]]*.*[[:space:]]*inet[[:space:]]*(dhcp|static)" \
odstraněním |static
argument, k
if grep -q -E "^[[:space:]]*iface[[:space:]]*.*[[:space:]]*inet[[:space:]]*(dhcp)" \
a upravili poslední řádek echa na:
echo "DHCP client"
PS nezapomeňte přidat denyinterfaces "NAME OF YOUR STATIC INTERFACE, WHICH SHALL BE CONTROLLED ONLY BY /etc/interfaces"
, například denyinterfaces eth0
na váš /etc/dhcpcd.conf
.