1、环境介绍

[root@localhost ~]# cat /etc/redhat-release

CentOS Linux release7.5.1804(Core)

[root@localhost~]# uname -r3.10.0-862.el7.x86_64

[root@localhost~]# rpm -aq|grep -E "wireless-tools|usbutils"wireless-tools-29-13.el7.x86_64

usbutils-007-5.el7.x86_64

2、网卡信息(一个MT7601U的USB无线网卡)

[root@test ~]# lsusb

...

Bus001 Device 002: ID 148f:7601 Ralink Technology, Corp. MT7601U Wireless Adapter

这里特别说明一下:如果你是使用的usb无线网卡,那么你很可能遇到服务器识别不了的情况,因为服务器没有它的驱动程序(后面使用iwconfig或者iwlist都不会有无线网卡的输出),所以我们要先安装它对应的驱动程序,比如我这个MT7601U,百度搜索下载它的驱动程序,上传到服务器上,编译、安装,重启服务器,如果能成功识别是最好的,如果仍然不能识别的话,我们要考虑是不是服务器的内核版本或者其他的情况导致的,这时我们要利用好日志信息,比如:

[root@test ~]# dmesg |grep -i mt7601|lessMT7601_ChipSwitchChannel: SwitchChannel#1(RF=15, 1T)

MT7601_ChipSwitchChannel: SwitchChannel#2(RF=15, 1T)

MT7601_ChipSwitchChannel: SwitchChannel#3(RF=15, 1T)

MT7601_ChipSwitchChannel: SwitchChannel#4(RF=15, 1T)

MT7601_ChipSwitchChannel: SwitchChannel#5(RF=15, 1T)

如果有什么异常信息的报错的话也会在这里显示出来,我们可以根据它的报错信息进一步排查,错误总是多种多样的,不可能全部列举出来,所以遇到错误不要慌,仔细分析查看,错误是会被解决的。加油。

3、验证无线网卡的工作模式

[root@test ~]# iwconfig

lo no wireless extensions.

eth0 no wireless extensions.

ra0 Ralink STA ESSID:"" Nickname:"MT7601STA"Mode:Ad-Hoc Frequency=2.412 GHz Cell: 36:DF:71:76:58:D2

Bit Rate=15 Mb/s

RTS thr:off Fragment thr:off

Encryption key:off

Link Quality=70/100 Signal level:0 dBm Noise level:0dBm

Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0Tx excessive retries:0 Invalid misc:0 Missed beacon:0

4、更改无线网卡的工作模式为master(即ap)模式(已经是ap模式的跳过)

[root@test ~]# iwconfig ra0 mode master

Errorfor wireless request "Set Mode"(8B06) :

SET failed on device ra0 ; Invalid argument.

到这里如果是这样,就停手吧,不要往下面走了。你的网卡不支持ap模式。(但是如果你的网卡本身默认就是ap模式除外,我也遇到了网卡本身就是ap模式的,但是用这个命令还是报同样的错误,但是不影响使用。)

5、安装hostapd和dhcp服务搭建热点

hostapd 是一个用户态用于AP和认证服务器的守护进程。

它实现了IEEE 802.11相关的接入管理,IEEE 802.1X/WPA/WPA2/EAP 认证, RADIUS客户端,EAP服务器和RADIUS 认证服务器。Linux下支持的驱动有:Host AP,madwifi,基于mac80211的驱动。

dhcp服务为连接到该热点的主机分配IP地址

[root@localhost ~]# yum install epel-release -y

[root@localhost~]# yum install hostapd dhcp

初始化hostapd环境(执行脚本即可)

[root@test ~]# cat hostap-init.sh#!/bin/bash

# author : chai

#date : 2019/4/23# desc : Initialize the hostap runtime environment

# source environment variable

export path=$PATH

# check tools

num=`rpm -aq|grep -E "net-tools|rfkill|NetworkManager|iptables"|wc -l`

[ $num-lt 4]

# Configure kernel forwardingecho 1 > /proc/sys/net/ipv4/ip_forward

# Add firewall rules (ra0 change Your own network card)

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

# Start the wireless cardifconfig ra0 192.168.0.1 netmask 255.255.255.0# Unlock wireless device, rfkill list check result

rfkill unblock wlansleep 6s

配置hostapd

[root@localhost ~]# mv /etc/hostapd/hostapd.conf /etc/hostapd/hostapd.conf.bak

[root@localhost~]# vim /etc/hostapd/hostapd.conf

interface=wlp2s0 #换成你的无线网卡名字,可以用iwconfig查看

driver=nl80211 #驱动程序

ssid=test-network #WiFi名称

hw_mode=g #

channel=10#使用的无线信道

macaddr_acl=0auth_algs=3wpa=2wpa_passphrase=1234567890#认证密码

wpa_key_mgmt=WPA-PSK #加密方式

wpa_pairwise=TKIP CCMP

rsn_pairwise=TKIP CCMP

启动

[root@localhost~]# systemctl enable hostapd

[root@localhost~]# systemctl start hostapd

添加一条iptables规则(目的是使连接到该热点的主机能上网)

[root@localhost~]# iptables -t nat -A POSTROUTING -o enp3s0 -j MASQUERADE

enp3s0 改为你的用来连接互联网的网卡名(通常是eth0或者ens33)

配置dhcp

[root@localhost ~]# vim /etc/dhcp/dhcpd.conf

subnet192.168.0.0 netmask 255.255.255.0 #网段/掩码

{

range192.168.0.2 192.168.0.20; #可分配的地址范围

option routers192.168.0.1; #路由/网关

option domain-name-servers 192.168.0.1,223.5.5.5,8.8.8.8; #DNS

}

#网段可以自定义

启动dhcp

