灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:1732回复:0

Linux下使用无线网卡搭建AP

楼主#
更多 发布于:2012-12-20 15:06

作者:Burn_E
Linux下使用无线网卡搭建AP
 
 
 
因为实验需要,需要搭建无线AP,折腾了大半天,总算是搭好了。
 
  我的机器上装了两块网卡,有线网卡通过网线接入网络,另外还有一块无线网卡,作为无线AP。因为我的实验中要用到madwifi驱动,所以只能用配有Atheros芯片的网卡。其它型号的网卡,理论上只要换个驱动就OK了。 
 
 
 
  madwifi的官网google一下第一条就是,需要注意的是高于2.6.25的内核需要安装打了补丁的madwifi驱动,否则编译不过去。我的系统是CentOS6.3,内核版本是2.6.32,现在大家用的内核应该普遍比2.6.25高了吧。
 
 
 
  madwifi驱动下载地址:
 
 
 
  内核版本2.6.25以下:http://madwifi-project.org/wiki/Releases/0.9.4
 
 
 
  内核版本2.6.25及以上:http://snapshots.madwifi-project.org/madwifi-0.9.4-current.tar.gz
 
 
第一步:安装madwifi 
 
 
 
  1.解压缩下载的madwifi文件夹,并进入解压缩后的文件夹。
 
 
 
  #tar zvxf madwifi*
 
 
 
  # cdmadwifi*  
 
 
 
  2.如果原来安装过madwifi,需要先清除。
 
 
 
  #./scripts/madwifi-unload
 
 
 
  # ./scripts/find-madwifi-modules.sh/lib/modules
 
 
 
  2.编译安装madwifi
 
 
 
  #make
 
 
 
  #makeinstall
 
 
 
  3.如果原来是ath5k驱动的话,因为其优先级比madwifi高,需要禁用ath5k驱动。
 
 
 
  #modprobe-r ath5k
 
 
 
  #vi/etc/modprobe.d/blacklist.conf
 
 
 
  在最后加上blacklistath5k
 
 
 
  4.加载madwifi驱动,并设为AP模式,设置ssid为madwifi
 
 
 
  #modprobeath_pci autocreate=ap
 
 
 
  #iwconfig ath0 essid"madwifi"
 
 
 
  #iwconfig ath0 keyoff
 
 
 
  不出意外的话,无线设备应该能搜到"madwifi“信号了,如果你的设备上显示是开放信号,就可以跳过下面这一段了。
 
 
 
  我在设置中关了WEP加密,理论上来说应该是不需要加密就可以连接的,但是我这里却显示“通过WPA/WPA2PSK进行保护"。找了半天,猜到可能是wpa_supplicant在作怪,果然,连同NetworkManager一起卸了之后,"madwifi"就显示为开放网络了。这里如果不想卸wpa_supplicant和NetworkManager的话,通过修改wpa_supplicant的配置文件(/etc/wpa_supplicant/wpa_supplicant.conf)也是可以实现的。。我觉得这两个软件对我的实验机没什么用,卸就卸了吧。
 
 
第二步:配置DHCP
 
 
 
  我的有线网卡所在网段是192.168.0.1,网关是192.168.0.2,准备给我的无线AP局域网配置网段192.168.3.1。有线网卡设备名是p128p1,无线网卡是ath0。
 
 
 
  1.配置网卡的IP,网关等环境
 
 
 
  #因为干掉了NetworkManager,需要启动network服务。
 
 
 
  #servicenetwork start
 
 
 
  #ifconfig p128p1 192.168.0.235 netmask255.255.255.0
 
 
 
  #route add default gw 192.168.0.2p128p1
 
 
 
  #ifconfig ath0 192.168.3.1 netmask255.255.255.0
 
 
 
  #ifconfig p128p1on
 
 
 
  #ifconfig ath0on
 
 
 
  2.下载安装dhcp包
 
 
 
  #yum installdhcp
 
 
 
  3.修改dhcp配置文件
 
 
 
  配置文件是/etc/dhcp/dhcpd.conf,另外在/usr/share/doc/dhcp-4.1.1里有一个dhcpd.conf.sample,可以拷过来直接改。(具体路径不同的版本可能会不一样。)
 
 
 
  #cp/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
 
 
 
  #vi/etc/dhcp/dhcpd.conf
 
 
 
  我的配置文件如下,具体按照自己的网络环境改就可以了,sample中都有注释的。
 
 
 
  DHCPDARGS=ath0;
 
  optionrouters 192.168.3.1;
 
  option broadcast-address192.168.3.255;
 
  option subnet-mask 255.255.255.0;
 
  optiondomain-name "example.org";
 
  option domain-name-servers123.123.123.123;
 
  ddns-update-stylead-hoc;
 
  default-lease-time 21600;
 
  max-lease-time43200;
 
  subnet 192.168.3.0 netmask 255.255.255.0 {
 
      range192.168.3.50 192.168.3.254;
 
  }
 
 
 
  3.启动DHCP服务  
 
 
 
  #service dhcpdstart
 
 
 
  现在你的无线设备连上“madwifi”应该能自动或得一个IP地址了,接下来就是让他能够连上外网。
 
 
 
第三步:使用iptables转发
 
 
 
  1.安装iptables
 
 
 
  #yuminstall iptables
 
 
 
  2.启动内核ip转发
 
 
 
  #echo '1'>/proc/sys/net/ipv4/ip_forward
 
 
 
  3.设置转发规则
 
 
 
  #modprobleip_conntrack
 
 
 
  #iptables -t filter-F
 
 
 
  #iptables -t nat -F
 
 
 
  #iptables -t nat-A POSTROUTING -o p128p1 -jMASQUERADE
 
 
 
  OK,现在你的设备应该能上网了。如果还是不能上网,检查一下自己是不是哪里写错了或者重新加载一下网卡试试。
 
 
 
第四步:设置开机启动
 
 
 
  这是最后一步,也是最重要的一步。否则一旦重启,很多配置就要重新再配一遍了。。把命令写到开机启动脚本里就可以了
 
 
  #vi/etc/rc.d/rc.local
 
 
 
  在最后加上以下内容,其中ip什么的可能因为网络环境不一样而略有差别。
 
 
 
  #madwifi
 
  service network start
 
  ifconfig p128p1 192.168.0.235netmask 255.255.255.0
 
  route add default gw 192.168.0.2p128p1
 
  modprobe -r ath_pci
 
  modprobe ath_pciautocreate=ap
 
  iwconfig ath0 essid madwifi
 
  ifconfig ath0on
 
  ifconfig ath0 192.168.3.1 netmask 255.255.255.0
 
  #dhcp
 
  service dhcpd start
 
  # iptables
 
  echo '1' >/proc/sys/net/ipv4/ip_forward
 
  modprobleip_conntrack
 
  iptables -t filter -F
 
  iptables -t nat-F
 
  iptables -t nat -A POSTROUTING -o p128p1 -jMASQUERADE
 
 
 
  重启后,无线设备能连上"madwifi"并且能正常上网,大功告成!

喜欢0 评分0
游客

返回顶部