Linux中Wi-Fi无线网络和AP无线热点的配置教程

0.Linux下的Wi-Fi配置
无线网络飞速发展的今天,许多设备都提供了连接无线网络的功能。
那么Linux下的wifi到底该怎么配置、连接呢??
开始配置之前,我们要说说iw家族。iw是linux下常用的wifi配置工具,网上有相应的库和源码。全名为wirelessTools。
配置wifi模块,并连接相应的无线网络过程:主要使用iwpriv命令
(1)扫描可用的无线网络:

代码如下:

iwlist wifi-name scanning

其中wifi-name为无线网卡的名字,比如网卡eth0就是系统默认的网卡名字, wifi-name可以用ifconfig查看,一般为ra0。
(2)看扫描到的网络信息,按要连接的网络类型进行配置。以下为扫描到的网络:

代码如下:

iwlist ra0 scanning
===>rt_ioctl_giwscan. 11(11) BSS returned, data->length = 1427
ra0 Scan completed :
Cell 01 - Address: C4:CA:D9:1D:9E:A0
Protocol:802.11b/g/n
ESSID:""
Mode:Managed
Frequency:2.412 GHz (Channel 1)
Quality=7/100 Signal level=-87 dBm Noise level=-82 dBm
Encryption key:off
Bit Rates:54 Mb/s
Cell 02 - Address: FC:75:16:A1:A9:16
Protocol:802.11b/g/n
ESSID:"jxj_rd"
Mode:Managed
Frequency:2.452 GHz (Channel 9)
Quality=94/100 Signal level=-53 dBm Noise level=-92 dBm
Encryption key:on
Bit Rates:54 Mb/s
IE: WPA Version 1
Group Cipher : TKIP
Pairwise Ciphers (2) : TKIP CCMP
Authentication Suites (1) : PSK
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : TKIP
Pairwise Ciphers (2) : TKIP CCMP
Authentication Suites (1) : PSK
Cell 03 - Address: C4:CA:D9:02:2A:70
Protocol:802.11b/g/n
ESSID:""
Mode:Managed
Frequency:2.462 GHz (Channel 11)
Quality=83/100 Signal level=-57 dBm Noise level=-92 dBm
Encryption key:off
Bit Rates:54 Mb/s
Cell 04 - Address: 14:D6:4D:75:CA:9C
Protocol:802.11b/g/n
ESSID:"liangym"
Mode:Managed
Frequency:2.472 GHz (Channel 13)
Quality=100/100 Signal level=-27 dBm Noise level=-92 dBm
Encryption key:on
Bit Rates:54 Mb/s
IE: WPA Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK

如上:ESSID项的值即为无线网络的名字,如上的“jxj_rd”等。如果值为空,说明在无线路由勾选了隐藏ESSID的选项。
ESSID是很关键的,如果被隐藏了,也不是不能连接,而是需要破解,用到其他的工具,非常麻烦。至于如何破解,不是本文叙述的内容,有兴趣的朋友可以网上搜索。
得到了网络的信息,接下来就是配置连接选项了。以连接"jxj_rd"为例,我们看看具体的过程:
(1) 设置要连接的网络类型:

代码如下:

iwpriv ra0 set NetworkType=Infra

(2) 设置要连接的无线网络的安全模式:

代码如下:

iwpriv ra0 set AuthMode=WPA2PSK

(3) 设置网络加密方式:(CCMP即为AES)

代码如下:

iwpriv ra0 set EncrypType=TKIP

(4) 设置连接时的密码: ********为加密网络的密码

代码如下:

iwpriv ra0 set WPAPSK=*******

(5) 连接该网络:有两种方式:
A、用iwpriv命令

代码如下:

iwpriv ra0 set SSID=jxj_rd

B、用iwconfig命令

代码如下:

iwconfig ra0 essid jxj_rd

至此,如果密码正确,就可以连接上网络jxj_rd了。如果你不放心,可以用命令查看状态:

代码如下:

iwpriv ra0 connStatus

