由于深奥的原因,我的服务器只能通过 WiFi 访问网络。
通过将必要的 dpkg 文件复制到可移动驱动器上,我成功安装了 wpa_supplicant。
让我感到烦恼的是,在其他发行版上,可以通过编辑 来完成配置/etc/wpa_supplicant/wpa_supplicant.conf
。但这在 Ubuntu 上不起作用,因为 systemd 服务文件启动 wpa_supplicant 时没有指定配置文件。-c
其参数中没有指定。
即便是Ubuntu 手册页说启动它的最常见方式是通过指定一个配置文件......
在大多数常见情况下,wpa_supplicant 是这样启动的:
wpa_supplicant -B -c/etc/wpa_supplicant.conf -iwlan0
因为这是一个服务器,所以没有安装 GUI,而且我没有使用网络管理器(据我所知)
我当然已经确认关闭 systemd 服务并从命令行手动启动守护进程是可行的。我当然可以修改 .service 文件。但这感觉像是错误的解决方案。
谁能告诉我如何在 Ubuntu 服务器上配置 wpa_supplicant?
答案1
无需手动配置 wpa_supplicant。
最新版本的 Ubuntu 服务器中的网络由 netplan 管理。检查 netplan 文件的名称:
ls /etc/netplan
我假设您找到的文件的名称是 01-netcfg.yaml。如果不是 01-netcfg.yaml,请在此处替换您的详细信息。
我们将修改文件以指定您的详细信息:
sudo nano /etc/netplan/01-netcfg.yaml
将文件更改为:
network:
version: 2
renderer: networkd
wifis:
wlx-----:
dhcp4: yes
dhcp6: yes
access-points:
"network_ssid_name":
password: "**********"
请在此处用您的无线接口名称替换 wlx----。请注意,接入点名称和密码括在引号“中”。间距、缩进等至关重要,请仔细校对两遍。
保存(Ctrl+o 然后按 Enter)并退出(Ctrl+x)文本编辑器 nano。然后执行以下操作:
sudo netplan generate
sudo netplan apply
如果您更喜欢服务器的静态 IP 地址,您可以在此处找到模板:
cat /usr/share/doc/netplan/examples/wireless.yaml
答案2
在 Ubuntu 20.04 中,wpa_supplicant 使用 DBus 和 unix 域套接字(类似管道)来配置守护进程。请注意 wpa_supplicant 命令行上的“-u”和“-O”选项。这是通过安全设计和系统效率实现的,因为它不允许网络连接的密码暴露给系统用户。这也为 Gnome 提供了一个更高效的编程接口来配置网络设置,因为套接字文件将配置间接映射到共享内存,而不是写入文本文件供所有其他应用程序解析(即更改设置时延迟更少,进程之间协调更好)。
要解决所述问题,您可以采取几种方法。这只是您想要对设置进行多少管理的问题。您可以:为 wpa_supplicant 创建另一个配置文件(即直接方法);修改各个网络设置的 Netplan/yaml 文件(即间接方法);或者您可以编写一个利用 DBus 编程接口的脚本(即可维护方法,因为它不依赖于其他工具的开发)。前两个是微不足道的解决方案,但如果您学会实施最后一个建议,您将获得更多的掌握并可能赚更多的钱。祝你好运!