如何从Ubuntu 16.04上的终端连接WiFi

时间:2020-03-05 15:31:54  来源:igfitidea点击:

现在是互联网连接的最受欢迎的方式,在办公室,家庭,餐馆等是最受欢迎的。
本教程旨在帮助那些希望从Ubuntu 16.04的终端连接WiFi的人。
无论我们是使用桌面版还是Ubuntu的服务器版本无关紧要。

唯一的要求是:

  • 工作无线卡
  • 互联网连接安装一些包
  • 互动shell会话

我们可以从终端连接无线网络有两种常见方式。
这些都是:

  • 使用iwconfig命令
  • 使用WPasupplicant方法

方法1:使用iwconfig命令

我们可以通过以下步骤配置Ubuntu来连接到WiFi。
如果我们不知道WiFi设备的名称,请使用:

$ip link sho | grep w
2: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000

打开终端并键入ifconfig接口,然后按Enter键。

$sudo ifconfig wlan0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
 inet 192.168.0.16 netmask 255.255.255.0 broadcast 192.168.0.255
 inet6 fe80::557e:6563:6f86:f8b2 prefixlen 64 scopeid 0x20<link>
 ether e4:a7:a0:ef:27:d9 txqueuelen 1000 (Ethernet)
 RX packets 4025786 bytes 5253861542 (4.8 GiB)
 RX errors 0 dropped 0 overruns 0 frame 0
 TX packets 2997242 bytes 563513781 (537.4 MiB)
 TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

默认情况下,此命令将无线卡打开。
如果无线卡有不同的名称,则用正确的名称替换WLAN0。
既然该卡已打开,我们可以通过指定essid名称来连接到WiFi网络:

$iwconfig wlan0 essid <name> key <password>

将<name>替换为访问点的实际名称,以及无线网络的实际安全密钥的密码。
如果无线网络不需要安全密钥,请不要输入密钥密码。
只需使用:

$iwconfig wlan0 essid <name>

对于ASCII密码,请使用:

$iwconfig wlan0 essid <name> key s:<password>

现在确认我们已连接。
我们可以手动请求IPv4地址。

$dhclient wlan0

然后尝试检查IP并尝试在外面弯曲。

$ip addr
$ping 8.8.8.8

方法2:使用wpasupplicant

WPA_Supplicant是一个支持WEP,WPA和WPA2的跨平台请求者(IEEE 802.11i/RSN(鲁棒安全网络))。
它适用于台式机,笔记本电脑和嵌入式系统。
对于此方法,我们首先需要安装WPASupplicant包,其中包括主程序WPA_Supplicant,密码工具WPA_PASPHRASE和文本前端WPA_CLI

$sudo apt-get install wpasupplicant

此程序包将提供WPA_Supplicant命令,我们将用于管理我们的无线网络。
配置文件是/etc/wpa_supplicant.conf。

# cat /etc/wpa_supplicant.conf
network={
 ssid="ssid_name"
 psk="password"
}

我们可以从CLI生成基本配置:

# wpa_passphrase MYSSID passphrase > /etc/wpa_supplicant.conf

现在重新扫描可用设备:

# iwlist scan

确保我们可以看到我们打算连接的无线网络。
现在开始wpa_supplicant:

# wpa_supplicant -B -i interface -c /etc/wpa_supplicant.conf
Successfully initialized wpa_supplicant
....

常用的参数是:

-b叉入背景。
-c文件名到配置文件的路径。
-i interface界面侦听。
-D驱动程序可选地指定要使用的驱动程序。
有关支持的驱动程序列表,请参阅WPA_Supplicant-H的输出。
NL80211是当前标准,但并非所有无线芯片的模块都支持它。

使用WPA_CLI.

此时运行:

# wpa_cli

这将呈现一个交互式提示(>),其具有标签完成和完成命令的描述。
在WPA_CLI工作时要注意的一些重要命令包括:

  • 扫描可用接入点
> scan
<3>CTRL-EVENT-SCAN-STARTED 
<3>CTRL-EVENT-SCAN-RESULTS 
...
  • 列出可用的访问点
> scan_results
bssid/frequency/signal level/flags/ssid
11:22:33:44:55:66 2462 -33 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS] MYSSID1
00:11:22:33:44:55 2412 -73 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS] MYSSID2
...

要与MySSID关联,请添加网络,设置凭据并启用它:

> add_network
0
> set_network 0 ssid "MYSSID1"
> set_network 0 psk "passphrase"
> enable_network 0
<2>CTRL-EVENT-CONNECTED - Connection to 11:22:33:44:55:66 completed (reauth) [id=0 id_str=]

对于没有身份验证的访问点,使用:

> set_network 0 key_mgmt NONE

最后,在配置文件中保存此网络:

> save_config
OK

为了获得DHCP租约,首先释放我们仍然持有的租约(如root):

# dhclient -r

并要求新地址

# dhclient interface

我们现在应该通过从CLI连接的接入点进行工作互联网连接。
该方法适用于使用无线卡的Ubuntu分布或者服务器的最小安装。
这些方法易于脚本,努力,我们可以在重新启动时编写一个Cron作业,它连接到它。