A. linux如何列出网卡支持的wifi信道
输入即可查看当前信道
sudo iwlist wlan0 channel
无线网卡开启监听模式
首先输入
iwconfig
查看无线网卡状态, 大致可以看到以下情况
eth0 no wireless extensions.
lo no wireless extensions.
wlan0 IEEE 802.11bgn ESSID:"ZJUWLAN"
Mode:Managed Frequency:2.412 GHz Access Point: 80:F6:2E:14:E6:30
Bit Rate=65 Mb/s Tx-Power=16 dBm
Retry long limit:7 RTS thr:off Fragment thr:off Power Management:off Link Quality=37/70 Signal level=-73 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:70 Missed beacon:0
可以看到wlan0的第二行Mode为Managed, 想要开启监听模式就是要改变这个值. 首先进入root用户模式
sudo -iiwconfig wlan0 mode monitor
要注意到想要改变监听模式, 必须将相应网卡暂时停用. 如果是wlan0的话关闭wifi即可.
然后再次输入iwconfig即可看到mode已经成功变为了monitor:
eth0 no wireless extensions.lo no wireless extensions.wlan0 IEEE 802.11bgn Mode:Monitor Tx-Power=off Retry long limit:7 RTS thr:off Fragment thr:off Power Management:off
如果想要切换当前监听信道, 即可执行以下语句:
iwconfig wlan0 channel 11
再次执行以下命令即可查看当前信道
iwlist wlan0 channel
但是发现在wifi重新开启后mode又回到了managed, 一番查询后发现还是安装aircrack-ng比较方便
于是执行以下命令安装aircrack-ng
sudo apt-get install aircrack-ng
然后再执行以下命令开启wlan0的监听模式
airmon-ng start wlan0
B. 树莓派3 wifi配置文件在哪
1、检查USB无线网卡是否已经正确识别
将无线USB网卡插入树莓派后启动树莓派,比较不建议热插拔,因为插入的一瞬间会有比较高的电流,如果电源输出不够可能导致树莓派重启。用自己的方法进入shell界面后输入命令:
lsusb
如果树莓派已经正常识别,在显示类似于如下的信息中可以看到你的USB无线网卡设备ID和芯片型号
pi@raspberrypi:~$ lsusb
Bus 001 Device 004: ID 0bda:8176 Realtek Semiconctor Corp. RTL8188CUS 802.11n WLAN Adapter
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
以我的EDUP为例,使用的是Realtek RTL8188CUS的芯片。
最新的raspbian已经有了wifi必要的包,直接插上就可以用了。不过最好还是可以看看 iwconfig 确认一下,输入 iwconfig 显示如下:
pi@raspberrypi:~$ iwconfig
wlan0 unassociated Nickname:""
Mode:Managed Frequency=2.412 GHz Access Point: Not-Associated
Sensitivity:0/0
Retry:off RTS thr:off Fragment thr:off
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
lo no wireless extensions.
eth0 no wireless extensions.
如果出现了wlan0,那说明网卡已经正常工作了。(这里的示例是已经用usb无线网卡连接上网络了,所以会显示ESSID。)如果这里的显示不正常,请安装连接wifi必要的包
sudo apt-get install wireless-tools wpasupplicant firmware-realtek
2、设置wifi
输入如下命令可以搜索附近所有可连接的Wifi AP:
pi@raspberrypi:~$ iwlist wlan0 scan
wlan0 Scan completed :
Cell 01 - Address: 50:BD:5F:69:32:E8
ESSID:"TP-LINK_32E8"
Protocol:IEEE 802.11bgn
Mode:Master
Frequency:2.412 GHz (Channel 1)
Encryption key:on
Bit Rates:300 Mb/s
Extra:wpa_ie=
IE: WPA Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
Extra:rsn_ie=
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
Quality=99/100 Signal level=62/100
Cell 02 - Address: 00:6B:8E:67:27:19
ESSID:"PHICOMM_672719"
Protocol:IEEE 802.11bgn
Mode:Master
Frequency:2.412 GHz (Channel 1)
Encryption key:on
Bit Rates:300 Mb/s
Extra:wpa_ie=
IE: WPA Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
Extra:rsn_ie=
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
Quality=100/100 Signal level=54/100
(由于我这边的wifi比较多,返回信息太长了,所以就不全部展现了)
如果不需要知道wifi详细参数,之查找Wifi AP的话 可以输入 iwlist wlan0 scan | grep ESSID 回显如下
pi@raspberrypi:~$ sudo iwlist wlan0 scan | grep ESSID
ESSID:"TP-LINK_32E8"
ESSID:"lpcx26"
ESSID:"PHICOMM_672719"
ESSID:"wangcheng"
ESSID:"TP-LINK_2BA4"
ESSID:"ME-139"
ESSID:"138-303"
ESSID:"ChinaNet-2VJV"
ESSID:"MERCURY_5CEE4E"
ESSID:"NO"
ESSID:"TP-LINK_E3DB46"
ESSID:"qingchao5"
ESSID:"ChinaNet-Fyuz"
ESSID:"MERCURY_9C1C"
ESSID:"liuchunyan"
ESSID:"TP-LINK_0596"
确定树莓派可以检测到你建立的wifiap之后,按照如下方法配置
使用如下命令获得wifi设置 wpa_passphrase SSID名称 密码 回显如下
pi@raspberrypi:~$ wpa_passphrase SSID password
network={
ssid="SSID"
#psk="password"
psk=
}
复制这段回显并保存到自己的配置文件中
pi@raspberrypi:~$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="SSID"
#psk="password"
psk=
}
Ctrl + O 快捷键 保存; Ctrl + X 快捷键 退出 Nano 编辑器
修改完成后,使用以下命令重启网络
pi@raspberrypi:~$ sudo /etc/init.d/networking restart
pi@raspberrypi:~$ sudo service networking restart #跟上面行的作用一样。
pi@raspberrypi:~$ sudo ifdown wlan0 #有时需要执行 或者 下一行命令才能发生作用。
pi@raspberrypi:~$ sudo ifup wlan0 #建议尝试本条命令
pi@raspberrypi:~$ wpa_cli status #查看连接状态
成功后,用 ifconfig 命令可以看到 wlan0 设备,且有了IP地址(已连接)。
如果还是没有反应,重启树莓派 sudo reboot 命令重启。
C. 你是下的那个项目呢下下来怎么用的,我下下来没法启动啊。我的是VS2010。望告知。
下载源代码,点击ManagedWifi.sln遍可以升级到2010的,我用的也是vs2010。可以发修改后的代码给你。把邮箱发消息给我吧。要在有无线网卡的电脑上测试,否则提示一服务没启动
D. 求高手 电脑怎么破别人的wifi 不会的 别答
破解无线路由的关键你要有无限网卡、周围有无线网络
首先搜索无限网络,能搜到不加密的网络那最好了,那一下你就不必往下看了。如果你找到了但是加密的,请往下看,但现在要讨论另一种情况,那就是找不到无线网络。
找不到无线网络,二个可能,一、真的没有无线网络,二、无线网络被隐藏了。
现在一般的笔记本都用的迅驰模块进行无线上网,那现在打开管理程序intel PROSet Wireless,单击“启动因特尔PROSet”然后搜索周围无线网络,会发现一个隐藏的无线网络,并显示“SSID未广播”
选中这个“SSID未广播”的无线网络,单击“配置”,在“配置式名称”中随意填一个名称,在“无线网络的名称SSID”输入之前找到的“WUXIAN”,然后下一步完成,如果是没有加密的现在就可以链接蹭网了。
最主要的开始了,首先准备一个软件BT——BackTrack(一下都称为BT),可以从官网上下载,一共有三个版本(光盘版、U盘版、虚拟机版),用哪一个看你自己了;一个可以被BT识别的网卡(卡王、卡皇、神卡)
这里介绍用光盘版BT
第一步、用光盘BT启动计算机,在启动过程中会要求输入密码,一般用户名“root”密码“toor”,如果不是你可以看看下载的地方有没有说明,启动完毕,是命令行形式的,输入“startx”,回车,进入图形界面。
第二步、需要查看无线网卡是否被BT支持。在任务栏中打开名叫“konsole”,打开命令行窗口,输入“ifconfig -a”,看是否无线网卡被支持。
第三步、启动无线网卡。在命令窗口中输入“ifconfig eth1 up”“ifconfig rtap0 up”
激活网卡监听模式。输入“airmon –ng start eth1”
输入抓包命令。输入“airomp –ng –ivs –w name –c 2 eth1”
这样我们就能知道要破解的AP的essid、mac地址和与之相连的客户端的MAC。
使用不是IPW2200网卡的,可以跳过第四步
第四步、打IPW2200注入补丁。之前的一个命令行窗口不要关闭,重新再开一个命令行窗口,输入“modprobe ipw2200 rtap_iface=1”“iwconfig eth1 ap <MAC>”这里的MAC是我们上一步所查到的MAC,把查到的几个MAC输进去,MAC和MAC之间要用“:”链接,接下来在输入“iwconfig eth1 key s:fakekey”“iwconfig eth1 mode managed”,这里的IPW2200注入补丁完了。
第五步、进行注入。输入“aireplay –ng -3 –b ‘ap的mac’ –h ‘客户端网卡的mac’ eth1”,这里的单引号不用输入,ap的mac就是第三步中所查到的mac,客户端mac就是第三步所查到的与ap相连的客户端mac
这一步可能需要一点时间,所以输入完请耐性等待,可能时间会较长,不要以为死机而关了。
第六步、进行破解。观看第五步中的注入,等到数据增加过万后,开启另一个命令行窗口,输入“aircrack –ng –n 64 name -01.ivs”回车确定后,会先询问要破解哪个无线网络,输入ivs值最大的那行序号就可以了,回车就开始破解了,等待一段时间密码就破解显示出来了,接下来该干嘛我不用多说了吧……
这三个东西其实都是经过改装的USB无限网卡,主要是在网卡中加入功率放大模块,因为能更有效更快速的破解WAP密码。
E. 如何在Ubuntu 15.04下创建一个可供Android/iOS连接的AP
咱成功地在 Ubuntu 15.04 下用 Gnome Network Manager 创建了一个无线AP热点。接下来要分享一下个人的步骤。请注意:必须要有一个可以用来创建AP热点的无线网卡。如果不知道如何确认它的话,在终端(Terminal)里输入iw list
如果没有安装iw的话, 在Ubuntu下可以使用sudo apt-get install iw进行安装.
在键入iw list之后, 查看“支持的接口模式”, 应该会看到类似下面的条目中看到 AP:
Supported interface modes:
* IBSS
* managed
* AP
* AP/VLAN
* monitor
* mesh point
让咱们一步步看:
1、 断开WIFI连接。使用有线网络接入自己的笔记本。
2、 在顶栏面板里点击网络的图标 -> Edit Connections(编辑连接) -> 在弹出窗口里点击Add(新增)按钮。
3、 在下拉菜单内选择Wi-Fi。
4、 接下来:
a、 输入一个链接名 比如: Hotspot 1
b、 输入一个 SSID 比如: Hotspot 1
c、 选择模式(mode): Infrastructure (基础设施)
d、 设备 MAC 地址: 在下拉菜单里选择自己的无线设备
5、 进入Wi-Fi安全选项卡,选择 WPA & WPA2 Personal 并且输入密码。
6、 进入IPv4设置选项卡,在Method(方法)下拉菜单里,选择Shared to other computers(共享至其他电脑)。
7、 进入IPv6选项卡,在Method(方法)里设置为忽略ignore (只有在不使用IPv6的情况下这么做)
8、 点击 Save(保存) 按钮以保存配置。
9、 从 menu/dash 里打开Terminal。
10、 修改刚刚使用 network settings 创建的连接。
使用 VIM 编辑器:
sudo vim /etc/NetworkManager/system-connections/Hotspot
或使用Gedit 编辑器:
gksu gedit /etc/NetworkManager/system-connections/Hotspot
把名字 Hotspot 用在第4步里起的连接名替换掉。
a、 把 mode=infrastructure 改成 mode=ap 并且保存文件。
b、 一旦保存了这个文件,应该能在 Wifi 菜单里看到刚刚建立的AP了。(如果没有的话请再顶栏里 关闭/打开 Wifi 选项一次)
11、现在可以把自己的设备连上Wifi了。已经过 Android 5.0的小米4测试。(下载了1GB的文件以测试速度与稳定性)
F. 通过C#编写WiFi连接
下载Managed Wifi API
创建C#工程文件,并添加对ManagedWifi.dll的引用。
编写代码,引用“Native Wifi API”。关键代码如下:
using System;using System.Collections.Generic;using System.Text;using NativeWifi; namespace ManagedWifiExample{ class MyWifi { public List<WIFISSID> ssids = new List<WIFISSID>(); public MyWifi() { ssids.Clear(); } static string GetStringForSSID(Wlan.Dot11Ssid ssid) { return Encoding.UTF8.GetString(ssid.SSID, 0, (int)ssid.SSIDLength); } /// <summary> /// 枚举所有无线设备接收到的SSID /// </summary> public void ScanSSID() { WlanClient client = new WlanClient(); foreach (WlanClient.WlanInterface wlanIface in client.Interfaces) { // Lists all networks with WEP security Wlan.WlanAvailableNetwork[] networks = wlanIface.GetAvailableNetworkList(0); foreach (Wlan.WlanAvailableNetwork network in networks) { WIFISSID targetSSID = new WIFISSID(); targetSSID.wlanInterface = wlanIface; targetSSID.wlanSignalQuality = (int)network.wlanSignalQuality; targetSSID.SSID = GetStringForSSID(network.dot11Ssid); //targetSSID.SSID = Encoding.Default.GetString(network.dot11Ssid.SSID, 0, (int)network.dot11Ssid.SSIDLength); targetSSID.dot11DefaultAuthAlgorithm = network.dot11DefaultAuthAlgorithm.ToString(); targetSSID.dot11DefaultCipherAlgorithm = network.dot11DefaultCipherAlgorithm.ToString(); ssids.Add(targetSSID); //if ( network.dot11DefaultCipherAlgorithm == Wlan.Dot11CipherAlgorithm.WEP ) //{ // Console.WriteLine( "Found WEP network with SSID {0}.", GetStringForSSID(network.dot11Ssid)); //} //Console.WriteLine("Found network with SSID {0}.", GetStringForSSID(network.dot11Ssid)); //Console.WriteLine("dot11BssType:{0}.", network.dot11BssType.ToString()); //Console.WriteLine("dot11DefaultAuthAlgorithm:{0}.", network.dot11DefaultAuthAlgorithm.ToString()); //Console.WriteLine("dot11DefaultCipherAlgorithm:{0}.", network.dot11DefaultCipherAlgorithm.ToString()); //Console.WriteLine("dot11Ssid:{0}.", network.dot11Ssid.ToString()); //Console.WriteLine("flags:{0}.", network.flags.ToString()); //Console.WriteLine("morePhyTypes:{0}.", network.morePhyTypes.ToString()); //Console.WriteLine("networkConnectable:{0}.", network.networkConnectable.ToString()); //Console.WriteLine("numberOfBssids:{0}.", network.numberOfBssids.ToString()); //Console.WriteLine("profileName:{0}.", network.profileName.ToString()); //Console.WriteLine("wlanNotConnectableReason:{0}.", network.wlanNotConnectableReason.ToString()); //Console.WriteLine("wlanSignalQuality:{0}.", network.wlanSignalQuality.ToString()); //Console.WriteLine("-----------------------------------"); // Console.WriteLine(network.ToString()); } } } // EnumSSID /// <summary> /// 连接到未加密的SSID /// </summary> /// <param name="ssid"></param> public void ConnectToSSID(WIFISSID ssid) { // Connects to a known network with WEP security string profileName = ssid.SSID; // this is also the SSID string mac = StringToHex(profileName); // //string key = ""; //string profileXml = string.Format("<?xml version=\"1.0\"?><WLANProfile xmlns=\"http://www.microsoft.com/networking/WLAN/profile/v1\"><name>{0}</name><SSIDConfig><SSID><hex>{1}</hex><name>New{0}</name></SSID></SSIDConfig><connectionType>ESS</connectionType><MSM><security><authEncryption><authentication>open</authentication><encryption>none</encryption><useOneX>false</useOneX></authEncryption><sharedKey><keyType>networkKey</keyType><protected>false</protected><keyMaterial>{2}</keyMaterial></sharedKey><keyIndex>0</keyIndex></security></MSM></WLANProfile>", profileName, mac, key); //string profileXml2 = "<?xml version=\"1.0\"?><WLANProfile xmlns=\"http://www.microsoft.com/networking/WLAN/profile/v1\"><name>Hacker SSID</name><SSIDConfig><SSID><hex></hex><name>TP-LINK_PocketAP_C8D262</name></SSID> </SSIDConfig> <connectionType>ESS</connectionType><connectionMode>manual</connectionMode><MSM> <security><authEncryption><authentication>open</authentication><encryption>none</encryption><useOneX>false</useOneX></authEncryption></security></MSM></WLANProfile>"; //wlanIface.SetProfile( Wlan.WlanProfileFlags.AllUser, profileXml2, true ); //wlanIface.Connect( Wlan.WlanConnectionMode.Profile, Wlan.Dot11BssType.Any, profileName ); string myProfileXML = string.Format("<?xml version=\"1.0\"?><WLANProfile xmlns=\"http://www.microsoft.com/networking/WLAN/profile/v1\"><name>{0}</name><SSIDConfig><SSID><hex>{1}</hex><name>{0}</name></SSID></SSIDConfig><connectionType>ESS</connectionType><connectionMode>manual</connectionMode><MSM><security><authEncryption><authentication>open</authentication><encryption>none</encryption><useOneX>false</useOneX></authEncryption></security></MSM></WLANProfile>", profileName, mac); ssid.wlanInterface.SetProfile(Wlan.WlanProfileFlags.AllUser, myProfileXML, true); ssid.wlanInterface.Connect(Wlan.WlanConnectionMode.Profile, Wlan.Dot11BssType.Any, profileName); //Console.ReadKey(); } /// <summary> /// 字符串转Hex /// </summary> /// <param name="str"></param> /// <returns></returns> public static string StringToHex(string str) { StringBuilder sb = new StringBuilder(); byte[] byStr = System.Text.Encoding.Default.GetBytes(str); //默认是System.Text.Encoding.Default.GetBytes(str) for (int i = 0; i < byStr.Length; i++) { sb.Append(Convert.ToString(byStr[i], 16)); } return (sb.ToString().ToUpper()); } } class WIFISSID { public string SSID = "NONE"; public string dot11DefaultAuthAlgorithm = ""; public string dot11DefaultCipherAlgorithm = ""; public bool networkConnectable = true; public string wlanNotConnectableReason = ""; public int wlanSignalQuality = 0; public WlanClient.WlanInterface wlanInterface = null; } }
Wifi XML配置文件请参考微软文档
http://www.microsoft.com/networking/WLAN/profile/v1
G. 求助 如何用ubuntu 作wifi 给安卓手机作热点
检查确认笔记本网卡支持master模式
首先要安装一个iw:yum install iw -y
然后执行命令:iw list
在命令执行结果中如果看到了下面的内容,就说明这张网卡是支持用于ap做路由的
Supported interface modes:
* IBSS
* managed
* AP
* AP/VLAN
* monitor
* mesh point
>02
安装hostapd
通过 yum install hostapd -y 安装,如果是其它红帽系列的可以安装epel的源,或者找一下hostapd的rpm,下载对应自己发行版的进行安装。其它Linux可以通过源码安装。
>03
修改配置文件
# vim /etc/hostapd/hostapd.conf
修改成如下状态
ctrl_interface=/var/run/hostapd
ctrl_interface_group=wheel
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=3
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
wpa_passphrase=ap_password
driver=nl80211
interface=wlan0
hw_mode=g
channel=9
ssid=ap_name
注意修改涉及到的ssid和密码
>04
安装和配置dhcp
# yum install dhcpd -y
# vim /etc/dhcp/dhcpd.conf
将此文件改成如下:
option domain-name-servers 211.161.45.222,10.141.146.10;
default-lease-time 3600;
max-lease-time 7200;
log-facility local7;
subnet 192.168.7.0 netmask 255.255.255.0 {
range 192.168.7.77 192.168.7.99;
option broadcast-address 192.168.7.255;
option routers 192.168.7.7;
}
注意将第一行的nameserver添加成你isp提供的dns,这样解析的速度会快一些,不知道的话就改成谷歌的8.8.8.8好了。subnet 里面设置的是分配给连接无线路由的设备的ip段,可以根据自己需求进行调整,这里给了192.168.7.77-99
需要注意的是,option routers要写成这台机器的wlan0的ip,这个是手动设置的
# ifconfig wlan0 192.168.7.7
>05
配置SNAT
Linux可以很方便的通过iptables配置SNAT服务器,命令如下:
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -s 192.168.4.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.4.0/24 -j ACCEPT
其中第一条表示将通过本机的转发数据包从eth0(外网)这个网卡发出去,另外两条表示只转发192.168.4.0/24这个网段过来的数据包,这个网段正好是wlan0其它设备连上本机以后分配的网段。
还需要在打开内核的ip转发功能:
# vim /etc/sysctl.conf
添加或修改这样一段:
net.ipv4.conf.default.rp_filter = 1
然后执行命令
# sysctl -p
>06
启动相关服务
/etc/init.d/dhcpd start
/etc/init.d/hostapd start
将有线网卡的网口插上网线调通就可以用其它无线设备连接此wifi ap上网了。