如果是 ubuntu 系统的话,直接使用 network-manger 就可以连接了,使用 network-manager 是最简单最方便连接网络的方法:
如果不是使用图形界面,是命令行,则使用 network-manager 的命令行工具: nmcli
see link: http://blog.youkuaiyun.com/gw569453350game/article/details/53261772
但是如果没有安装 network-manager,则可以使用一个叫 wpa_supplicant
的命令(该工具最好不要与 network-manager 一起使用,会导致 wpa_supplicant 连不上无线网,因为 wpa_supplicant 是作为 network-manager 的后端的,如果 wpa_supplicant 与 network-manager 一起使用,那么就相当于多个 wpa_supplicant 一起运行,会有点问题)。要么配置 network-manager 不使用某个网卡,要么卸载之:
// 配置 network-manager
sudo vi /etc/NetworkManager/NetworkManager.conf
在 keyfile 中加入不希望被 network-manager 控制的设备的 mac 地址:
[main]
plugins=ifupdown,keyfile,ofono
dns=dnsmasqno-auto-default=06:6A:CB:D1:FD:79,46:0A:FF:4F:21:08,
[ifupdown]
managed=true[keyfile]
unmanaged-devices=mac:00:0c:43:a5:9a:00
或者卸载之:
sudo apt-get remove network-manager
其实 iwconfig
命令也可以连接无线网,但是其只能处理 WEP 类型的无线网加密协议,但是如果无线网络是 WPA/WPA2 加密的就只能使用 wpa_supplicant 命令了。
Any secure wifi network won’t be using WEP since it’s broken so it’s important to realize iwconfig
by itself can’t connect to the more secure WPA/WPA2.
所以现在所有的路由器基本上都是使用 WPA/WPA2 加密协议。
See link:
http://superuser.com/questions/42460/can-you-explain-how-to-understand-what-the-iwconfig-command-displays-in-ubuntu
https://www.zhihu.com/question/29977729
wpa_supplicant 连接无线网的步骤:
1 . 线检查一下网卡驱动是否装上了,网卡是否开启了:
ifconfig -a // 显示无线网卡一般为 wlan0,如果名字是一串很长的数字,google 如何修改 eth/wlan 名字
2 . 扫一下无线网络,看无线网卡是否能够正常工作:
sudo iwlist wlan0 scan
3 . 通过无线网获取 psk 码:
$ sudo wpa_passphrase "ESSID" "PASSWD" > wpa.conf // ESSID 就是无线网络的名称, PASSWD 是无线网络的密码
$ cat wpa.conf
network={
ssid="networkname"
#psk="mypassphrase"
psk=8ada1f8dbea59704ac379538b4d9191f6a72390581b4cd7a72864cea685b1a7f
}
4 . 连接无线网络:
sudo wpa_supplicant -B -iwlan0 -c/etc/wpa.conf -Dnl80211,wext # -B 表示在后台运行, 加上 -dd 可以输出调试信息
iwconfig // 查看一下是否获得了 Access Point,如果没有,那么查看一下是否后台有多个 wpa_supplicant 在运行, sudo killall wpa_supplicant,在尝试一遍。
wlan0 IEEE 802.11bgn ESSID:"networkname"
Mode:Managed Frequency:2.467 GHz Access Point: E4:F4:C6:0E:E0:51
Bit Rate=19.5 Mb/s Tx-Power=20 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Power Management:on
Link Quality=29/70 Signal level=-81 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:376 Invalid misc:44 Missed beacon:0
# ifconfig 查看一下,如果没有获得 ip, 运行一下 dhclient:
sudo dhclient wlan0 # 获取 ip
或者将上述命令写到 /etc/network/interfaces
文件中,这样每次自动启动后就可以连接无线网了:
auto lo
iface lo inet loopback
auto wlan0
iface wlan0 inet static
address 192.168.1.150
netmask 255.255.255.0
gateway 192.168.1.1
wpa-essid network-name
wpa-psk 8ada1f8dbea59704ac379538b4d9191f...
dns-nameservers 192.168.3.45 192.168.8.10 # 如果想配置 DNS 服务器的话
也可以配置完后重启网卡使其生效:
sudo ifdown wlan0 && sudo ifup -v wlan0
ref link:
1. https://wiki.archlinux.org/index.php/Wireless_network_configuration
2. https://wiki.archlinux.org/index.php/WPA_supplicant