佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > CentOS7使用hostapd實(shí)現(xiàn)無AP模式的詳解

CentOS7使用hostapd實(shí)現(xiàn)無AP模式的詳解

熱門標(biāo)簽:電話機(jī)器人搭建 解決方案 硅谷的囚徒呼叫中心 服務(wù)器配置 外呼系統(tǒng) 美團(tuán) 百度競價點(diǎn)擊價格的計(jì)算公式 家政服務(wù)網(wǎng)絡(luò)

這篇是 linux 下使用 hostapd 實(shí)現(xiàn)無線接入點(diǎn) AP 模式的另一種實(shí)現(xiàn)方式:hostapd 路由模式配置。

對于軟硬件的基本配置及 hostapd 安裝在《CentOS 7 之 hostapd AP模式配置》的前半部分內(nèi)容中有說明,可以先看看那篇,再看本文。

hostapd 的AP模式配置需要的有線網(wǎng)卡和無線網(wǎng)卡進(jìn)行橋接,那路由模式配置主要就是將無線網(wǎng)卡的數(shù)據(jù)通過有線網(wǎng)卡進(jìn)行偽裝、轉(zhuǎn)發(fā)兩個方面,也就不再需要將有線和無線網(wǎng)卡進(jìn)行橋接。

配置這種路由模式就類似一臺普通的無線路由器,有線網(wǎng)口就相當(dāng)于普通無線路由器的 WAN 接口,無線網(wǎng)卡就負(fù)責(zé)發(fā)送廣播無線信號供手機(jī)、筆記本的無線設(shè)備接入實(shí)現(xiàn)網(wǎng)絡(luò)訪問。

但也有區(qū)別的地方就是跟普通無線路由器相比,這種實(shí)現(xiàn)方式?jīng)]有四個普通的 LAN 接口,不能供其它臺式機(jī)等進(jìn)行有線連接。

實(shí)際上 linux 作為網(wǎng)絡(luò)功能為主的操作系統(tǒng)也是可以連接的,只是需要交換機(jī)等設(shè)備等,會復(fù)雜些。我這里的配置就當(dāng)作是沒有四個 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 選項(xiàng)就可以。

有線接口配置

首先我們需要正確配置有線接口并且可以正常上網(wǎng)。最簡單的是方式就是從路由器那自動獲取IP地址、網(wǎng)關(guān)、DNS。如果沒有路由器的話那就需要手動設(shè)置有線接口的上網(wǎng)方式,例如常用的PPPOE方式、靜態(tài)IP地址方式、動態(tài)獲取IP地址方式等。反正動態(tài)獲取IP地址的最簡單。

無線接口設(shè)置 使用 ip addr add 命令

使用 ip addr add 命令設(shè)置無線網(wǎng)卡的 IP 地址,重啟后就會失效。例如172.16.0.1/24或其他私有地址,還有就是不要與有線網(wǎng)卡處在同一個網(wǎng)段。一般有線網(wǎng)卡從路由器獲取的IP地址是 192.168.1.0/24 網(wǎng)段地址。

ip addr add 172.16.0.1/24 dev wlp2s0

坑提示:目前 CentOS 7 默認(rèn)使用的是 NetworkManager 套件作為網(wǎng)絡(luò)配置工具。這里遇到一個問題就是,NetworkManager 套件其提供的 nmcli 命令并不支持給無線網(wǎng)卡設(shè)置靜態(tài)的 IP 地址,這就需要使用 ip addr add 命令手動設(shè)定無線網(wǎng)卡的 IP 地址或者在 /etc/sysconfig/network-scripts/ 文件夾下面新建配置文件,這是比較老且經(jīng)典的一種接口配置方式。

使用網(wǎng)絡(luò)配置文件

如要想想保存設(shè)置,可以新建一個文件 /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                                        #指定無線網(wǎng)卡的接口

ONBOOT=yes                                           #開機(jī)就進(jìn)行設(shè)置

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 服務(wù),最好禁止開機(jī)啟動,不然還是會有問題。主要表現(xiàn)為開機(jī)時 network.service 無法啟動。

禁止 NetworkManager.service 服務(wù)開機(jī)啟動

systemctl disable  NetworkManager.service

