0

0

无AP模式下的CentOS7使用hostapd实现的完整指南

王林

王林

发布时间:2024-01-04 09:55:38

|

1324人浏览过

|

来源于脚本之家

转载

这篇是 linux 下使用 hostapd 实现无线接入点 ap 模式的另一种实现方式:hostapd 路由模式配置。

对于软硬件的基本配置及 hostapd 安装在《CentOS 7 之 hostapd AP模式配置》的前半部分内容中有说明,可以先看看那篇,再看本文。

hostapd 的AP模式配置需要的有线网卡和无线网卡进行桥接,那路由模式配置主要就是将无线网卡的数据通过有线网卡进行伪装、转发两个方面,也就不再需要将有线和无线网卡进行桥接。

配置这种路由模式就类似一台普通的无线路由器,有线网口就相当于普通无线路由器的 WAN 接口,无线网卡就负责发送广播无线信号供手机、笔记本的无线设备接入实现网络访问。

但也有区别的地方就是跟普通无线路由器相比,这种实现方式没有四个普通的 LAN 接口,不能供其它台式机等进行有线连接。

实际上 linux 作为网络功能为主的操作系统也是可以连接的,只是需要交换机等设备等,会复杂些。我这里的配置就当作是没有四个 LAN 接口的普通无线路由器。

hostapd.conf 配置

这里只是一个最小化的配置:

# /etc/hostapd/hostapd.conf 最小化配置

interface=wlp2s0

#bridge=br0                              #不再需要桥接,将这行注释就可以

driver=nl80211

ssid=test

hw_mode=g

channel=1

auth_algs=3

ignore_broadcast_ssid=0                 # 是否广播,0 广播

wpa=3

wpa_passphrase=12345678                 # 无线连接密码

配置跟AP模式配置文件类似,只要注释掉 bridge=br0 选项就可以。

有线接口配置

首先我们需要正确配置有线接口并且可以正常上网。最简单的是方式就是从路由器那自动获取IP地址、网关、DNS。如果没有路由器的话那就需要手动设置有线接口的上网方式,例如常用的PPPOE方式、静态IP地址方式、动态获取IP地址方式等。反正动态获取IP地址的最简单。

无线接口设置 使用 ip addr add 命令

使用 ip addr add 命令设置无线网卡的 IP 地址,重启后就会失效。例如172.16.0.1/24或其他私有地址,还有就是不要与有线网卡处在同一个网段。一般有线网卡从路由器获取的IP地址是 192.168.1.0/24 网段地址。

ip addr add 172.16.0.1/24 dev wlp2s0

坑提示:目前 CentOS 7 默认使用的是 NetworkManager 套件作为网络配置工具。这里遇到一个问题就是,NetworkManager 套件其提供的 nmcli 命令并不支持给无线网卡设置静态的 IP 地址,这就需要使用 ip addr add 命令手动设定无线网卡的 IP 地址或者在 /etc/sysconfig/network-scripts/ 文件夹下面新建配置文件,这是比较老且经典的一种接口配置方式。

使用网络配置文件

如要想想保存设置,可以新建一个文件 /etc/sysconfig/network-scripts/ifcfg-static-wlp2s0 ,文件名以 ifcfg 前缀。

vi /etc/sysconfig/network-scripts/ifcfg-static-wlp2s0

[root@server ~]# vi /etc/sysconfig/network-scripts/ifcfg-static-wlp2s0

#TYPE=Ethernet

#BOOTPROTO=none

#DEFROUTE=yes

#IPV4_FAILURE_FATAL=no

#IPV6INIT=yes

#IPV6_AUTOCONF=yes

#IPV6_DEFROUTE=yes

#IPV6_FAILURE_FATAL=no

#NAME=static-wlp2s0

#UUID=a036678e-8fdf-48f3-8693-961bb6326i744 

DEVICE=wlp2s0                                        #指定无线网卡的接口

ONBOOT=yes                                           #开机就进行设置

IPADDR=172.16.0.1                                    #指定IP地址

PREFIX=24                                            #指定掩码长度

#GATEWAY=192.168.10.254                              #其他用不着注释掉

#DNS1=127.0.0.1

#DNS2=192.168.10.254

#IPV6_PEERDNS=yes

#IPV6_PEERROUTES=yes

保存后需要先停止 NetworkManager.service 服务,最好禁止开机启动,不然还是会有问题。主要表现为开机时 network.service 无法启动。

禁止 NetworkManager.service 服务开机启动

systemctl disable  NetworkManager.service

停止 NetworkManager.service 服务

systemctl stop  NetworkManager.service

想看看有没有生效可以重启 network.service 服务或直接重启系统。

systemctl restart network.service

启用转发和配置接口伪装 启用转发

使用 sysctl -w 重启后会失效

蓝色大气通用企业公司网站2.0
蓝色大气通用企业公司网站2.0

蓝色大气通用企业公司网站源码,这是一款采用经典的三层结构,可以动态、伪静态模式,后台功能实用,界面大气,无限级分类,单篇栏目添加等的企业网站源码,比较适合二次开发或者企业自用,感兴趣的可以下载看一下啊。网站源码完整,后台是我作为程序员多年认为最为好用的一款后台,有时间我将发布更多的模板供大家下载使用,数据库为ACCESS,如需MSSQL数据库可与我联系。功能介绍:【新闻文章管理】可以发布公司新闻和

