zoukankan      html  css  js  c++  java
  • 搭建软AP

     

    Soft AP是一种通过无线网卡,使用专用软件在PC上实现AP功能的技术,它可以取代无线网络中的AP(Access Point,无线接入点),从而会降低无线组网的成本。

    长期以来,高昂的组网成本是WLAN普及的最大障碍,虽然现在WLAN设备的价格已经降低了很多,但对价格敏感的SOHO用户而言,WLAN依然太贵。其中“昂贵”的AP就是造成总成本居高不下的主要因素,毕竟相对于价格低廉的HUB和交换机,600~1000元的AP要贵得多。

    不过,Soft AP的出现将有可能扫除WLAN进入小型办公室及家庭的最后一道障碍,毕竟这类用户对价格的关注要远超过对安全性的担忧。

    其实,Soft AP技术出现得并不晚,早期所谓的主机AP就是一种利用软件来实现AP功能的设备,它一般采用PC机,使用Windows、VXWorks、Linux等操作系统和主机AP程序。不过这种主机AP由于使用专用的设备,比AP便宜不了多少。而现在所说的Soft AP则是英特尔等公司力推的一个新概念,它可以让任何一台拥有无线网卡的PC或笔记本电脑具备AP功能!

    Windows7搭建

    1. 首先在网络和共享中心-更改适配器设置里,删除已有的桥接,之后状态如下图:

     

    1. 然后在开始-所有程序-附件里,以管理员身份运行“命令提示符”,如图所示:  

    1. 输入命令行(1),如下图,其中allow为网络承载模式为允许,Marcia是无线网络的ssid,12345678是密码,都可自己设定。

    netsh wlan set hostednetwork mode=allow ssid=Marcia key=12345678      (1)

    1. 在网络和共享中心-更改适配器设置里的情况见下图,这时输入:

    netsh wlan start hostednetwork                                          (2)

    可是万一并不能启动承载网络(如果可以的请跳过)。怎么办?

     

    1. 这里就是要特别注意的地方!!!为了能够让运行命令行(2)启动承载网络,本人摸索出了一个简单的解决方法,即先把无线网路连接和虚拟产生的无线网络连接2桥接,见下图。请注意,桥接要在两者设置成自动获得IP地址后,以及在网络和共享中心-管理无线网里删除所有临时点对点的ssid后再进行。

     

    1. 在刚才以管理员身份运行的dos下输入命令行(2),便‘激活’承载网络的启动。如图:

     

    1. 接着马上删除刚才建立的桥接!便可以用单无线网卡建立无线中继了,即在网络和共享中心-更改适配器设置里,把已经能无线上网的无线网络连接(比如abcd)共享给刚才产生的无线网络连接2(Marcia)。请见示意图:

    再运行命令行(2)就可以实现一个中继后的无线AP。这样其他的无线设备就可以连接到Marcia、用同一网卡的网络上网,从而完美实现无线网中继和无线AP。

     

    1. 附注:

    启动和取消承载网络可以用以下两个批处理文件,然后以管理员身份运行

    l  start.bat:

    netsh wlan set hostednetwork mode=allow ssid=Marcia key=12345678

    netsh wlan start hostednetwork

    l  stop.bat:

    netsh wlan set hostednetwork mode=disallow

    Linux搭建

    l  将无线AP通过Masquerading/NAT与有线连入internet(作为无线网关);

    l  将无线AP作为透明桥,桥接被用来做一个简单的AP或者两个无线设备的中继器。

     

    预准备工作:

    1.Wireless Tools (iwconfig, iwlist commands);

    2.iptables firewall;

    3.dnsmasq (caching DNS server and DHCP server);

    方案一

    方案1: Masquerading access point(NAT方式:此方式可以保证接口名不变,启用新的网络段,正好适合我目前使用的情况)。

    这是最简单的方案,在linux上运行了防火墙和网关,你只需要添加无线接口。

    你至少需要有一个有线的接口(如eth0)和一个无线的接口(wlan0),eth0连入了internet,wlan0提供ap功能。

    iwconfig wlan0 mode Master;

    如果报错说明不支持access point模式,你可以尝试Ad-hoc模式;

    apt-get install dnsmasq;

    eth0使用DHCP连入internet,使用下面命令获取IP和默认网关;

    dhclient eth0 ;

    然后设置无线接口为Master模式并输入SSID名,关闭加密:

    iwconfig wlan0 essid "my wlan" mode Master enc off;

    也可以开启wep加密:

    iwconfig wlan0 essid "my wlan" mode Master enc 1A2B3C4D5E;

    或者

    iwconfig wlan0 essid "my wlan" mode Master enc "s:apple";

    设置wlan0一个私有子网地址,不能和eth0同段。

    ifconfig wlan0 10.0.0.1 netmask 255.255.255.0 broadcast 10.0.0.255 up;

    为了两个地址之间的联系,我们需要在kernel中开启masquerading (NAT);

    1.加载有关的kernel模块

    modprobe ipt_MASQUERADE;

    清空防火墙规则,确保包数据不被阻塞;

    iptables –F;

    开启两接口之间的NAT功能;

    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;

    最后我们要开启kernel到两个接口之间的前向包;

    echo 1 > /proc/sys/net/ipv4/ip_forward;

    在ubuntu系统下,

    vi /etc/network/options中确保,

    ip_forward=yes;

    然后/etc/init.d/network restart;

    开启DHCP服务器;

    目前为止,我们已经能访问一个叫"my wlan"的无线网络,但是只能通过手动设置IP才能进行通信,接下来我们需要让我们的AP可以为连接他的设备动态获取IP。

    需要使用dnsmasq工具包,可以从

    http://www.thekelleys.org.uk/dnsmasq/doc.html;获取相关信息;

    其配置为:

    vi /etc/dnsmasq.conf;

    interface=wlan0;

    dhcp-range=10.0.0.10,10.0.0.110,255.255.255.0,6h;

    保存之后重启:

    /etc/init.d/dnsmasq restart;

    到此,连入该wifi热点的设备可以自动获取IP了。

    方案二

    方案2:透明桥AP(桥接方式:使用简单,将新增一个桥接口,本地接口使用桥接口访问网络,都在同一个网段中)。

    他们可以保持在同一个子网中,也就是说eth0获取的192.168.1.23;那么桥接后的接口都还是在192.168.1.段中,他们使用的是192.168.1.之前的同一个DHCP服务器分配的IP地址。桥接方式不需要使用dnsmasq工具包,但需要使用到bridge-utils工具包,主要用到里面的brctl命令。

    在ubuntu系统下,修改的配置文件如下:你需要将名字和IP改为你自己网络中的名字和IP。

    vi /etc/network/interfaces;

    auto br0;

    iface br0 inet static;

    address 192.168.1.2;

    network 192.168.1.0;

    netmask 255.255.255.0;

    broadcast 192.168.1.255;

    gateway 192.168.1.1;

    pre-up ifconfig wlan 0 0.0.0.0 up;

    pre-up ifconfig wlan1 0.0.0.0 up;

    pre-up iwconfig wlan0 essid “office” mode Managed;

    pre-up iwconfig wlan1 essid “repeater” mode Master;

    bridge_ports wlan0 wlan1;

    post-down ifconfig wlan1 down;

    post-down ifconfig wlan0 down;

    iface br0 inet static;

    pre-up ifconfig wlan 0 0.0.0.0 up;

    pre-up ifconfig wlan1 0.0.0.0 up;

    pre-up iwconfig wlan0 essid “office” mode Managed;

    pre-up iwconfig wlan1 essid “repeater” mode Master;

    pre-up brctl addbr br0;

    pre-up brctl addif br0 wlan0;

    pre-up brctl addif br0 wlan1;

    post-down ifconfig wlan1 down;

    post-down ifconfig wlan0 down;

    post-down brctl delif br0 wlan0;

    post-down brctl delif br0 wlan1;

    post-down brctl delbr br0;

    开启桥:

    ifup -v br0;

    #ifconfig br0 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255;

    #route add default gw 192.168.1.1;

    查看桥信息:

    #brctl show br0;

    动手操作

    我尝试了方案1桥接,OK,以下是我使用的命令:

    桥接网卡的方法:

    ifconfig eth0 0.0.0.0 promisc;

    brctl addbr br0;

    brctl addif br0 eth0;

    ifconfig mon.wlan0 0.0.0.0 promisc;

    brctl addif br0 mon.wlan0;

    ./hostapd hostapd.conf –B;

    brctl show;

    ifconfig br0 up;

    【hostapd.conf】内容如下:

    interface=wlan0;

    bridge=br0;

    driver=nl80211;

    ssid=bcmstb;

    hw_mode=g;

    channel=1;

  • 相关阅读:
    七月二十二日学习报告
    七月二十一学习报告
    七月二十学习报告
    补 七月十九学习报告
    七月十八学习报告
    iOS 逆向工程(三)之Xcode检测是否越狱成功
    iOS 逆向工程(二)之越狱手机安装必备软件
    iOS逆向工程(一)之手机越狱
    html练习 简单html页面
    集合对象序列化 反序列 IO 1将文件中的所有信息,通过合适的IO流读取出来,封装成Person对象,使用集合进行存储 2将集合对象序列化到另外一个文件persons.txt中 3从persons.txt反序列化其中的集合,并遍历集合内容
  • 原文地址:https://www.cnblogs.com/aixin0813/p/3303223.html
Copyright © 2011-2022 走看看