当前位置: 首页 > 科技观察

如何在Linux终端连接WiFi?

时间:2023-03-15 01:44:38 科技观察

我主要在家用电脑上使用桌面Linux。我还有多个用于托管网站和开源软件(如Nextcloud、Discourse、Ghost、RocketChat等)的Linux服务器。我可以使用linode在几分钟内在云中快速部署一个Linux服务器。但最近,我在我的树莓派上安装了Ubuntu服务器。这是我第一次在物理设备上安装服务器,我不得不做一些额外的事情来通过命令行将Ubuntu服务器连接到WiFi。在本教程中,我将展示在UbuntuLinux中使用终端连接到WiFi的步骤。您应该:不要害怕使用终端来编辑文件。知道wifi接入点名称(SSID)和密码。在Ubuntu中从终端连接到WiFi当您使用Ubuntu桌面时连接到WiFi很容易,因为您有GUI可以很容易地做到这一点。但是用Ubuntu服务器就不一样了,因为只能用命令行。Ubuntu使用Netplan工具轻松配置网络。在Netplan中,您创建一个包含网络接口描述的YAML文件,然后在netplan命令行工具的帮助下生成所有必需的配置。让我们看看如何使用Netplan从终端连接到无线网络。第1步:确定您的无线网络接口名称有多种方法可以确定您的网络接口名称。您可以使用ip命令、过时的ipconfig命令,或查看此文件:ls/sys/class/net这应该会显示所有可用的网络接口(以太网、WiFi和环回)。无线网络接口名称以w开头,通常命名为wlanX、wlpxyz。[emailprotected]:~$ls/sys/class/neteth0lowlan0记下接口名称。您将在下一步中使用它。第2步:在Netplan配置文件中编辑wifi接口详细信息Netplan配置文件位于/etc/netplan目录下。如果您查看此目录的内容,您应该会看到类似01-network-manager-all.yml或50-cloud-init.yaml等文件。如果是Ubuntu服务器,您应该有50-cloud-init.yaml文件。如果是台式电脑,应该是01-network-manager-all.yml文件。用于Linux台式计算机的网络管理器允许您选择无线网络。您可以在其配置中对WiFi接入点进行硬编码。这可以在自动断开连接(例如挂断)的情况下帮助您。无论是哪个文件,都可以打开进行编辑。我希望您对Nano编辑器有点熟悉,因为Ubuntu预装了它。sudonano/etc/netplan/50-cloud-init.yamlYAML文件对空格、缩进和对齐非常敏感。不要使用制表符,而是使用4个空格(或2个,以YAML文件中已使用的那个为准)来代替缩进。基本上,您需要添加以下行,并将接入点名称(SSID)和密码(通常)放在引号中:wifis:wlan0:dhcp4:trueoptional:trueaccess-points:"SSID_name":password:"WiFi_password"我展示的对齐方式,否则无法解析YAML文件,会报错。您的完整配置文件可能如下所示:#Thisfileisgeneratedfrominformationprovidedbythedatasource.Changes#toitwillnotpersistacrossaninstancereboot.Todisablecloud-init's#networkconfigurationcapabilities,writeafile#/etc/cloud/cloud.cfg.d/99-disable-network-config.cfgwiththefollowing:#network:{config:disabled}network:ethernets:eth0:dhcp4:trueoptional:trueversion:2wifis:wlan0:dhcp4:trueoptional:trueaccess-points:"SSID_name":password:"WiFi_password"我觉得很奇怪,尽管有消息说改变不会在实例重新启动时保持不变,但它仍然有效。不管怎样,用这个命令生成配置:sudonetplangenerate如果幸运的话,你应该连接到网络。尝试ping网站或运行aptupdate命令。但是,事情可能不会那么顺利,您可能会看到一些错误。如果是这种情况,请尝试一些额外的步骤。可能的故障排除当您使用netplanapply命令时,您可能会在输出中看到类似这样的错误。Failedtostartnetplan-wpa-wlan0.service:Unitnetplan-wpa-wlan0.servicenotfound.Traceback(mostrecentcallast):File"/usr/sbin/netplan",line23,innetplan.main()File"/usr/share/netplan/netplan/cli/core.py",line50,inmainself.run_command()File"/usr/share/netplan/netplan/cli/utils.py",line179,inrun_commandself.func()File"/usr/share/netplan/netplan/cli/commands/apply.py",line46,inrunself.run_command()File"/usr/share/netplan/netplan/cli/utils.py",line179,inrun_commandself.func()File"/usr/share/netplan/netplan/cli/commands/apply.py",line173,incommand_applyutils.systemctl_networkd('start',sync=sync,extra_services=netplan_wpa)File"/usr/share/netplan/netplan/cli/utils.py",line86,insystemctl_networkdsubprocess.check_call(command)文件"/usr/lib/python3.8/subprocess.py",line364,incheck_callraiseCalledProcessError(retcode,cmd)subprocess.CalledProcessError:Command'['systemctl','start','--no-block','systemd-networkd.service','netplan-wpa-wlan0.service']'returnednon-zeroexitstatus5。也许wpa_supplicant服务没有运行运行这个命令:sudosystemctlstartwpa_supplicant再次运行netplanapply。如果能解决这个问题就好了。否则,使用以下命令关闭Ubuntu系统:shutdownnow重新启动Ubuntu系统,登录并生成并再次运行netplanapply:sudonetplangeneratesudonetplanapply现在可能会显示警告(而不是错误)。这是警告而不是错误。我检查了正在运行的systemd服务,发现netplan-wpa-wlan0.service已经在运行。可能是因为它已经在运行,并且netplanapply更新了配置文件(即使没有任何改变),所以显示了警告。警告:netplan-wpa-wlan0.servicechangedondisk的单元文件、源配置文件或删除插件。运行“systemctldaemon-reload”以重新加载单元。这并不重要,您可以通过运行aptupdate检查网络是否已经正常工作。我希望您能够在本教程的帮助下在Ubuntu中使用命令行连接到WiFi。