从命令行连接到无线网络

我需要编写一个shell脚本,它连接到两个可用的Wi-Fi连接之一。 一个是不安全的连接,另一个是安全连接。 我的问题有两个部分 –

  1. 当我连接到安全连接时,如何从命令行(或通过执行shell脚本)连接到不安全(未加密且无需密码)连接?

    我按照http://www.ubuntugeek.com/how-to-troubleshoot-wireless-network-connection-in-ubuntu.html中的步骤进行了安全连接。 我将所有命令放在脚本中并执行它(我确保接口名称和essid是正确的)

    sudo dhclient -r wlan0 sudo ifconfig wlan0 up sudo iwconfig wlan0 essid "UAPublic" sudo iwconfig wlan0 mode Managed sudo dhclient wlan0 

    但没有任何反应:我没有与当前网络断开连接并连接到新网络。

  2. 当我想连接到安全的Wi-Fi网络时,我从https://askubuntu.com/a/138476/70665了解到我需要使用wpa_supplicant 。 但是当我通过UI连接时,我在界面中输入了很多细节

    • 安全:wpa和wpa2企业
    • 身份validation:PEAP
    • CA证书:Equifax ……
    • PEAP版本:自动
    • 内部认证:MSCHAPv2
    • 用户名 :
    • 密码:

如何使用wpa_supplicant在命令行中提到所有这些细节? conf文件

 network={ ssid="ssid_name" psk="password" } 

不适合我。

我假设你正在使用Ubuntu桌面,因为你没有另外指定。

您可以通过在/etc/NetworkManager/system-connections创建文件来创建将由Network Manager管理的无线网络配置。 查看现有文件以查看格式的外观。

创建连接后,您可以使用nmcli命令从命令行管理NetworkManager,执行启用,禁用和查询连接等操作。

顺便提一下,系统测试工具(复选框)有一个脚本,它完全按照以下方式执行:使用您在命令行上提供的参数创建连接并启用它。

例如,这会创建与打开的“duck”网络的连接:

 sudo /usr/share/checkbox/scripts/create_connection duck 

这将使用WPA2安全性创建与网络的连接,并使用“wings”密码:

 sudo /usr/share/checkbox/scripts/create_connection -S wpa -K wings duck 

该脚本是用Python编写的,因此您可以轻松查看并适应您的需求。

脚本的帮助说明了这一点:

 Usage: create_connection [options] SSID Options: -h, --help show this help message and exit -S SECURITY, --security=SECURITY The type of security to be used by the connection. One of wpa and wep. No security will be used if nothing is specified. -K KEY, --key=KEY The encryption key required by the router. -U UUID, --uuid=UUID The uuid to assign to the connection for use by NetworkManager. One will be generated if not specified here. -R RETRIES, --retries=RETRIES The number of times to attempt bringing up the connection until it is confirmed as active. -I INTERVAL, --interval=INTERVAL The time to wait between attempts to detect the registration of the connection.