当然,你也可以用iwconfig命令查看状态,这里不再赘述。
执行 iwlist 如果 Supported interface modes 的下有 AP 的话表示该网卡支持AP模式,可以创建无线热点。
比如我的无线网卡是Qualcomm Atheros AR9485 Wireless Network Adapter,Linux内核自带了驱动ath9k,支持创建AP无线热点。

下面我们就着重来讲无线热点的创建步骤:

1. 安装hostapd和dhcpd

代码如下:

sudo apt-get install hostapd isc-dhcp-server

开机不需要启动这两个服务,建议把它们关掉:

代码如下:

sudo update-rc.d -f hostapd remove

注释掉下面两个文件start on那一行:

代码如下:

sudo nano /etc/init/isc-dhcp-server.conf
sudo nano /etc/init/isc-dhcp-server6.conf

2. 配置hostapd和dhcpd

代码如下:

sudo nano /etc/hostapd/hostapd.conf

注意自己设置其中的无线热点名称ssid和认证密码wpa_passphrase.

代码如下:

interface=wlan0
driver=nl80211
ssid=YOUR_AP_NAME
hw_mode=g
channel=10
macaddr_acl=0
auth_algs=3
wpa=2
wpa_passphrase=YOUR_AP_PASSWORD
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
rsn_pairwise=TKIP CCMP
sudo nano /etc/dhcp/dhcpd.conf

在末尾加入以下内容:

代码如下:

subnet 192.168.0.0 netmask 255.255.255.0
{
range 192.168.0.2 192.168.0.10;
option routers 192.168.0.1;
option domain-name-servers 192.168.0.1,180.76.76.76,8.8.8.8;
}

其中180.76.76.76是百度公共DNS服务器,8.8.8.8则是Google的DNS服务器.
在自己的家目录下创建一个hostapd目录,里面新建启动和关闭脚本,比如我这样写(注意把里面eechen换成你的用户名):

代码如下:

nano /home/eechen/hostapd/ap-start.sh

代码如下:

#!/bin/bash
# 开启内核IP转发
bash -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
# 开启防火墙NAT转发(如果本机使用eth0上网,则把ppp0改为eth0)
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
# 关闭NetworkManager对无线网卡的控制
nmcli nm wifi off
# 设置并启动无线网卡
ifconfig wlan0 192.168.0.1 netmask 255.255.255.0
# 解锁无线设备,可以用rfkill list查看解锁结果.
rfkill unblock wlan
# 睡眠6秒,待rfkill解锁生效
sleep 6s
# 启动dhcpd和hostapd,如果hostapd无法启动请查看日志hostapd.log,查看这两个进程ps -ef|egrep "dhcpd|hostapd"
nohup hostapd /etc/hostapd/hostapd.conf >/home/eechen/hostapd/hostapd.log 2>&1 &
dhcpd wlan0 -pf /var/run/dhcpd.pid
ps -ef|head -n1 && ps -ef|egrep "dhcpd|hostapd"
nano /home/eechen/hostapd/ap-stop.sh

代码如下:

#!/bin/bash
killall hostapd dhcpd
bash -c "echo 0 > /proc/sys/net/ipv4/ip_forward"
ifconfig wlan0 down

3. 启动hostapd和dhcpd
在桌面新建两个启动器(快捷方式),里面分别填入:

代码如下:

gksu /home/eechen/hostapd/ap-start.sh
gksu /home/eechen/hostapd/ap-stop.sh

因为脚本需要root用户身份执行,所以需要用gksu运行。
注意:如果你开启了ufw防火墙,ufw默认是禁止转发的,这会导致防火墙NAT转发失效,这时应该设置允许转发:

代码如下:

sudo nano /etc/default/ufw 将 DEFAULT_FORWARD_POLICY 设为 ACCEPT

然后重启ufw即可:

代码如下:

sudo service ufw restart

之后运行启动器即可启动和关闭AP无线热点。

4. 用wireshark监控经过wlan0的通信
安装wireshark(其中 eechen改为你的用户名):

代码如下:

