Debian/Ubuntu Linux:使用Hostapd搭建無線訪問點(WAP)
NIXCRAFT發表於2012年8月25日,在2014年7月9日更新,適用DEBIAN / UBUNTU, 網路, UBUNTU LINUX, 無線網路。
我們有個閒置的USB無線介面卡(WIFI介面卡),而我們的ISP路由器卻是有線的。怎樣把我們的家庭NAS伺服器變成無線訪問點(WAP),在不用買額外的WPA盒子的情況下,在Debian或Ubuntu系統下使用無線裝置訪問到它?
你需要使用hostapd作為訪問點和認證伺服器。它實現了IEEE 802.11訪問點管理,IEEE802.1X/WPA/WPA2/EAP授權,RADIUS客戶端,EAP伺服器和RADIUS授權伺服器。最新版本支援Linux:
1、Host AP
2、madwifi
3、mac80211-based
你可以使用USB或PCI/Mini-PCI介面的網絡卡。請注意不是所有的網絡卡活驅動支援AP模式。
案例安裝
1、wlan0 - 連線到Linux的無線PCI或USB裝置,在AP模式裡能夠使用a/b/g和WPA2。
2、eth0 - 有線網絡卡,埠連線於尚有路由器或交換機,具有internet訪問。
案例網路
Internet \ \\ |\ +------------+ RJ-11/ADSL-線路 \-----+ ISP 路由器 | +--------+ +------------+ RJ-45 (eth0) -------+ 交換機| 192.168.1.2 +--------+ 有 DNS/DHCPD | 服務 + +----> 筆記本無線 防火牆 | +----> 家庭 nas 伺服器 無線網絡卡 wlan0 和 eth0 有線網絡卡 | 配置 192.168.1.11 靜態 IP +----> 桌上型電腦有線 | +----> HP 印表機有線 | +----> Andriod 平板無線 | +----> Andriod 手機無線等
步驟1: 安裝hostapd
輸入命令:# apt-get install hostapd
輸出示例:
Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: hostapd 0 upgraded, 1 newly installed, 0 to remove and 15 not upgraded. Need to get 346 kB of archives. After this operation, 877 kB of additional disk space will be used. Get:1 http://debian.osuosl.org/debian/ squeeze/main hostapd amd64 1:0.6.10-2 [346 kB] Fetched 346 kB in 2s (151 kB/s) Selecting previously deselected package hostapd. (Reading database ... 267669 files and directories currently installed.) Unpacking hostapd (from .../hostapd_1%3a0.6.10-2_amd64.deb) ... Processing triggers for man-db ... Setting up hostapd (1:0.6.10-2) ...
步驟2: 配置hostadp
編輯 /etc/default/hostapd,鍵入:
# vi /etc/default/hostapd
去掉DAEMON_CONF 前的註釋,並設定它的值為hostapd配置檔案的絕對路徑,這樣hostapd會隨系統一起啟動:
DAEMON_CONF="/etc/default/hostapd.conf"
儲存,關閉檔案。接著建立一個文字檔案: /etc/hostapd/hostapd.conf,鍵入:
設介面名稱:
### Wireless network name ### interface=wlan0 ### Set your bridge name ### bridge=br0
設驅動名稱
driver=nl80211
設國家名稱程式碼,格式遵循ISO/IEC 3166-1格式。這樣做用來設定管理域。根據需要設定,以說明裝置在哪個國家操作。這會限定可用的頻道和發射功率。
### (IN == INDIA, UK == United Kingdom, US == United Stats and so on ) ### country_code=IN
設定你的SSID:
ssid=nixcraft
設定操作模式(a=IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.11g):
hw_mode=g
設定頻道(有的驅動僅使用值0):
channel=6
設定wpa模式為2:
wpa=2
設定你的密碼短語(Wifi連線密碼):
wpa_passphrase=MyWiFiPassword
為WPA2設定金鑰和認證管理選項
## 金鑰管理演算法 ## wpa_key_mgmt=WPA-PSK ## Set cipher suites (encryption algorithms) ## ## TKIP = Temporal Key Integrity Protocol ## CCMP = AES in Counter mode with CBC-MAC wpa_pairwise=TKIP rsn_pairwise=CCMP ## 共享金鑰認證 ## auth_algs=1 ## 接受所有mac訪問 ### macaddr_acl=0
儲存並關閉這檔案。
我怎樣啟動/停止/重啟AP?
使用下列命令:
# /etc/init.d/hostapd start
# /etc/init.d/hostapd stop
# /etc/init.d/hostapd restart
步驟3: 配置 /etc/network/interfaces
你可以使wlan0工作於獨立模式,也可以把它橋接於eth0。橋接模式允許你的無線客戶端訪問其他的LAN,而且你能夠連線到internet。大多數使用者把無線介面橋接到AP有Internnet連線的介面上。
設定br0(wlan0+eth0)為橋接模式
需要安裝bridge-utils包來配置Linux網絡卡橋接:
# apt-get install bridge-utils
輸出:
Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: bridge-utils 0 upgraded, 1 newly installed, 0 to remove and 15 not upgraded. Need to get 32.7 kB of archives. After this operation, 176 kB of additional disk space will be used. Get:1 http://debian.osuosl.org/debian/ squeeze/main bridge-utils amd64 1.4-5 [32.7 kB] Fetched 32.7 kB in 1s (25.5 kB/s) Selecting previously deselected package bridge-utils. (Reading database ... 267692 files and directories currently installed.) Unpacking bridge-utils (from .../bridge-utils_1.4-5_amd64.deb) ... Processing triggers for man-db ... Setting up bridge-utils (1.4-5) ...
編輯 /etc/network/interfaces, 輸入:
# vi /etc/network/interfaces
修改,或設定其配置如下:
auto lo br0 iface lo inet loopback # wireless wlan0 allow-hotplug wlan0 iface wlan0 inet manual # eth0 connected to the ISP router allow-hotplug eth0 iface eth1 inet manual # Setup bridge iface br0 inet static bridge_ports wlan0 eth0 address 192.168.1.11 netmask 255.255.255.0 network 192.168.1.0 ## isp router ip, 192.168.1.2 also runs DHCPD ## gateway 192.168.1.2 dns-nameservers 192.168.1.2
儲存並並關閉檔案。到此,我建議你重啟計算機,或者像下面那樣重啟所有的服務(使用遠端ssh會話可能不工作):
# /etc/init.d/networking restart
# /etc/init.d/hostapd restart
或者:
# reboot
關於DHCPD 的注意
既然你讓WAP跑在橋接(br0)模式,在WAP上DHCPD不是必需的。它可以使用LAN內任意地方的DHCPD伺服器。在本例子中 192.168.1.2是一個ISP路由器,它提供了DHCPD服務。如果你沒有使用DHCPD伺服器,參照以下安裝:
關於防火牆的注意
如何處理WAP問題?
WPA的日誌資訊在 /var/log/syslog檔案中:
# tail -f /var/log/syslog
檢查DHCPD中繼是否工作:
# tcddump -n port 67 或 ort 68
確定防火牆沒有阻止需要的埠:
# /sbin/iptables -L -n -v | less
確定br0的mac地址正確,並且它已經在執行:
# ifconfig br0
# ifconfig | grep HW
# brctl
show
# brctl showmacs bro
最後,確認你使用了以下軟體的最新版本:
- Linux kernel
- Wireless card drivers and firmware
- hostapd
參考:
- hostapd documentation from the Linux kernel wireless wiki.
- Download latest version of hostapd from the official web-site or read documentation here or run the commandvi /usr/share/doc/hostapd/examples/hostapd.conf.gz
- man pages - hostapd, brctl command, and interfaces
相關推薦
Debian/Ubuntu Linux:使用Hostapd搭建無線訪問點(WAP)
NIXCRAFT發表於2012年8月25日,在2014年7月9日更新,適用DEBIAN / UBUNTU, 網路, UBUNTU LINUX, 無線網路。 我們有個閒置的USB無線介面卡(WIFI介面卡),而我們的ISP路由器卻是有線的。怎樣把我們的家庭NAS伺服器變成無線
Spring boot入門:快速搭建Spring boot專案(一)
(一)Spring boot介紹 本部分摘自:https://www.zhihu.com/question/64671972/answer/223383505 Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定
阿里雲 linux伺服器環境搭建學習 安裝jdk(一)
由於公司用於工作開發的電腦效能不佳,平時在工作過程中沒問題,但是自己去研究一下新框架的時候,一下跑2個idea+4-5個timcat時效能就不夠用了,所以自己購買了一臺低配的阿里雲伺服器,用於自己平時的學習。 寫這個部落格也是記錄下自己從頭到尾搭建服務環境的一個過程,畢竟平時在伺服器上動來動去的
Linux使用Rsyslog搭建中心日誌伺服器(轉載)
Syslog是一個通過IP網路允許一臺機器傳送事件通知資訊給事件收集者(Syslog伺服器或者Syslog Daemon)的協議。換言之,就是一臺機器或者裝置能夠被配置,使之產生Syslog資訊並且傳送到一臺特定的Syslog伺服器/Daemon。 Syslog資訊建立在UDP之上,一般S
Debian/Ubuntu Linux 下安裝LLVM/Clang 編譯器
第二步,安裝前必須取得相關證書 wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key|sudo apt-key add - 第三步,可以開始用apt安裝了 apt-get install clang-3.4 lldb-3.4 To install all p
ubuntu 16.04 下搭建git服務器(gitosis+git-daemon+gitweb)
eight 進入 app 運行 global glob log text star 近期公司為了方便管理項目,要搭建一個git服務器集中管理項目數據。通過請教同事,並在虛擬機上多次嘗試終於搭建成功,特意將搭建過程分享給跟我一樣的小白。環境:服務器端: git-server
windows環境下搭建Java開發環境(一):jdk安裝和配置
變量 win jns jdk安裝 分享 tool 直接 www. 技術 一、資源下載 官網:http://www.oracle.com/technetwork/java/javase/downloads/index.html 本人安裝的是jdk1.8,百度雲資源:鏈
分享知識-快樂自己:搭建第一個 Hibernate (Demo)
分享圖片 depend 文件夾 super bbb tool ets 數據庫配置 unicode 使用 Hibernate 完成持久化操作 七大 步驟: 1、讀取並解析配置文件及映射文件: Configuration configuration=new Configur
持續集成之二:搭建SVN服務器(subversion)
tar.gz .net .com aries word blog epo usr 目錄 安裝環境 Red Hat Enterprise Linux Server release 7.3 (Maipo) jdk1.7.0_80 subversion-1.10.3.
Linux進階:自動化運維之ANSIBLE(一)
運維自動化發展歷程 1、本地部署(On-Premiss) 部署硬體+軟體+作業系統+環境+服務 2、基礎設施即服務(Iaas) 相當於只准備硬體 3、平臺即服務(Paas) 相當於只准備服務 4、軟體即服務(SaaS) 直接使用 企業實際應用場景分析 1、Dev開發環境 使用者:程式
自己動手:做個數據庫訪問層(一)
說資料庫是資訊系統裡最重要的部分,應當沒幾個人反對。最簡單的訪問資料庫的方式就是用程式直連資料庫,通過Sql進行操作,相信這也是每個程式設計師最初學的方法。但隨著程式規模的增大,再一條條語句去寫的話開發效率就有些低了,因此才有了很多框架去幫助我們操作資料庫
乾貨:Nginx+Tomcat搭建負載均衡叢集(轉載)
一、 工具 nginx-1.8.0 apache-tomcat-6.0.33 二、 目標 實現高效能負載均衡
使用O2OA二次開發搭建企業辦公平臺(十)組織管理篇:組織管理者設定
本部落格為O2OA系列教程、O2OA使用手冊,教程目錄和各章節天梯將在連載完後更新。 使用O2OA二次開發搭建企業辦公平臺(一)平臺部署篇:平臺下載和部署 使用O2OA二次開發搭建企業辦公平臺(二)平臺部署篇:埠衝突和伺服器埠配置 使用O2OA二次開發搭建企業辦公平臺(三)平臺部署篇:使用外部資料庫
使用O2OA二次開發搭建企業辦公平臺(九)組織管理篇:組織職務的建立和使用
本部落格為O2OA系列教程、O2OA使用手冊,教程目錄和各章節天梯將在連載完後更新。 使用O2OA二次開發搭建企業辦公平臺(一)平臺部署篇:平臺下載和部署 使用O2OA二次開發搭建企業辦公平臺(二)平臺部署篇:埠衝突和伺服器埠配置 使用O2OA二次開發搭建企業辦公平臺(三)平臺部署篇:使用外部資料庫
使用O2OA二次開發搭建企業辦公平臺(十三)流程開發篇:報銷審批流程表單開發
本部落格為O2OA系列教程、O2OA使用手冊,教程目錄和各章節天梯將在連載完後更新。 使用O2OA二次開發搭建企業辦公平臺(一)平臺部署篇:平臺下載和部署 使用O2OA二次開發搭建企業辦公平臺(二)平臺部署篇:埠衝突和伺服器埠配置 使用O2OA二次開發搭建企業辦公平臺(三)平臺部署篇:使用外部資料庫
【linux】Valgrind工具集詳解(十三):DRD(執行緒錯誤檢測器)
一、概述 多執行緒程式設計需要注意的問題: 資料競爭;鎖競爭;POSIX執行緒API使用不當;死鎖; 二、使用 1、例子main.c原始碼 #include <stdio.h> #include <pthread.h> #include <s
【linux】Valgrind工具集詳解(十三):Helgrind(執行緒錯誤檢測器)
一、概述 Helgrind用於檢測C、C ++和Fortran程式中使用符合POSIX標準的執行緒函式造成的同步錯誤。 POSIX中關於執行緒的主要抽象描述有:共享公共地址空間的一組執行緒、執行緒建立、執行緒連線、執行緒退出、互斥(鎖)、條件變數(執行緒間事件通知)、讀寫器鎖、自
【linux】Valgrind工具集詳解(十):SGCheck(檢查棧和全域性陣列溢位)
一、概述 SGCheck是一種用於檢查棧中和全域性陣列溢位的工具。它的工作原理是使用一種啟發式方法,該方法源於對可能的堆疊形式和全域性陣列訪問的觀察。 棧中的資料:例如函式內宣告陣列int a[10],而不是malloc分配的,malloc分配的記憶體是在堆中。 SGCheck和Me
【linux】Valgrind工具集詳解(九):Memcheck檢查的內容和方法
一、值的有效性 1、什麼是值的有效性? 英文原文是Valid-value (V) bits,直譯過來就是有效值(V)位。 我將它理解為值的有效性,就是判斷在記憶體或CPU的實體地址中儲存的資料是否有效,比如在記憶體中變數(int i)代表的物理位置(不是地址),沒有初始化,就去使用它
【linux】Valgrind工具集詳解(八):Memcheck命令列引數詳解
【linux】Valgrind工具集詳解(五):命令列詳解中不夠全,在此專門針對Memcheck工具中的命令列引數做一次詳細的解釋。 Memcheck命令列選項 –leak-check=<no|summary|yes|full> [default: summary]