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服务器,参照以下安装:

关于防火墙的注意

你可以安装防火墙来抵御进攻。参阅这里:install
shorewall on Debian or Ubuntu Linux
.

如何处理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

参考:

原文

时间: 2024-10-14 10:04:40

Debian/Ubuntu Linux:使用Hostapd搭建无线访问点(WAP)的相关文章

嵌入式Linux利用Wifi搭建无线服务器(物联网实践之无线网关)

在 http://www.cnblogs.com/heat-man/p/4564539.html中,在嵌入式Linux开发板上我们从最底层实现了一个智能家居的远程控制系统,然而采取的是用网线连接到交换机上的,感觉老土.巧的是,来北京找工作,找到一家做Wifi模组的公司,这几天老大给我的任务是在min210上开发板上跑我们的Wifi模块,以便熟悉环境,好不容易昨天刚搞好,就把自己写的服务器架上试了试,md,无线的感觉就是不一样呀! 下面整理一下思路: 首先你需要一些硬件设施: ARM开发板,计算机

Ubuntu Linux下快速搭建Samba服务

引用:http://www.linuxidc.com/Linux/2016-03/129195.htm Samba服务对于从事Linux开发从业人员来说并不陌生,现在也有Windows版本了,当我们在开发Linux驱动或者应用的时候,一般都输需要个Linux开发环境.对于大公司来说有个服务器可供程序员们公共使用,但对于小公司来说一般是在虚拟机里转个Linux开发环境,也很少用实体机来装Linux的,当然也有例外.这是时候往往涉及到Windows和Linux之间文件交互的问题,我现在用的最多的就是

Debian/Ubuntu Linux 下安装LLVM/Clang 编译器

第一步,首先编辑 /etc/apt/sources.list,增加下面源: (加入源后务必执行apt-get update,假设有错误提示,先执行第二步,然后apt-get update) Debian平台: deb http://llvm.org/apt/wheezy/ llvm-toolchain-wheezy main deb-src http://llvm.org/apt/wheezy/ llvm-toolchain-wheezy main deb http://llvm.org/apt

Ubuntu 14.04 下搭建SVN服务器 (转载自 http://www.linuxidc.com/Linux/2015-01/111956.htm)-------------我所用到是红色字体

http://www.linuxidc.com/Linux/2015-01/111956.htm Ubuntu 14.04 下搭建SVN服务器 svn:// 安装软件包: sudo apt-get install subversion 之后选择SVN服务文件及配置文件的放置位置.我放在了/srv下的svn目录. cd /srv sudo mkdir svn 我的svn版本仓库叫tone_src cd /srv/svn sudo mkdir tone_src 目录建好后 创建版本仓库 sudo s

Debian 8.x / Ubuntu 16.04.x 搭建 Ghost 教程

Ghost 是一款使用 Node.js 开发的博客系统,相对于使用 PHP 开发的 WordPress 更轻巧友好,所以本站已经从 WordPress 切换至 Ghost,本文介绍在 Debian 8.x 和 Ubuntu 16.04 下搭建 Ghost 的教程 本文所有操作均在 root 用户下进行,请自行切换 首先,更新系统 apt-get update && apt-get upgrade 如果您用的 Debian 8.x 开启了 backports 也可以更新下 apt-get -

[转] Ubuntu/Linux Mint/Debian 安装 Java 8

本PPA由webupd8制作,支持Ubuntu 12.10, 12.04, 11.10, 11.04, 10.10 和 10.04以及对应的Linux Mint版本,Oracle Java 8包提供JDK8 和 JRE8. sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java8-installer 安装后查看版本: $ java -version java

嵌入式linux开发环境搭建(五)——Ubuntu第三方软件仓库源

嵌入式linux开发环境搭建(五)--Ubuntu第三方软件仓库源 一般来说ubuntu官方的软件仓库由于服务器在国外,下载更新速度较慢,需要将软件仓库更换为国内镜像点. 1.修改源配置文件 先备份原来的配置文件 mv /etc/apt/sources.list /etc/apt/sources.list.bak vim /etc/apt/sources.list 将国内的Ubuntu镜像点添加到配置文件 Ubuntu 163镜像点: deb http://mirrors.163.com/ubu

【Linux学习】Ubuntu下 samba服务器搭建

1.安装samba,smbfs 2.配置smb.conf文件 配置文件之前需要先备份一下需要配置的文件(养成好的习惯) 输入命令: 进入到smb.conf文件中,在文件的最后添加下列语句 保存后,退出. 3.启动服务 4.现在在samba共享的文件夹下有一下文件 然后通过windows访问共享目录,输入 \\172.16.42.6后看到共享的temp文件夹, [Linux学习]Ubuntu下 samba服务器搭建,布布扣,bubuko.com

开启Ubuntu Linux下VirtualBox访问USB功能

解决方法如下: 1.增加用户组usbfs sudo groupadd usbfs 2.查看usbfs用户组的gid cat /etc/group | grep usbfs usbfs:x:1002: 3.把当前用户增加到usbfs组 sudo gedit /etc/group 把 usbfs:x:1002: 修改为 usbfs:x:1002:joson(joson改为自己的用户名) 开启Ubuntu Linux下VirtualBox访问USB功能