1. 程式人生 > >centos7環境開啟WIFI熱點

centos7環境開啟WIFI熱點

con 無線網卡 wifi熱點 很多 car ESS epel 如果能 ces

1、環境介紹

[[email protected] ~]# cat /etc/redhat-release 
CentOS Linux release 7.5.1804 (Core) 
[[email protected] ~]# uname -r
3.10.0-862.el7.x86_64 
[[email protected] ~]# rpm -aq|grep -E "wireless-tools|usbutils"
wireless-tools-29-13.el7.x86_64
usbutils-007-5.el7.x86_64

2、網卡信息(一個MT7601U的USB無線網卡)

[[email protected] ~]# lsusb
...
Bus 001 Device 002: ID 148f:7601 Ralink Technology, Corp. MT7601U Wireless Adapter

這裏特別說明一下:如果你是使用的usb無線網卡,那麽你很可能遇到服務器識別不了的情況,因為服務器沒有它的驅動程序(後面使用iwconfig或者iwlist都不會有無線網卡的輸出),所以我們要先安裝它對應的驅動程序,比如我這個MT7601U,百度搜索下載它的驅動程序,上傳到服務器上,編譯、安裝,重啟服務器,如果能成功識別是最好的,如果仍然不能識別的話,我們要考慮是不是服務器的內核版本或者其他的情況導致的,這時我們要利用好日誌信息,比如:

[[email protected] ~]# dmesg |grep -i mt7601|less
MT7601_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、驗證無線網卡的工作模式

[[email protected] ~]# 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:0 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

4、更改無線網卡的工作模式為master(即ap)模式(已經是ap模式的跳過)

[[email protected] ~]# iwconfig ra0 mode master

Error 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地址

[[email protected] ~]# yum install epel-release -y
[[email protected] ~]# yum install hostapd dhcp

初始化hostapd環境(執行腳本即可)

[[email protected] ~]# 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 forwarding
echo 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 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

[[email protected] ~]# mv /etc/hostapd/hostapd.conf /etc/hostapd/hostapd.conf.bak
[[email protected] ~]# vim /etc/hostapd/hostapd.conf
interface=wlp2s0                #換成你的無線網卡名字,可以用iwconfig查看
driver=nl80211                #驅動程序
ssid=test-network            #WiFi名稱
hw_mode=g                    #
channel=10                    #使用的無線信道
macaddr_acl=0
auth_algs=3
wpa=2
wpa_passphrase=1234567890        #認證密碼
wpa_key_mgmt=WPA-PSK        #加密方式
wpa_pairwise=TKIP CCMP
rsn_pairwise=TKIP CCMP
啟動
[[email protected] ~]# systemctl enable hostapd
[[email protected] ~]# systemctl start hostapd
添加一條iptables規則(目的是使連接到該熱點的主機能上網)
[[email protected] ~]# iptables -t nat -A POSTROUTING -o enp3s0 -j MASQUERADE
enp3s0 改為你的用來連接互聯網的網卡名(通常是eth0或者ens33)

配置dhcp

[[email protected] ~]# 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
[[email protected] ~]# systemctl enable dhcp
[[email protected] ~]# systemctl start dhcp

沒有錯誤的話到此無線熱點就創建完成了,現在你可以使用你的手機連接這個熱點了。

如果遇到解決不了的錯誤,可以下面留言,我們一起看看。

6、結尾

雖然成功的達到了目的,但是還是存在很多疑問,比如網卡的工作模式原理,為什麽使用ap模式而不是使用其他模式呢?iptables規則,usb網卡驅動的編譯等問題,我在查找整理,後面會詳細的上傳上來。

任何問題,我們可以一起看看

centos7環境開啟WIFI熱點