Linux下使用無線網卡搭建AP


  因為實驗需要,需要搭建無線AP,折騰了大半天,總算是搭好了。

  我的機器上裝了兩塊網卡,有線網卡通過網線接入網絡,另外還有一塊無線網卡,作為無線AP。因為我的實驗中要用到madwifi驅動,所以只能用配有Atheros芯片的網卡。其它型號的網卡,理論上只要換個驅動就OK了。 

  madwifi的官網google一下第一條就是,需要注意的是高於2.6.25的內核需要安裝打了補丁的madwifi驅動,否則編譯不過去。我的系統是CentOS 6.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*

  # cd madwifi*  

  2.如果原來安裝過madwifi,需要先清除。

  # ./scripts/madwifi-unload

  # ./scripts/find-madwifi-modules.sh /lib/modules

  2.編譯安裝madwifi

  注:要先安裝linux內核和sharutils工具包

  #yum install kernel-devel  

  #yum install sharutils*

  #make

  #make install

  3.如果原來是ath5k驅動的話,因為其優先級比madwifi高,需要禁用ath5k驅動。

  #modprobe -r ath5k

  #vi /etc/modprobe.d/blacklist.conf

  在最后加上blacklist ath5k

  4.加載madwifi驅動,並設為AP模式,設置ssid為madwifi

  #modprobe ath_pci autocreate=ap

  #iwconfig ath0 essid "madwifi"

  #iwconfig ath0 key off

  

  不出意外的話,無線設備應該能搜到"madwifi“信號了,如果你的設備上顯示是開放信號,就可以跳過下面這一段了。

  我在設置中關了WEP加密,理論上來說應該是不需要加密就可以連接的,但是我這里卻顯示“通過 WPA/WPA2 PSK進行保護"。找了半天,猜到可能是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服務。

  #service network start

  #ifconfig p128p1 192.168.0.235 netmask 255.255.255.0

  #route add default gw 192.168.0.2 p128p1

  #ifconfig ath0 192.168.3.1 netmask 255.255.255.0

  #ifconfig p128p1 on

  #ifconfig ath0 on

  2.下載安裝dhcp包

  #yum install dhcp

  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;
  option routers 192.168.3.1;
  option broadcast-address 192.168.3.255;
  option subnet-mask 255.255.255.0;
  option domain-name "example.org";
  option domain-name-servers 123.123.123.123;
  ddns-update-style ad-hoc;
  default-lease-time 21600;
  max-lease-time 43200;
  subnet 192.168.3.0 netmask 255.255.255.0 {
      range 192.168.3.50 192.168.3.254;
  }

  3.啟動DHCP服務

  #service dhcpd start

  現在你的無線設備連上“madwifi”應該能自動或得一個IP地址了,接下來就是讓他能夠連上外網。

第三步:使用iptables轉發

  1.安裝iptables

  #yum install iptables

  2.啟動內核ip轉發

  #echo '1' > /proc/sys/net/ipv4/ip_forward

  3.設置轉發規則

  #modproble ip_conntrack

  #iptables -t filter -F

  #iptables -t nat -F

  #iptables -t nat -A POSTROUTING -o p128p1 -j MASQUERADE

  OK,現在你的設備應該能上網了。如果還是不能上網,檢查一下自己是不是哪里寫錯了或者重新加載一下網卡試試。

第四步:設置開機啟動

  這是最后一步,也是最重要的一步。否則一旦重啟,很多配置就要重新再配一遍了。。把命令寫到開機啟動腳本里就可以了

  #vi /etc/rc.d/rc.local

  在最后加上以下內容,其中ip什么的可能因為網絡環境不一樣而略有差別。

  # madwifi
  service network start
  ifconfig p128p1 192.168.0.235 netmask 255.255.255.0
  route add default gw 192.168.0.2 p128p1
  modprobe -r ath_pci
  modprobe ath_pci autocreate=ap
  iwconfig ath0 essid madwifi
  ifconfig ath0 on
  ifconfig ath0 192.168.3.1 netmask 255.255.255.0
  # dhcp
  service dhcpd start
  # iptables
  echo '1' > /proc/sys/net/ipv4/ip_forward
  modproble ip_conntrack
  iptables -t filter -F
  iptables -t nat -F
  iptables -t nat -A POSTROUTING -o p128p1 -j MASQUERADE

  重啟后,無線設備能連上"madwifi"並且能正常上網,大功告成!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM