mirror of
https://github.com/LCTT/TranslateProject.git
synced 2024-12-26 21:30:55 +08:00
Merge pull request #19628 from wxy/20200909-How-to-Connect-to-WiFi-from-the-Terminal-in-Ubuntu-Linux
PRF&PUB:20200909 How to Connect to WiFi from the Terminal in Ubuntu Linux
This commit is contained in:
commit
9c0b1bace3
@ -1,47 +1,45 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (geekpi)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-12629-1.html)
|
||||
[#]: subject: (How to Connect to WiFi from the Terminal in Ubuntu Linux)
|
||||
[#]: via: (https://itsfoss.com/connect-wifi-terminal-ubuntu/)
|
||||
[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/)
|
||||
|
||||
如何在 Ubuntu Linux 中在终端连接 WiFi?
|
||||
如何在 Linux 终端中连接 WiFi?
|
||||
======
|
||||
|
||||
_**在本教程中,你将学习如何在 Ubuntu 中从终端连接到无线网络。如果你在使用 Ubuntu 服务器时,无法访问常规的[桌面环境][1],这将对你非常有帮助。**_
|
||||
> 在本教程中,你将学习如何在 Ubuntu 中从终端连接到无线网络。如果你在使用 Ubuntu 服务器时,无法访问常规的[桌面环境][1],这将对你非常有帮助。
|
||||
|
||||
我的家用电脑主要使用桌面 Linux。我也有多台 Linux 服务器用于托管 It's FOSS 和相关网站以及开源软件,如 [Nextcloud][2]、[Discourse][3]、Ghost、Rocket Chat 等。
|
||||
我的家用电脑主要使用桌面 Linux。我也有多台 Linux 服务器用于托管网站以及开源软件,如 [Nextcloud][2]、[Discourse][3]、Ghost、Rocket Chat 等。
|
||||
|
||||
我使用 [Linode][4] 在云端几分钟内快速部署 Linux 服务器。但最近,我在我的 Raspberry Pi 上安装了 [Ubuntu 服务器][5]。这是我第一次在物理设备上安装服务器,我不得不做一些额外的事情来通过命令行将 Ubuntu 服务器连接到 WiFi。
|
||||
我可以使用 [Linode][4] 在云端几分钟内快速部署 Linux 服务器。但最近,我在我的树莓派上安装了 [Ubuntu 服务器][5]。这是我第一次在物理设备上安装服务器,我不得不做一些额外的事情来通过命令行将 Ubuntu 服务器连接到 WiFi。
|
||||
|
||||
在本教程中,我将展示在 Ubuntu Linux 中使用终端连接到 WiFi 的步骤。你应该:
|
||||
|
||||
* 不要害怕使用终端编辑文件。
|
||||
* 知道 wifi 接入点名称 (SSID) 和密码。
|
||||
|
||||
|
||||
|
||||
### 在 Ubuntu 中从终端连接到 WiFi
|
||||
|
||||
![][6]
|
||||
|
||||
当你使用 Ubuntu 桌面时,这是很容易的,因为你有图形用户界面,可以很容易地做到这一点。但当你使用 Ubuntu 服务器时就不一样了,因为你只能使用命令行。
|
||||
当你使用 Ubuntu 桌面时,连接到 WiFi 是很容易的,因为你有图形用户界面,可以很容易地做到这一点。但当你使用 Ubuntu 服务器时就不一样了,因为你只能使用命令行。
|
||||
|
||||
Ubuntu 使用 [Netplan][7] 工具来轻松配置网络。在 Netplan 中,你可以创建一个包含网络接口描述的 YAML 文件,然后在 netplan 命令行工具的帮助下,生成所有需要的配置。
|
||||
Ubuntu 使用 [Netplan][7] 工具来轻松配置网络。在 Netplan 中,你可以创建一个包含网络接口描述的 YAML 文件,然后在 `netplan` 命令行工具的帮助下,生成所有需要的配置。
|
||||
|
||||
让我们看看如何使用 Netplan 从终端连接到无线网络。
|
||||
|
||||
#### 步骤 1:确定你的无线网络接口名称
|
||||
|
||||
有几种方法可以识别你的网络接口名称。你可以使用 ip 命令、过时的 ipconfig 命令或查看这个文件:
|
||||
有几种方法可以识别你的网络接口名称。你可以使用 `ip` 命令、过时的 `ipconfig` 命令或查看这个文件:
|
||||
|
||||
```
|
||||
ls /sys/class/net
|
||||
```
|
||||
|
||||
这应该会展示所有可用的网络接口(以太网、wifi 和环回)。无线网络接口名称以 “w” 开头,通常命名为类似 wlanX、wlpxyz。
|
||||
这应该会展示所有可用的网络接口(以太网、WiFi 和环回)。无线网络接口名称以 `w` 开头,通常命名类似 `wlanX`、`wlpxyz`。
|
||||
|
||||
```
|
||||
[email protected]:~$ ls /sys/class/net
|
||||
@ -52,11 +50,11 @@ eth0 lo wlan0
|
||||
|
||||
#### 步骤 2:编辑 Netplan 配置文件中的 wifi 接口详细信息
|
||||
|
||||
Netplan 配置文件在 /etc/netplan 目录下。如果你查看这个目录的内容,你应该看到类似 01-network-manager-all.yml 或 50-cloud-init.yaml 等文件。
|
||||
Netplan 配置文件在 `/etc/netplan` 目录下。如果你查看这个目录的内容,你应该看到类似 `01-network-manager-all.yml` 或 `50-cloud-init.yaml` 等文件。
|
||||
|
||||
如果是 Ubuntu 服务器,你应该有 loud-init 文件。如果是台式机,应该是 network-manager 文件。
|
||||
如果是 Ubuntu 服务器,你应该有 `50-cloud-init.yaml` 文件。如果是桌面计算机,应该是 `01-network-manager-all.yml` 文件。
|
||||
|
||||
Linux 桌面上的 Network Manager 允许你选择一个无线网络。你可以在它的配置中对 wifi 接入点硬编码。这可以在自动掉线的情况下(比如挂起)时帮助到你。
|
||||
Linux 桌面计算机的 Network Manager 允许你选择一个无线网络。你可以在它的配置中硬编码写入 WiFi 接入点。这可以在自动掉线的情况下(比如挂起)时帮助到你。
|
||||
|
||||
不管是哪个文件,都可以打开编辑。我希望你对 Nano 编辑器有一点[熟悉][8],因为 Ubuntu 预装了它。
|
||||
|
||||
@ -64,9 +62,9 @@ Linux 桌面上的 Network Manager 允许你选择一个无线网络。你可以
|
||||
sudo nano /etc/netplan/50-cloud-init.yaml
|
||||
```
|
||||
|
||||
YAML 文件对空格、缩进和对齐方式非常敏感。不要使用制表符,在看到缩进的地方使用4 个(或 2 个,以 YAML 文件中已经使用的为准)空格代替。
|
||||
YAML 文件对空格、缩进和对齐方式非常敏感。不要使用制表符,在看到缩进的地方使用 4 个空格(或 2 个,以 YAML 文件中已经使用的为准)代替。
|
||||
|
||||
基本上,你需要添加以下几行,引号中是接入点名称 (SSID) 和密码(通常):
|
||||
基本上,你需要添加以下几行,引号中是接入点名称(SSID) 和密码(通常):
|
||||
|
||||
```
|
||||
wifis:
|
||||
@ -78,7 +76,7 @@ wifis:
|
||||
password: "WiFi_password"
|
||||
```
|
||||
|
||||
再说一次,保持我所展示的对齐方式,否则 YAML 文件不会被解析,它会抛出一个错误。
|
||||
再说一次,保持我所展示的对齐方式,否则 YAML 文件不能被解析,它会抛出一个错误。
|
||||
|
||||
你的完整配置文件可能是这样的:
|
||||
|
||||
@ -103,7 +101,7 @@ network:
|
||||
password: "WiFi_password"
|
||||
```
|
||||
|
||||
我觉得很奇怪,尽管有消息说更改不会在实例重启后存在,但它仍然有效。
|
||||
我觉得很奇怪,尽管有消息说更改不会在实例重启后保留,但它仍然可以工作。
|
||||
|
||||
不管怎样,用这个命令生成配置:
|
||||
|
||||
@ -117,13 +115,13 @@ sudo netplan generate
|
||||
sudo netplan apply
|
||||
```
|
||||
|
||||
如果你幸运的话,你应该连上网络。尝试 ping 一个网站或运行 apt 更新命令。
|
||||
如果你幸运的话,你应该连上网络。尝试 `ping` 一个网站或运行 `apt` 更新命令。
|
||||
|
||||
然而,事情可能不会那么顺利,你可能会看到一些错误。如果是这种情况,请尝试一些额外的步骤。
|
||||
|
||||
#### 可能的故障排除
|
||||
|
||||
当你使用 netplan apply 命令时,你有可能在输出中看到类似这样的错误。
|
||||
当你使用 `netplan apply` 命令时,你有可能在输出中看到类似这样的错误。
|
||||
|
||||
```
|
||||
Failed to start netplan-wpa-wlan0.service: Unit netplan-wpa-wlan0.service not found.
|
||||
@ -147,34 +145,34 @@ Traceback (most recent call last):
|
||||
subprocess.CalledProcessError: Command '['systemctl', 'start', '--no-block', 'systemd-networkd.service', 'netplan-wpa-wlan0.service']' returned non-zero exit status 5.
|
||||
```
|
||||
|
||||
可能是 wpa_supplicant 服务没有运行。运行这个命令:
|
||||
可能是 `wpa_supplicant` 服务没有运行。运行这个命令:
|
||||
|
||||
```
|
||||
sudo systemctl start wpa_supplicant
|
||||
```
|
||||
|
||||
再次运行 netplan apply。如果它能解决这个问题,那就太好了。否则,使用下面的命令[关闭 Ubuntu 系统][9]:
|
||||
再次运行 `netplan apply`。如果它能解决这个问题,那就太好了。否则,使用下面的命令[关闭 Ubuntu 系统][9]:
|
||||
|
||||
```
|
||||
shutdown now
|
||||
```
|
||||
|
||||
重新启动 Ubuntu 系统,登录并再次生成和应用 netplan:
|
||||
重新启动 Ubuntu 系统,登录并再次生成和运行 `netplan apply`:
|
||||
|
||||
```
|
||||
sudo netplan generate
|
||||
sudo netplan apply
|
||||
```
|
||||
|
||||
现在可能会显示警告(而不是错误)。这是警告而不是错误。我检查了[正在运行的 systemd 服务][10],发现 netplan-wpa-wlan0.service 已经在运行了。可能是因为它已经在运行了,而且 “netplan apply” 更新了配置文件(即使没有任何改变),所以显示了警告。
|
||||
现在可能会显示警告(而不是错误)。这是警告而不是错误。我检查了[正在运行的 systemd 服务][10],发现 `netplan-wpa-wlan0.service` 已经在运行了。可能是因为它已经在运行了,而且 `netplan apply` 更新了配置文件(即使没有任何改变),所以显示了警告。
|
||||
|
||||
```
|
||||
Warning: The unit file, source configuration file or drop-ins of netplan-wpa-wlan0.service changed on disk. Run 'systemctl daemon-reload' to reload units.
|
||||
```
|
||||
|
||||
这并不重要,你可以通过运行 apt update 来检查网络是否已经正常工作。
|
||||
这并不重要,你可以通过运行 `apt update` 来检查网络是否已经正常工作。
|
||||
|
||||
我希望你能够在本教程的帮助下,在 Ubuntu 中使用命令行连接到 wifi。如果你仍然遇到困难,请在评论区告诉我。
|
||||
我希望你能够在本教程的帮助下,在 Ubuntu 中使用命令行连接到 WiFi。如果你仍然遇到困难,请在评论区告诉我。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
@ -183,7 +181,7 @@ via: https://itsfoss.com/connect-wifi-terminal-ubuntu/
|
||||
作者:[Abhishek Prakash][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
Loading…
Reference in New Issue
Block a user