从命令行连接到无线网络
我需要编写一个shell脚本,它连接到两个可用的Wi-Fi连接之一。 一个是不安全的连接,另一个是安全连接。 我的问题有两个部分 –
-
当我连接到安全连接时,如何从命令行(或通过执行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
但没有任何反应:我没有与当前网络断开连接并连接到新网络。
-
当我想连接到安全的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.