[root@localhost~]# systemctl enable dhcp

[root@localhost~]# systemctl start dhcp

没有错误的话到此无线热点就创建完成了,现在你可以使用你的手机连接这个热点了。

如果遇到解决不了的错误,可以下面留言,我们一起看看。

6、结尾

虽然成功的达到了目的,但是还是存在很多疑问,比如网卡的工作模式原理,为什么使用ap模式而不是使用其他模式呢?iptables规则,usb网卡驱动的编译等问题,我在查找整理,后面会详细的上传上来。

任何问题,我们可以一起看看

proc wifi 开启_centos7环境开启WIFI热点相关推荐

  1. wifi udp android,Android开启热点进行UDP通信中的坑

    1.写在前面: 2018年的第一篇文章,最近在使用UDP协议进行硬件通信,大家都知道UDP协议通信必须在同一个局域网内,但是每个用户家的wifi都是不一样的,硬件设备是无法只值连接到用户家的wifi的 ...

  2. 开启笔记本win7的虚拟热点,让你的本本变成wifi

    写在前面:相信很多人都跟我一样有困扰,在学校用校园网不能wifi,所以在此提供一个教程,希望能给机友们一些帮助.帖子转自网络,自己也测试过了.分享给大家,希望能给大家带来一些方便. 开启windows ...

  3. 【安卓Framework学习】Wifi框架学习之开启与关闭流程

    系列文章目录 [安卓Framework学习]Wifi框架学习之核心类 [安卓Framework学习]Wifi框架学习之wifi状态机 [安卓Framework学习]Wifi框架学习之连接与断开流程 [ ...

  4. Ubuntu 16.04: 开启wifi设置 How To Enable WiFi In Ubuntu 16.04

    Enable WiFi in Ubuntu 16.04. How to enable WiFi in Ubuntu, using Terminal (command line). Fix " ...

  5. 联想拯救者wif开不了_打不开wifi是怎么回事 笔记本wifi无法开启原因

    笔记本打不开wifi是怎么回事? Wi-Fi是笔记本上网的一大重要途径,为什么有时候笔记本不能使用wifi?下面为大家带来 笔记本wifi共享无法开启 的解决方法. 一.网卡被禁用 笔记本都有一个网卡 ...

  6. Wifi模块—源码分析Wifi热点扫描2(Android P)

    一 前言 这次接着讲Wifi工程流程中的Wifi热点扫描过程部分的获取扫描结果的过程,也是Wifi扫描过程的延续,可以先看前面Wifi扫描的分析过程. Wifi模块-源码分析Wifi热点扫描(Andr ...

  7. Wifi模块—源码分析Wifi热点扫描(Android P)

    一 前言 这次接着讲Wifi工程流程中的Wifi热点查找过程,也是Wifi启动的过程延续,Wifi启动过程中会更新Wifi的状态,框架层也有相应广播发出,应用层接收到广播后开始进行热点的扫描.可以先看 ...

  8. 安卓网络连接全解:包括网络连接状态的监听、网络数据使用状态的监听、获取当前网络连接情况、启动wifi、获取当前连接wifi的网络情况、扫描wifi热点

    全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓网络连接情况全解:包括网络连接状态的监听.网络数据使用状态的监听.获取当前网络连接情况.启动wifi.获取当前连接wifi的网络情况.扫描wifi ...

  9. ESP32-CAM、ESP8266、WIFI、蓝牙、单片机、热点创建嵌入式DNS服务器

    ESP32-CAM ArduinoIDE开发系列文章目录 第一篇:ESP32-CAM高性价比WIFI图传方案快速入门教程 第二篇:ESP32-CAM第一个无线点灯程序 第三篇:ESP32-CAM智能网 ...

最新文章

  1. nodejs 各种插件
  2. 电商适用电子面单接口对接案例
  3. Iso时间转java instant,在java.util.Date和java.time.Instant之间转换古代日期时的差异
  4. JS级别联动下拉列表
  5. 怎么删除计算机c盘应用程序,如何删除C盘的垃圾文件!!
  6. lintcode:二叉树的层次遍历
  7. 关于APP更新,两包共存的解决方案
  8. wap(dopra linux )命令,运营商定制的华为光猫Telnet命令恢复华为界面
  9. C#进阶之WebAPI(二)
  10. 接口测试用python怎么做_请问一下python怎么做接口测试工具?
  11. 老板:kill -9 的原理都不知道就敢去线上执行?明天不用来了!
  12. md5后得到的32位字符串存储到mysql中太占空间了_面试官:你对MySQL高性能优化有什么规范建议?...
  13. Atitit cms
  14. Spring Cloud Sleuth 之Greenwich版本全攻略
  15. 安装杀毒软件后计算机运行速度慢,我计算机安装杀毒软件后开机启动很慢
  16. linux系统下查看本机所在局域网中所有设备IP
  17. 腾讯云轻量应用服务器免费升级2核4G8M升级4核4G8M不花钱
  18. 跑步戴什么耳机比较好、精挑五款最佳跑步耳机推荐
  19. 个人总结感想系列 - 2014年总结
  20. c++实现“反应时间”测试

热门文章

  1. Python之路【第六篇】:Python运算符
  2. 洛谷P1069 细胞分裂 数学
  3. redhat6.2 下gcc安装
  4. 【iOS开发】@property跟成员变量区别
  5. 微软BI 之SSIS 系列 - 通过设置 CheckPoints 检查点来增强 SSIS Package 流程的重用性...
  6. ASP.NET基础教程-Server对象
  7. mybatis数据库连接池介绍和源码剖析
  8. Django笔记8(模板引擎)
  9. WebAssembly 的 Wasmer JNI
  10. 内存泄漏的原因及解决办法_浅谈 JS 内存泄漏问题