iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >CentOS7如何使用hostapd实现无AP模式
  • 542
分享到

CentOS7如何使用hostapd实现无AP模式

2023-06-10 03:06:40 542人浏览 八月长安
摘要

这篇文章主要介绍了Centos7如何使用hostapd实现无AP模式,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。这篇是 linux 下使用 hostapd 实现无

这篇文章主要介绍了Centos7如何使用hostapd实现无AP模式,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

这篇是 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 重启后会失效

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

感谢你能够认真阅读完这篇文章,希望小编分享的“CentOS7如何使用hostapd实现无AP模式”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: CentOS7如何使用hostapd实现无AP模式

本文链接: https://www.lsjlt.com/news/259067.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • CentOS7如何使用hostapd实现无AP模式
    这篇文章主要介绍了CentOS7如何使用hostapd实现无AP模式,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。这篇是 linux 下使用 hostapd 实现无...
    99+
    2023-06-10
  • 如何使用hostapd和dhcpd在Ubuntu上开启无线热点
    本篇内容介绍了“如何使用hostapd和dhcpd在Ubuntu上开启无线热点”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Hostapd简...
    99+
    2023-06-13
  • CentOS7如何进入单用户模式?
    centos 7进入单用户模式的方法:首先进入开机界面,按e进行选择;然后找到相关的行,在行尾添加【init=/bin/sh】;最后按住【Ctrl+x】执行就可以进入单用户模式。 具体步骤: 首先开机进入初始界面  在进入该页面之后要立即...
    99+
    2023-08-31
    linux centos 服务器
  • 如何使用JavaScript实现模板方法模式
    模板方法模式是一种行为设计模式,它是指将一个算法的骨架定义在一个操作中,将一些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的情况下重新定义算法的某些步骤。在本文中,我们将介绍如何使用 JavaScript 实现模板方法模式。实...
    99+
    2023-05-14
  • 如何使用Javascript实现单例模式
    这篇文章给大家分享的是有关如何使用Javascript实现单例模式的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。JavaScript是什么JavaScript是一种直译式的脚本语言,其解释器被称为JavaScri...
    99+
    2023-06-14
  • 如何使用Spring实现策略模式
    本篇内容介绍了“如何使用Spring实现策略模式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Spring 中 @Autowired注解,大...
    99+
    2023-06-27
  • 如何使用PHP实现观察者模式
    小编给大家分享一下如何使用PHP实现观察者模式,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!观察者模式为您提供了避免组件之间紧密...
    99+
    2024-04-02
  • 如何使用Javascript实现建造者模式
    小编给大家分享一下如何使用Javascript实现建造者模式,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!JavaScript有什么特点1、js属于一种解释性脚本语言;2、在绝大多数浏览器的支持下,js可以在多种平台下运行...
    99+
    2023-06-14
  • 如何使用Python元类实现单例模式
    这篇文章主要介绍了如何使用Python元类实现单例模式,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。元类实现:class MetaClass(type): ...
    99+
    2023-06-17
  • 如何使用Python继承实现单例模式
    这篇文章给大家分享的是有关如何使用Python继承实现单例模式的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。继承实现:class ParentClass:    ...
    99+
    2023-06-17
  • 如何实现Repository模式
    这篇文章主要介绍“如何实现Repository模式”,在日常操作中,相信很多人在如何实现Repository模式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何实现Repository模式”的疑惑有所帮助!...
    99+
    2023-06-22
  • 如何实现CentOS7使用Docker Overlay2存储驱动
    这篇文章主要讲解了“如何实现CentOS7使用Docker Overlay2存储驱动”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何实现CentOS7使用Docker Overlay2存储...
    99+
    2023-06-10
  • JavaWeb如何使用mvc模式实现登录功能
    这篇文章给大家分享的是有关JavaWeb如何使用mvc模式实现登录功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。部署项目、环境搭建 详细内容  1.导包  &...
    99+
    2023-06-29
  • 如何使用Python装饰器实现单例模式
    这篇文章主要为大家展示了“如何使用Python装饰器实现单例模式”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用Python装饰器实现单例模式”这篇文章吧。装饰器实现:def w...
    99+
    2023-06-17
  • 如何使用Python中的@classmethod实现单例模式
    这篇文章主要介绍了如何使用Python中的@classmethod实现单例模式,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。@classmethod实现单例模式:class&...
    99+
    2023-06-17
  • 如何使用枚举来实现java单例模式
    这篇文章主要介绍“如何使用枚举来实现java单例模式”,在日常操作中,相信很多人在如何使用枚举来实现java单例模式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用枚举来实现java单例模式”的疑惑有所...
    99+
    2023-06-20
  • Python设计模式中如何使用状态模式实现编辑功能
    Python设计模式中如何使用状态模式实现编辑功能,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。功能介绍新增对象选择,连接线编辑功能。新增对象选择状态表示,连接...
    99+
    2023-06-19
  • 如何实现智慧景区无线AP覆盖方案的成本计算
    这篇文章跟大家分析一下“如何实现智慧景区无线AP覆盖方案的成本计算”。内容详细易懂,对“如何实现智慧景区无线AP覆盖方案的成本计算”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“如...
    99+
    2023-06-04
  • Python如何实现BUILDER模式
    这篇文章主要介绍“Python如何实现BUILDER模式”,在日常操作中,相信很多人在Python如何实现BUILDER模式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python如何实现BUILDER模式...
    99+
    2023-06-19
  • 如何使用Java实现JActor 2.2.0 RC3发布Actor模式
    这篇文章给大家分享的是有关如何使用Java实现JActor 2.2.0 RC3发布Actor模式的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。JActor 2.2.0 RC3 发布,该版本的 JLPCActor ...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作