Descobri que eu tinha dois arquivos de rede. Eu segui a documentação do archid systemd-networkd ( link ), e criei um arquivo de rede:
/etc/systemd/network/25-wireless.network
[Match]
Name=wlp2s0
[Network]
DHCP=ipv4
E está funcionando.
Eu tenho o arquivo de rede apropriado com o DHCP ativado.
$ cat /etc/systemd/network/20-dhcp.network
[Match]
Name=enp3*
[Network]
DHCP=ipv4
[DHCP]
UseDomains=true
Eu também tenho o /etc/resolv.conf apropriado. Eu não estou usando o daemon systemd-resolvd (e pode não ter nada a ver com isso, porque eu tentei usá-lo, mas não ajudei de qualquer maneira). Alguma idéia de por que o cliente DHCP precisa ser executado manualmente para que ele funcione?
Descobri que eu tinha dois arquivos de rede. Eu segui a documentação do archid systemd-networkd ( link ), e criei um arquivo de rede:
/etc/systemd/network/25-wireless.network
[Match]
Name=wlp2s0
[Network]
DHCP=ipv4
E está funcionando.
Apenas no caso de as pessoas não saberem - networkd
agora contém sua própria implementação de cliente DHCP embutida, para que nenhum cliente DHCP externo seja iniciado, a menos que eles estejam configurados em outro lugar.
A partir da leitura de man systemd.network
, parece que os arquivos .network
em /etc/systemd/network
são controlados por systemd-networkd
. Se os arquivos não estiverem sendo lidos, pode ser que você não esteja usando essa parte de systemd
.
Por exemplo, em uma área de trabalho do Ubuntu 16.04, posso ver que systemd-networkd
não está em uso:
systemctl status systemd-networkd
● systemd-networkd.service - serviço de rede Carregado: carregado (/lib/systemd/system/systemd-networkd.service; desativado; predefinido do fornecedor: ativado) Ativo: inativo (morto) Documentos: man: systemd-networkd.service (8)
Em vez disso, o serviço NetworkManager
está sendo executado. Assim, um cliente DHCP seria configurado através do NetworkManager nesse caso, ou o NetworkManager precisa ser interrompido e desativado, e systemd-networkd
precisa ser iniciado e ativado.