如何从命令行连接到 WiFi?

cmo*_*cmo 184 panel command-line network-manager wireless

其他帖子似乎是从命令行解决更复杂的网络连接问题。

Unity 面板网络指示器/按钮有时响应不佳 - 即使我单击“断开连接”,它也会不断尝试连接到网络,诸如此类。

所以我想通过命令行进行控制。反正我不喜欢 GUI。

有没有一些简单的命令行工具可以执行以下操作?

wifi connect MyNetworkNameA
wifi disconnect
wifi connect MyNetworkNameB
Run Code Online (Sandbox Code Playgroud)

use*_*.dz 238

我认为您想继续使用托管接口(通过 NetworkManager)。nmcli是一个用于控制 NetworkManager 的命令行工具。

只要改变<WifiInterface><WiFiSSID><WiFiPassword>在下面的命令以反映您的设置。如果 WiFi 信息已保存,则使用<SavedWiFiConn>保存在 NetworkManager 中的连接名称的更简单方法。

Ubuntu 16.04

##disconnect
nmcli d disconnect <WifiInterface>

##connect
nmcli d connect <WifiInterface>
Run Code Online (Sandbox Code Playgroud)

其它的办法:

##disconnect
nmcli c down <SavedWiFiConn>

##connect
nmcli c up <SavedWiFiConn>
Run Code Online (Sandbox Code Playgroud)

Ubuntu 15.10 及之前版本

##disconnect
nmcli d disconnect iface <WifiInterface>

##connect
nmcli d wifi connect <WiFiSSID> password <WiFiPassword> iface <WifiInterface>
Run Code Online (Sandbox Code Playgroud)

其它的办法:

##disconnect:
nmcli c down id <SavedWiFiConn>

##connect:
nmcli c up id <SavedWiFiConn>
Run Code Online (Sandbox Code Playgroud)

如果您的密码没有被自动识别,请输入:

nmcli -a c up <SavedWiFiConn>
Run Code Online (Sandbox Code Playgroud)

参考: man nmcli

  • 要保存连接设置:`sudo nmcli dev wifi con "SSID_NAME" password PASSWORD "CONFIG_NAME"` 要自动查找您保存的连接设置:`nmcli c` (6认同)
  • @kirill_igum ,抱歉迟到了安静忙碌,您可以使用 `cron` 使用 `iwlist wlan0 scan` 或 `nmcli d wifi list` 来安排 wifi 扫描,然后使用 `nmcli ` 连接到相应的 wifi 网络,具体取决于您的需要。 (2认同)

Cir*_*郝海东 113

nmtui ncurses 解决方案

很棒的交互式 ncurses 网络管理器选项:

nmtui
Run Code Online (Sandbox Code Playgroud)

如果由于某种原因没有安装,Debian 软件包是:

sudo apt install network-manager
Run Code Online (Sandbox Code Playgroud)

nm-applet(默认的顶部栏图标)和位于相同的包中nm-cli,因此可以广泛使用。

截屏:

在此处输入图片说明

在 Ubuntu 17.10 中测试。

  • 这是一个比 IMO 之上的更直观的解决方案。除非您想了解 Linux/Unix 如何连接到 WiFi,否则这似乎是理想的选择并按 Enter 解决方案。在 Ubuntu 18 上运行良好 (5认同)
  • 也适用于 Ubuntu 16.01,很酷的解决方案! (3认同)
  • 这在 Ubuntu 18.04 上“刚刚工作” (2认同)

小智 23

如果您的 wi-fi 接入点已保存,它将自动连接。使用更简单的命令打开或关闭无线:

nmcli nm wifi on
nmcli nm wifi off
Run Code Online (Sandbox Code Playgroud)

在较新版本上:

nmcli radio wifi on
nmcli radio wifi off
Run Code Online (Sandbox Code Playgroud)

有关参考,请参阅man nmcli

  • 你如何让NM在启动时自动启用wifi?每次我重新启动时,网络管理器都会在禁用 wifi 的情况下启动。 (2认同)

Bor*_*ris 9

如果您想连接到一个名为 PrettyFlyForAWiFi-5G

nmcli -a d wifi connect PrettyFlyForAWiFi-5G
Run Code Online (Sandbox Code Playgroud)

-a(或--ask) 表示它会要求您输入密码。如果您重新启动计算机,连接将被保存并且应该自动连接。

您可以附加password <your password>到末尾(文字password后跟实际密码)

nmcli d wifi connect PrettyFlyForAWiFi-5G password 12345678
Run Code Online (Sandbox Code Playgroud)

但可能unset HISTFILE事先运行,这样您的 WiFi 密码就不会保存到您的~/.bash_history文件中。


要查看您周围的所有 WiFi 网络(--rescan yes可选,如果没有它,网络列表可能长达 30 秒)

nmcli d wifi list --rescan yes
Run Code Online (Sandbox Code Playgroud)

这将输出类似

IN-USE  SSID                         MODE   CHAN  RATE        SIGNAL  BARS  SECURITY
        PrettyFlyForAWiFi-5G         Infra  44    405 Mbit/s  59      ???_  WPA2
        PrettyFlyForAWiFi            Infra  6     195 Mbit/s  41      ??__  WPA1 WPA2
Run Code Online (Sandbox Code Playgroud)

忘记连接(在您运行后保存nmcli -a d wifi connect <name>

nmcli c delete PrettyFlyForAWiFi-5G
Run Code Online (Sandbox Code Playgroud)

查看所有已保存连接的列表

nmcli c
Run Code Online (Sandbox Code Playgroud)

您可以使用nmcli connection代替nmcli c <whatever>nmcli device代替nmcli d

nmcliNetworkManager的命令行界面(它是GNOME 的一部分,Ubuntu 的默认桌面环境)并且已经安装在 Ubuntu 上。

不要忘记设置您的国家/地区代码以使用完美的法规:

sudo iw reg set <2 letter country code>

sudo nano /etc/default/crda 
Run Code Online (Sandbox Code Playgroud)

  • 使用 nmcli 时,如果密码输入错误,则会弹出窗口重新询问密码。您知道是否可以禁用此功能?尝试在非交互式脚本中使用 nmcli 时非常烦人...... (2认同)