在运行 Gentoo 的笔记本电脑上,我设置了以下内容:
- 内核及所有必要的设置和模块
- WPA_请求者
- 系统化
- Systemd-网络化
几乎所有事情都按预期进行,与我的 WiFi 的连接已建立且稳定。唯一的问题是,我无法让 systemd-networkd 充当 DHCP 客户端来接收有效的 IPv4 地址。
这是我的/etc/systemd/network/50-dhcp.network
:
[Match]
Name=*
[Network]
DHCP=yes
据我了解,这将触发每个网络接口的 DHCP 调用。此外,不需要任何其他 DHCP 客户端软件(请参阅这里例如)。
所以,如果我不安装任何额外的软件,连接到 WiFi 后就不会发生任何事情。ifconfig
显示:
wlp59s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether xx:xx:xx:xx:xx:xx txqueuelen 1000 (Ethernet)
RX packets 280 bytes 21542 (21.0 KiB)
RX errors 0 dropped 232 overruns 0 frame 0
TX packets 8 bytes 2304 (2.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
日志中也没有什么有用的东西,但是有这样一行:
... wlp59s0: Configuring with /etc/systemd/network/50-dhcp.network
我接下来尝试安装 DHClient。它不会自动运行,但如果我仅发出dhclient
,它就会运行,并且我会获得所需范围内的 IP 地址。日志显示:
... dhclient[407]: DHCPREQUEST for 192.168.0.35 on wlp59s0 to 255.255.255.255 port 67
... dhclient[407]: DHCPDISCOVER on enp58s0u1u2 to 255.255.255.255 port 67 interval 3
... dhclient[407]: DHCPACK of 192.168.0.35 from 192.168.0.1
... dhclient[407]: bound to 192.168.0.35 -- renewal in 348891 seconds.
... dhclient[407]: Can't create /var/run/dhcp/dhcpclient.pid: No such file or directory
... dhclient[407]: DHCPDISCOVER on enp58s0u1u2 to 255.255.255.255 port 67 interval 6
我希望连接到 WiFi 后自动发生这种情况。你能告诉我我的错误在哪里吗?我搜索了很长时间,但没有找到任何线索。
还有一点需要注意:如果我安装 dhcpcd(而不是/与 dhclient 一起安装),实际上我是自动获取 IP 地址,但该 IP 地址似乎是随机创建的,不属于我的网络。日志显示:
... systemd-networkd[234]: wlp59s0: Configuring with /etc/systemd/network/50-dhcp.network
...
... dhcpcd[343]: wlp59s0: connected to Access Point: my.wlan.ssid
... dhcpcd[343]: wlp59s0: IAID d0:fe:1b:39
... dhcpcd[343]: wlp59s0: soliciting a DHCP lease
... dhcpcd[343]: wlp59s0: probing for an IPv4LL address
... dhcpcd[343]: wlp59s0: using IPv4LL address 169.254.211.13
... dhcpcd[343]: wlp59s0: adding route to 169.254.0.0/16
(但是,如前所述,我认为我不需要任何额外的 DHCP 客户端?无论如何,DHCPCD 的结果不是理想的。)