首页 技术 正文
技术 2022年11月15日
0 收藏 415 点赞 3,782 浏览 3358 个字

1、环境介绍

[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.5. (Core)
[root@localhost ~]# uname -r
3.10.-.el7.x86_64
[root@localhost ~]# rpm -aq|grep -E "wireless-tools|usbutils"
wireless-tools--.el7.x86_64
usbutils--.el7.x86_64

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

[root@test ~]# lsusb
...
Bus Device : ID 148f: Ralink Technology, Corp. MT7601U Wireless Adapter

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

[root@test ~]# dmesg |grep -i mt7601|less
MT7601_ChipSwitchChannel: SwitchChannel#(RF=, 1T)
MT7601_ChipSwitchChannel: SwitchChannel#(RF=, 1T)
MT7601_ChipSwitchChannel: SwitchChannel#(RF=, 1T)
MT7601_ChipSwitchChannel: SwitchChannel#(RF=, 1T)
MT7601_ChipSwitchChannel: SwitchChannel#(RF=, 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: :DF::::D2
Bit Rate= Mb/s
RTS thr:off Fragment thr:off
Encryption key:off
Link Quality=/ Signal level: dBm Noise level: dBm
Rx invalid nwid: Rx invalid crypt: Rx invalid frag:
Tx excessive retries: Invalid misc: Missed beacon:

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

[root@test ~]# iwconfig ra0 mode masterError for 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 : //
# 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 ]# Configure kernel forwarding
echo > /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 card
ifconfig ra0 192.168.0.1 netmask 255.255.255.0# Unlock wireless device, rfkill list check result
rfkill unblock wlan
sleep 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= #使用的无线信道
macaddr_acl=
auth_algs=
wpa=
wpa_passphrase= #认证密码
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
subnet 192.168.0.0 netmask 255.255.255.0 #网段/掩码
{
range 192.168.0.2 192.168.0.20; #可分配的地址范围
option routers 192.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网卡驱动的编译等问题,我在查找整理,后面会详细的上传上来。

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

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,082
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,556
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,406
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,179
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,815
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,898