下载

sysctl -w net.ipv4.ip_forward=1

[root@server ~]# sysctl -w net.ipv4.ip_forward=1

net.ipv4.ip_forward = 1

启用 IP 转发重启后不会失效使用下面方法,系统重启后会自动加载 /etc/sysctl.d/ 文件夹下的设置。

vi /etc/sysctl.d/ip_forward.conf

[root@server ~]# vi /etc/sysctl.d/ip_forward.conf 

net.ipv4.ip_forward = 1

配置接口伪装

CentOS 7 中使用 firewalld 和 iptables 都能做到接口伪装。CentOS 7 中默认启用的是 firewalld.service 服务。iptables 服务和 firewalld 服务冲突,两者只能启用其中一个。

使用 firewalld 配置接口伪装

如果能使用图形界面配置的话更加简单明了,这里仅使用 firewalld-cmd 命令方式配置。

如果没有启动 firewalld.service 服务,需要先启动 firewalld.service 服务。

systemctl start firewalld.service

将无线接口加入到 trust 区域,并保存配置。默认情况下所有接口属于 public 区域,连接限制比较严格,会导致无法连接。

firewall-cmd --zone=trusted --add-interface=wlp2s0 --permanent

[root@server ~]# firewall-cmd --zone=trusted --add-interface=wlp2s0 --permanent 

success

对有线接口所在的区域启用伪装,并保存配置,默认情况下有线接口属于 public 区域。

firewall-cmd --zone=public --add-masquerade --permanent

[root@server ~]# firewall-cmd --zone=public --add-masquerade --permanent 

success

重启 firewalld 服务

systemctl restart firewalld.service

使用 iptables 配置接口伪装

如果习惯使用 iptables ,需要安装 iptables-services 这个包,里面包含 iptables.service 和 ip6tables.service 这两个服务,分别用于 ipv4 和 ipv6。

要使用 iptables 需要先停止并禁用 firewalld.service 服务

systemctl stop firewalld.service

systemctl disable firewalld.service

再启用 iptables.service 服务,因为目前还是主要使用 ipv4 所以只启用 iptables.service 就可以。如果使用 iptables 同样需要设置开机启动 iptables.service 服务。

systemctl enable iptables.service

启动 iptables.service 服务

systemctl start iptables.service

接口伪装

iptables -t nat -A POSTROUTING  -o p2p1 -j MASQUERADE

一般来说配置上面的命令就可以了,如果防火墙设置比较严格需要添加允许转发无线网卡接口wlp2s0。

iptables -t filter -A FORWARD -i wlp2s0 -j ACCEPT

dnsmasq 配置 dnsmasq 软件安装

dnsmasq 主要负责分配客户端IP地址及DNS解析服务。

没有安装的话先安装 dnsmasq 软件

yum install dnsmasq

设置开机自动启动 dnsmasq 服务

systemctl enable dnsmasq.service

dnsmasq.conf 配置

vi /etc/dmsmasq.conf

[root@server ~]# vi /etc/dnsmasq.conf

# 指定接口,指定后同时附加lo接口,可以使用'*'通配符

interface=wlp2s0

# 绑定接口

bind-interfaces

# DHCP地址池 从172.16.0.100到172.16.0.200

dhcp-range=172.16.0.100,172.16.0.200,255.255.255.0,1h

启动 dnsmansq 服务需要无线网卡已经正确设置了 ip 地址。dnsmasq 会自动将当前的无线网卡地址 172.16.0.1 设置为客户端的网关地址和DNS地址。

systemctl start dnsmasq.service

最后重新启动 hostapd 服务

systemctl restart hostapd.service

相关专题

更多
504 gateway timeout怎么解决
504 gateway timeout怎么解决

504 gateway timeout的解决办法:1、检查服务器负载;2、优化查询和代码;3、增加超时限制;4、检查代理服务器;5、检查网络连接;6、使用负载均衡;7、监控和日志;8、故障排除;9、增加缓存;10、分析请求。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

541

2023.11.27

default gateway怎么配置
default gateway怎么配置

配置default gateway的步骤:1、了解网络环境;2、获取路由器IP地址;3、登录路由器管理界面;4、找到并配置WAN口设置;5、配置默认网关;6、保存设置并退出;7、检查网络连接是否正常。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

219

2023.12.07

硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

989

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

49

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

193

2025.12.29

go中interface用法
go中interface用法

本专题整合了go语言中int相关内容,阅读专题下面的文章了解更多详细内容。

76

2025.09.10

Golang channel原理
Golang channel原理

本专题整合了Golang channel通信相关介绍,阅读专题下面的文章了解更多详细内容。

239

2025.11.14

golang channel相关教程
golang channel相关教程

本专题整合了golang处理channel相关教程,阅读专题下面的文章了解更多详细内容。

320

2025.11.17

桌面文件位置介绍
桌面文件位置介绍

本专题整合了桌面文件相关教程,阅读专题下面的文章了解更多内容。

0

2025.12.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Bootstrap 5教程
Bootstrap 5教程

共46课时 | 2.7万人学习

Go语言实战之 GraphQL
Go语言实战之 GraphQL

共10课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号