Linux网卡应用程序测试
一、环境搭建
1、设置VMWARE的网络为桥接,并选择哪一个网卡
2、设置开发板网卡网段和PC不相同
3、根据网卡设备的PID,VID(grep “0x3327” -nR),配置内核以支持所使用的网卡,以及该网卡驱动的依赖。(cd drivers/net/wireless) -> ath9k
4、网卡需要下载固件。把固件htc_9271.fw放到单板/lib/firmware。接上USB网卡, ifconfig wlan0 up
二、使用WiFi网卡
四种应用程序:iw, wpa_supplicant,dhcp
2.1 认证、加密
认证、加密发展史上,有三个版本:
初级版本 open/open
open/wep
wep/wep
过度版本(WPA) 802.1x/TKIP,WEP
PSK/TKIP,WEP
最终版本(WPA2) 802.1x/CCMP(AES-CCMP)
PSK/CCMP(AES-CCMP)
对于最终版本:802.1x连接到AP,在通过服务器验证(公司企业);PSK则是连接到AP,根据事先设置好的密码,验证通过皆可使用。
2.2 iw工具的编译使用
iw是iwconfig的替代品,可用2种加密认证:open、WEP。但是渐渐被替代,之所以还要使用,是因为IW具有扫描等比较好用的功能。
2.2.1 IW依赖安装
iw依赖于libn13:
tar xzf libnl-3.2.23.tar.gz
cd libnl-3.2.23/
./configure --host=arm-linux --prefix=$PWD/tmp
把编译出来的头文件应该放入:
/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/includecd tmp/include/libnl3
sudo cp netlink -rf /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include
把编译出来的库文件应该放入:/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib
把编译出来的库文件应该放入NFS文件系统的lib目录:
/work/nfs_root/fs_mini_mdev_new/lib
2.2.2 IW编译安装
tar xjf iw-3.11.tar.bz2
cd iw-3.11/
修改Makefile:
CC = “arm-linux-gcc”
NL3xFOUND := Y
#LIBS += $(shell $(PKG_CONFIG) --libs $(NLLIBNAME))
#CFLAGS += $(shell $(PKG_CONFIG) --cflags $(NLLIBNAME))
2.2.3 IW使用
此时重启开发板,可以使用iw工具了。
iw list // 列出WIFI网卡的性能
ifconfig wlan0 up
iw dev wlan0 scan // 扫描WIFI AP
iw wlan0 connect cscs // 连接到WIFI AP:cscs (open)
这样就实现了开放网络的连接了。
接下来测试某种加密认证方式的连接。
iw wlan0 connect cscs keys d:0:18380459913 // 连接到WIFI AP:cscs (WEP)d: default, 0: 第0个密码
连接成功,可以通过ping查看连接状态。当需要断开连接时:
iw wlan0 disconnect
可以看到,iw的使用比较简单,但是只适用于open,以及WEP两种加密认证方式,所以实用性很低。
2.3 wpa_supplicant
wpa_supplicant可用于上述4种"认证/加密",先编译它的依赖libopenssl,编译过程不多赘述了,接下来重点测试软件的使用。首先,wpa_supplicant需要一个.config文件,用于记录连接的信息,如密码等等,内容如下:
ctrl_interface=/var/run/wpa_supplicant
network={ssid="CSCS"key_mgmt=NONE
}
a、open:
CSCS是一个开放网络,key_mgmt代表的是没有密码,下面连接,并查看状态。
wpa_supplicant -B -c/etc/plaintext.conf -iwlan0
wpa_cli -iwlan0 status // 查看状态
ifconfig wlan0 192.168.1.55
ping 192.168.1.1
b、WEP:
cscs通过WEP加密,需要修改.config文件,添加wifi名字和密码:
ctrl_interface=/var/run/wpa_supplicant
network={ssid="dswei"key_mgmt=NONEwep_key0="baiwenwang123"wep_tx_keyidx=0
}
设置完成,可以连接:
wpa_supplicant -B -c/etc/wep.conf -iwlan0
wpa_cli -iwlan0 status // 查看状态
ifconfig wlan0 192.168.1.55
ping 192.168.1.1
c、WPA(TKIP)
wpa_supplicant -B -c/etc/wpa-psk-tkip.conf -iwlan0
wpa_cli -iwlan0 status // 查看状态
ifconfig wlan0 192.168.1.55
ping 192.168.1.1
.config
ctrl_interface=/var/run/wpa_supplicant # 一个目录,用于wpa_supplicant和wpa_cli的socket通信
network={ssid="cscs"proto=WPA # proto: list of accepted protocols, 可取WPA,RSN# If not set, this defaults to: WPA RSNkey_mgmt=WPA-PSK # 认证方式# If not set, this defaults to: WPA-PSK WPA-EAPpairwise=TKIP # If not set, this defaults to: CCMP TKIPgroup=TKIP # If not set, this defaults to: CCMP TKIP WEP104 WEP40 psk="18380459913"
}
wpa_cli可工作于"命令模式"和"交互模式",并且配置文件里设置多个network:
ctrl_interface=/var/run/wpa_supplicant
network={ssid="cs1"psk="18580413154"
}
network={ssid="cs2"psk="18380459913"
}
若想要连接外网,还需要DNS域名解析,以及路由设置
修改/etc/resolv.conf添加DNS:
nameserver 192.168.1.1设置网关:
route add default gw 192.168.1.1
2.4 dhcp
DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。默认情况下,DHCP作为Windows Server的一个服务组件不会被系统自动安装,还需要管理员手动安装并进行必要的配置。
完成编译安装以后,具体研究一下使用:
mkdir -p /var/db
wpa_supplicant -B -c/etc/wpa_wpa2.conf -iwlan0
dhclient wlan0
此时可以自动分配IP。
一连接上WIFI AP, 就自动执行dhclient的实现,创建脚本:cat /sbin/wpa_action.sh
#!/bin/sh
if [ $ACTION = "add" ];
then wpa_supplicant -B -c/etc/wpa_wpa2.conf -iwlan0wpa_cli -a/sbin/wpa_action.sh -B
else killall wpa_supplicantkillall wpa_cli killall dhclient
fi
Linux网卡应用程序测试相关推荐
- linux下串口程序测试
linux平台下的串口程序网上比比皆是,这里是自己参考资料写的. #include <stdio.h>#include <stdlib.h>#include <strin ...
- linux网卡顺序问题,linux网卡绑定及网卡顺序变更测试.docx
Linux网卡顺序变更导致网卡绑定出错及解决办法测试 2012/2/21 描述:linux中新安装网卡会导致原网卡识别顺序紊乱,影响网络及网卡绑定正常工作,此时可以更改/etc/sysconfig/n ...
- linux程序测试工具gprof,gprof-如何在Linux上分析多线程C ++应用程序?
gprof-如何在Linux上分析多线程C ++应用程序? 我曾经使用gprof进行所有Linux分析. 但是,对于我的多线程应用程序,它的输出似乎不一致. 现在,我将其挖掘出来: [HTTP://S ...
- Linux下Sniffer程序的实现
作者:Gianluca Insolvibile 整理:Seal(永远的FLASH) 出处:http://www.nsfocus.com 日期:2003-04-02 嗅探--Sniffer技术是网络安全 ...
- Linux 网卡配置文件设置
Linux 网卡配置文件设置 配置文件 /etc/hosts(本地主机ip地址映射,可以有多个别名). /etc/services(端口号与标准服务之间的对应关系). /etc/sysconfig/n ...
- linux 网卡驱动分析,基于linux下网卡驱动分析及实现技术研究
摘 要 Linux技术是当前计算机技术中最大的一个热点,在我国以及全世界得到了迅猛的发展,被广泛的应用于嵌入式系统.服务器.网络系统.安全等领域.从而使得掌握在 Linux环境下的开发技术,成为 ...
- linux网卡掉包或挂掉解决办法
最近自己公司网站老出现掉包问题之前以为是网络问题或机房问题,经过N久的排查发现是linux网卡掉包了,下面我来分享我的解决办法. 之前公司的系统由于网卡问题,经常出现掉包(掉包排除攻击的 因素)或者突 ...
- linux 网卡的驱动程序,Linux网卡驱动程序代码
广告 100%的CPU性能,计算能力不会降低!选择最主流的云服务器来满足各种业务需求,有数百种流行的云产品和8888元起价套餐,可帮助行业恢复工作! 获取网卡信息的代码示例. 通过命令获取arp(地址 ...
- linux网卡驱动程序的编译与安装,linux网卡驱动程序的编译与安装
安装实例 linux网卡驱动程序的编译与安装 powered by KindGeorge 一般来说,目前新版的 Linux 预设可以支持的网络卡芯片组数量已经很完备了,很多网络卡芯片都已经被支持, 例 ...
最新文章
- Packet Tracer 5.0配置cisco路由器详细说明
- 电子科技大学沙河计算机就业,电子科技大学沙河的几个软件工程有什么区别?...
- Machine Learning week 5 quiz: programming assignment-Multi-Neural Network Learning
- WebRTC端点检测使用中遇到的部分问题汇总
- 最优化——单纯形法学习心得
- linux efi不要boot目录,linux – 找不到efi目录:grub-install的问题
- picturebox与imagelist使用选择图片
- 如何在Eclipse中添加Servlet-api.jar的方法
- java hibernate 自定义排序_Java hibernate如何对条件查询结果集排序?
- h2database源码浅析:TransactionMap、MVMap、MVStore
- 研究人员:Intel 的 VISA 漏洞可访问计算机中所有数据
- 用java网络编程中的TCP方式上传文本文件及出现的小问题
- C#调用Web Service时的身份验证 (转)
- 算法与数据结构(基于C语言)中线性表的快速排序快速查找
- 2020.10.12--PS--制作图章、抽出滤镜、消失点
- php加入到jpg,PHP如何将PNG转换成JPG?
- iOS 图片压缩策略
- 前端面试总结之长沙五
- 人工智能并不像你想象的那么迫在眉睫
- 2018_10_24 模拟赛