DHCPを有効にした適切なネットワークファイルがあります。
$ cat /etc/systemd/network/20-dhcp.network
[Match]
Name=enp3*
[Network]
DHCP=ipv4
[DHCP]
UseDomains=true
適切な/etc/resolv.confもあります。私はsystemd-resolvdデーモンを使用していません(それを使用しようとしたが、とにかく役に立たなかったため、それは何の関係もないかもしれません)。 DHCPクライアントを手動で実行して動作させる必要がある理由はありますか?
2つのネットワークファイルがあることがわかりました。 Arch Linuxのsystemd-networkdのドキュメント( https://wiki.archlinux.org/index.php/systemd-networkd#Wireless_adapter )に従い、1つのネットワークファイルを作成しました。
/etc/systemd/network/25-wireless.network
[Match]
Name=wlp2s0
[Network]
DHCP=ipv4
そして、それは機能しています。
人々が気付いていない場合のために-systemd-networkd
には独自の組み込みDHCPクライアント実装が含まれているため、外部DHCPクライアントは他で設定しない限り起動されません。
systemd-networkd manページで説明されているように、構成はいくつかの構成ファイルによって制御されます。 Ubuntu18.04では、ネットワーク構成(/{lib,etc,run}/netplan/*.yaml
)は netplan によって制御されるようになり、systemd-networkd(/{lib,etc,run}/systemd/network/
)の構成ファイルが生成されます。
man systemd.network
を読むと、.network
の/etc/systemd/network
ファイルはsystemd-networkd
によって制御されているように聞こえます。ファイルが読み取られていない場合は、systemd
のこの部分を使用していない可能性があります。
たとえば、Ubuntu 16.04デスクトップでは、systemd-networkd
が使用されていないことがわかります。
systemctl status systemd-networkd
●systemd-networkd.service-ネットワークサービスのロード:ロード済み(/lib/systemd/system/systemd-networkd.service;無効、ベンダープリセット:有効)アクティブ:非アクティブ(デッド)ドキュメント:man:systemd-networkd.service(8 )
代わりに、NetworkManager
サービスが実行されています。そのため、その場合、NetworkManagerを介してDHCPクライアントを設定するか、NetworkManagerを停止して無効にし、systemd-networkd
を起動して有効にする必要があります。