sudo apt-get install wireshark
sudo chgrp eechen /usr/bin/dumpcap
sudo chmod 750 /usr/bin/dumpcap
sudo setcap cap_net_raw,cap_net_admin+eip /usr/bin/dumpcap

Alt+F2运行wireshark,选择网络接口wlan0,Filter里输入http.cookie contains mail.qq.com
然后手机端登录网页QQ邮箱,在WireShark即可查看和获取QQ邮箱登录的Cookie,如图所示:

右键点击Cookie项把Value复制出来,然后用Firefox访问站点https://w.mail.qq.com/,Alt+C激活 Original Cookie Injector( GreaseMonkey),弹出输入框Wireshark Cookie Dump,把Cookie项的Value粘贴到里面,然后点OK确定并刷新页面即可登录QQ邮箱。或者你使用Tamper Data这个Firefox扩展在提交时修改Cookie值也是可以的。

附:
查看连接wlan0网络的客户端:

代码如下:

sudo arp

返回IP地址和MAC硬件地址和无线接口名.

代码如下:

iw dev wlan0 station dump

能显示收发包和字节数等.
查看网络接口速度:

代码如下:

sar -n DEV 1

(0)

相关推荐

  • 解决无线网络连接没有有效的IP配置

    有时候我们在使用电脑的时候,提示无线网络连接没有有效的ip配置,怎么解决呢,下面来分享一下方法 操作方法 01 第一步在我们的电脑上鼠标右键网络连接图标,点击打开网络和Internet设置,这里是以w ...

  • win10如何设置无线网络 怎么连接无线网络

    无线网络非常方便笔记本上网,可以随时随地的上网,那么Windows10笔记本如何设置无线网络呢?下面就一起来看看怎么连接无线网络的方法吧. 操作方法 01 笔记本电脑安装好无线网卡驱动后,在Windo ...

  • 在无线网络环境中组建无线局域网方案解析

    在有无线网的环境下怎么组建一个无线局域网呢?现在使用无线网络也正在成为一些中、小型企业使用的一种信息交流方式之一。然而,架设一套办公室无线设备并不是像我们想象中那样,买一些设备组装起来那样简单,这里面 ...

  • ac+ap无线网络方案优势和特点

    要想说ac+ap无线网络瘦ap覆盖模式的优势和特点,就得先说下胖ap的情况来比较下,以下我们来认识下胖ap与瘦ap的特点: 操作方法 01 以前无线网络覆盖采用的设备都是无线胖AP1.胖AP的管理只存 ...

  • 在无线路由器中设置无线网络密码

    使用无线路由器组建无线局域网后,默认情况下有效范围内的无线网络用户都可以连接到无线网络中,用户可以通过在无线路由器中设置无线网络密码限制无线用户连接到无线网络.以D-Lin的DI-624+A为例,设置 ...

  • 在Win8系统中无线网络连接设置技巧

    如果计算机拥有一块无线网卡可以让计算机连接无线网络并使用因特网.无线网络接入的好处有很多,比如能够最大程度的减少布线的繁杂等,也有不好的地方,比如靠电磁场传播数据容易造成数据包丢失,而且网络稳定性也比 ...

  • 无线网络中如何选择无线加密

     你不会设计一个有互联网访问而没有防火墙的网络。那么,你为什么会有一个没有加密的无线网络呢?理解无线加密对于部署一个安全的无线网络是非常重要的。 无线传输的安全类似于一封书信。有各种各样的发送书信的方 ...

  • 无线网络连接的十二个故障解决

    无线网络,特别是无线局域网给我们的生活带来了极大的方便,为我们提供了无处不在的、高带宽的网络服务,但是,由于无线信道特有的性质,使得无线网络连接具有不稳定性,大大影响了服务质量,本文将介绍一些常见的无 ...

  • 无线网络基础知识要点概括

    本文为大家详细总结了12个无线网络基础知识要点。通过这些介绍,相信大家对无线网络这块就会有一个比较全面的认识了。详细内容见下文。 无线网络大家都很清楚,从移动通信,无线上网,无线局域网都属于无线网络范 ...