请选择 进入手机版 | 继续访问电脑版
查看: 1379|回复: 0

[技术交流] linux软AP--hostapd+dhcpd

[复制链接]

185

主题

204

帖子

596

积分

利尔达员工

Rank: 9Rank: 9Rank: 9

积分
596
发表于 2020-6-27 13:51:52 | 显示全部楼层 |阅读模式

[size=12.6316px]随着手机、笔记本等无线设备的增多,公司里的家用三个无线路由器已经不堪重负,老是有人说连不上。谁让咱是运维呢,在很多人眼里运维 =网管 (深表委屈),没办法就再兼一个企业网管的职务吧 。给BOSS提出的解决方案有二:一、购买企业无线路由 ,价格从几百到几千不等,性能从支持30台设备到100台以也不等,最大速率从150M到1300M等也有很多档次,还有一些其他参数和功能不再一一表述;二、购买无线网卡配合linux hostapd +dhcpd或dnsmasq ,功能方面可以根据需要自由扩展 ,成本一块无线网卡100元以内,一台退休的破台机(而且可以兼做网关,ftp等用)。

一、网卡选择

[size=12.6316px]不同于windows上,大部分的网卡都支持软AP ,linux下的网卡需要支持mode master的才可以做软AP 。具体识别方法如下

[size=12.6316px]1、iwconfig识别


[root@localhost $ sudo iwconfig wlan0 mode masterPassword:Error for wireless request "Set Mode" (8B06) :    SET failed on device wlan0 ; Invalid argument.

[size=12.6316px]2、iw识别

[size=12.6316px]上面的操作失败,证明不支持。再进行进一步的验证,有些新的网卡用的是mac80211 framework,对于这些网卡的话,用iwconfig来测试它是否支持master模式是行不通的。
因为他们是使用新的 nl80211接口在用户空间通信的。再使用iw命令进行测试:


[root@localhost $ sudo  iw list........略........................    Supported interface modes:         * IBSS         * managed         * AP         * AP/VLAN

[size=12.6316px]如果「Supported interface modes」中有「AP」的话,那么恭喜你,你的无线网卡可以架设虚拟AP 。如果没有则不支持。

[size=12.6316px]3、驱动识别


[root@localhost $ sudo ethtool -i wlan0driver: iwlagnversion: 3.0-ARCHfirmware-version: 8.83.5.1 build 33692bus-info: 0000:03:00.0supports-statistics: nosupports-test: nosupports-eeprom-access: nosupports-register-dump: no

[size=12.6316px]例如上面的示例中使用的驱动为iwlagn,通过http://wireless.kernel.org/en/users/Drivers AP模式支持的驱动列表里的查找AP项为yes的未发现iwlagn ,证明其不支持。

[size=12.6316px]即然如此,如何在未购买网卡前选择一款一定支持的网卡呢?wireless.kernel.org也给我们提供了一个方法 ,通过http://wireless.kernel.org/en/users/Devices  硬件列表 (该页按pci、usb、pcmcia接口类型做了区分,点开相应的类型即可查看具体的硬件)。当然,这个表里列出的并不完全,也并不能保证是最适合做软AP的硬件 。是否识合请参查看上面的三个方法。

二、hostapd+dnsmasq配置

[size=12.6316px]选择好网卡,接下来就是linux下的软件配置。以linux mint为例(基于ubuntu ,以下的示例同样适用于ubuntu)

[size=12.6316px]1、安装软件


[root@localhost $ sudo apt-get install hostapd dnsmasq

[size=12.6316px]Dnsmasq是一个小巧且方便地用于配置DNS和DHCP的工具,适用于小型网络 。如果网络环境内的机器较多,建议换用dhcpd 。

[size=12.6316px]2、hostapd配置


[root@localhost $ sudo vim /etc/hostapd/hostapd.confinterface=wlan0driver=nl80211ssid=My_wifichannel=6hw_mode=gignore_broadcast_ssid=0auth_algs=1wpa=3wpa_passphrase=11111111wpa_key_mgmt=WPA-PSKwpa_pairwise=TKIPrsn_pairwise=CCMP

[size=12.6316px]以上是一个示例配置,配置了一个AP名称为My_wifi,密码为8个1的wpa加密方式的软AP 。配置完成后可以通过hostadp  /etc/hostapd/hostapd.conf检测文件配置 。配置文件正常的话可以通过/etc/init.d/hostapd start启动,启动前,请确认以下行是否增加,如果该行值为空的话,请按下面修改


# sudo vim /etc/init.d/hostapd将文件中 DAEMON_CONF 的值改成下面这样:DAEMON_CONF=/etc/hostapd/hostapd.conf

[size=12.6316px]3、dnsmasq配置


#sudo vim /etc/dnsmasq.confinterface=wlan0listen-address=192.168.100.1#no-dhcp-interface=dhcp-range=192.168.100.50,192.168.100.150,12hserver=/google/8.8.8.8

[size=12.6316px]上面配置了dnsmasq 监听的接口,该接口的IP、dhcp地址的范围、租期长短、dns等。如果想使用dhcpd也可以,这里省略dhcpd.conf的配置 。

[size=12.6316px]3、配置无线接入点IP


sudo ifconfig wlan0 192.168.100.1 netmask 255.255.255.0  up

[size=12.6316px]4、开启主机的路由转发


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

[size=12.6316px]以上配置为立即生效,但重启系统后就会失效,可以使其重启后有效的方法是修改/etc/sysct.conf文件,在其中增加如下一行:


#sudo vim /etc/sysctl.confnet.ipv4.ip_forward=1#sysctl -p 生效

[size=12.6316px]5、共享上网

[size=12.6316px]关于通过局域网eth0共享上网的方法有两种:一种是桥接模式,一种是nat模式,这里以nat模式为例:


iptables -A FORWARD -i wlan0 -o eth0 -s 192.168.100.0/24 -m state --state NEW -j ACCEPTiptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPTiptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

[size=12.6316px]通过以上步骤配置就可以完成无线AP上网了。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表