参考: http://blog.csdn.net/u011641885/article/details/49512199
1.工具/原料
    有无线网卡(usb接口的RT3070无线网卡)、有线网卡的台式机
    安装linux操作系统,我使用的是ubuntu14.04
2.方法/步骤
    a.检查确认无线网卡支持master模式
    执行命令:iw list
    在命令执行结果中如果看到了下面的内容(AP, AP/VLAN),就说明这张网卡是支持用于ap做路由的
    Supported interface modes:
    * IBSS
    * managed
    * AP
    * AP/VLAN
    * monitor
    * mesh point
    
    b.安装hostapd
    我是手动编译的, 目录在/home/edward/opt/edward/hostapd/
    修改hostapd配置文件vim /etc/dhcp/dhcpd.conf
    将此文件改成如下:
    ctrl_interface=/var/run/hostapd
    interface=wlan0
    driver=nl80211
    ssid=emma
    hw_mode=g
    channel=10
    macaddr_acl=0
    auth_algs=3
    wpa=2
    wpa_passphrase=fah191430
    wpa_key_mgmt=WPA-PSK
    wpa_pairwise=TKIP
    rsn_pairwise=TKIP CCMP
    
    AP热点名称为emma, 密码为fah191430
    然后开启hostapd, 进入到/home/edward/opt/edward/hostapd/hostapd目录
    sudo ./hostapd -B /etc/hostapd.conf  
    发现有以下错误:
    Configuration file: /etc/hostapd/hostapd.conf
    nl80211: Could not configure driver mode
    nl80211: deinit ifname=wlan0 disabled_11b_rates=0
    nl80211 driver initialization failed.
    wlan0: interface state UNINITIALIZED->DISABLED
    wlan0: AP-DISABLED
    wlan0: CTRL-EVENT-TERMINATING
    hostapd_free_hapd_data: Interface wlan0 wasn't started
    解决办法:
    改变NetworkManager里的状态,关闭wifi,同时软锁定
    sudo nmcli nm wifi off
    sudo rfkill unblock wlan
    然后再启动hostapd服务    
    sudo hostapd -B /etc/hostapd.conf
    
    c.安装配置dhcp服务器
    sudo apt-get install isc-dhcp-server
    修改配置文件/etc/dhcp/dhcpd.conf
    option domain-name-servers 218.85.157.99;
    subnet 192.168.1.0 netmask 255.255.255.0 {    //注意:这里192.168.1.0不能写成192.168.1.1
    range 192.168.1.77 192.168.1.250;
    option routers 192.168.1.3;    // 网关 要写成这台机器的 wlan0 的ip
    option broadcast-address 192.168.1.255;
    }
    启动dhcp服务器
    启动前先配置网卡的IP和子网掩码
    sudo ifconfig wlan0 192.168.1.3 netmask 255.255.255.0 up
    sudo /etc/init.d/isc-dhcp-server restart  
    
    d.iptables配置转发规则
    配置转发前需要打开linux转发功能
    临时改变,重启后恢复
    sudo sysctl -w net.ipv4.ip_forward=1
    永久改变
    vim /etc/sysctl.conf  
    #添加或修改这样一段:  
    net.ipv4.conf.default.rp_filter = 1  
    #然后执行命令  
    sysctl -p
    使用 iptables 设置转发
    iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE      
        iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT  
        iptables -A FORWARD -d 192.168.1.0/24 -j ACCEPT  
    其中第一条表示将通过本机的转发数据包从eth0(外网)这个网卡发出去,另外两条表示只转发192.168.1.0/24这个网段过来的数据包,
    这个网段正好是wlan0其它设备连上本机以后分配的网段

最新文章

  1. mybatis 与 xml
  2. AppStore下载失败使用已购页面再试一次解决方法
  3. android源码解析(十七)-->Activity布局加载流程
  4. 在x86转x64的开发过程会遇到各种意外的问题,比如MSScriptControl 在x64下
  5. 【Exception】 java.lang.NoSuchMethodError: android.app.AlertDialog$Builder.setOnDismissListener
  6. 计算机网络——TCP/IP协议族详解
  7. django --------------------- [必要操作]
  8. 最短路径算法之四——SPFA算法
  9. 在Maven的配置文件中,自定义私有仓库地址和设置下载的jar包的保存位置
  10. 什么时候css会见less
  11. 基于Dubbo的分布式事务框架(LCN)
  12. oracle监控脚本【转】
  13. 【linux之shell脚本】
  14. CentOS7完成mysql的安装和远程访问
  15. Nginx 动静分离与负载均衡的实现
  16. Lily_music 网页音乐播放器 -可搜索(附歌词联动播放效果解说)
  17. 前端测试框架Jest系列教程 -- Mock Functions(模拟器)
  18. TCP/UDP工作流程图
  19. javascript 完美解决对联广告
  20. group by 小结

热门文章

  1. 摄像头模组 PDAF对焦(Phase Detection Auto Focus)
  2. 第八章:SCRT搭建ES搜索引擎步骤
  3. Spring框架学习(9)AOP技术理解与使用
  4. 虚拟机VMware12.0安装centos 6.5+VMware中虚拟机网络模式区分
  5. python __set__ __get__ __delete__
  6. AFNetworking 下载文件断点续传操作
  7. 建站笔记1:centos6.5下安装mysql
  8. 《The Story of My Life》Introductiom - The Life and Work of Helen Keller
  9. 带有key参数的函数filter,map,max,min
  10. IIS7如何部署asp.net网站 (asp.net mvc 5 , asp.net 4.5 , asp.net 4.0 都可以 )