1. 程式人生 > >Debian/Ubuntu Linux:使用Hostapd搭建無線訪問點(WAP)

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

參考:

原文

相關推薦

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]