停止 NetworkManager.service 服務(wù)

systemctl stop  NetworkManager.service

想看看有沒有生效可以重啟 network.service 服務(wù)或直接重啟系統(tǒng)。

systemctl restart network.service

啟用轉(zhuǎn)發(fā)和配置接口偽裝 啟用轉(zhuǎn)發(fā)

使用 sysctl -w 重啟后會失效

sysctl -w net.ipv4.ip_forward=1

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

net.ipv4.ip_forward = 1

啟用 IP 轉(zhuǎn)發(fā)重啟后不會失效使用下面方法,系統(tǒng)重啟后會自動加載 /etc/sysctl.d/ 文件夾下的設(shè)置。

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 中默認(rèn)啟用的是 firewalld.service 服務(wù)。iptables 服務(wù)和 firewalld 服務(wù)沖突,兩者只能啟用其中一個。

使用 firewalld 配置接口偽裝

如果能使用圖形界面配置的話更加簡單明了,這里僅使用 firewalld-cmd 命令方式配置。

如果沒有啟動 firewalld.service 服務(wù),需要先啟動 firewalld.service 服務(wù)。

systemctl start firewalld.service

將無線接口加入到 trust 區(qū)域,并保存配置。默認(rèn)情況下所有接口屬于 public 區(qū)域,連接限制比較嚴(yán)格,會導(dǎo)致無法連接。

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

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

success

對有線接口所在的區(qū)域啟用偽裝,并保存配置,默認(rèn)情況下有線接口屬于 public 區(qū)域。

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

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

success

重啟 firewalld 服務(wù)

systemctl restart firewalld.service

使用 iptables 配置接口偽裝

如果習(xí)慣使用 iptables ,需要安裝 iptables-services 這個包,里面包含 iptables.service 和 ip6tables.service 這兩個服務(wù),分別用于 ipv4 和 ipv6。

要使用 iptables 需要先停止并禁用 firewalld.service 服務(wù)

systemctl stop firewalld.service

systemctl disable firewalld.service

再啟用 iptables.service 服務(wù),因?yàn)槟壳斑€是主要使用 ipv4 所以只啟用 iptables.service 就可以。如果使用 iptables 同樣需要設(shè)置開機(jī)啟動 iptables.service 服務(wù)。

systemctl enable iptables.service

啟動 iptables.service 服務(wù)

systemctl start iptables.service

接口偽裝

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

一般來說配置上面的命令就可以了,如果防火墻設(shè)置比較嚴(yán)格需要添加允許轉(zhuǎn)發(fā)無線網(wǎng)卡接口wlp2s0。

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

dnsmasq 配置 dnsmasq 軟件安裝

dnsmasq 主要負(fù)責(zé)分配客戶端IP地址及DNS解析服務(wù)。

沒有安裝的話先安裝 dnsmasq 軟件

yum install dnsmasq

設(shè)置開機(jī)自動啟動 dnsmasq 服務(wù)

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 服務(wù)需要無線網(wǎng)卡已經(jīng)正確設(shè)置了 ip 地址。dnsmasq 會自動將當(dāng)前的無線網(wǎng)卡地址 172.16.0.1 設(shè)置為客戶端的網(wǎng)關(guān)地址和DNS地址。

systemctl start dnsmasq.service

最后重新啟動 hostapd 服務(wù)

systemctl restart hostapd.service

標(biāo)簽:南昌 北海 臨沂 防城港 韶關(guān) 邢臺 烏蘭察布 撫州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《CentOS7使用hostapd實(shí)現(xiàn)無AP模式的詳解》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    班戈县| 化德县| 富裕县| 留坝县| 沙坪坝区| 五台县| 阳泉市| 仙居县| 莒南县| 神木县| 东山县| 读书| 改则县| 和平县| 区。| 梁河县| 峡江县| 晋城| 开阳县| 伊金霍洛旗| 怀远县| 阆中市| 文化| 当阳市| 三河市| 图们市| 濮阳市| 镇雄县| 色达县| 简阳市| 洛隆县| 清河县| 南开区| 旬阳县| 定安县| 贵溪市| 古交市| 新余市| 德安县| 台山市| 永胜县|