這篇文章主要介紹了CentOS7如何使用hostapd實現(xiàn)無AP模式,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:申請域名、雅安服務(wù)器托管、營銷軟件、網(wǎng)站建設(shè)、西疇網(wǎng)站維護、網(wǎng)站推廣。
這篇是 linux 下使用 hostapd 實現(xiàn)無線接入點 AP 模式的另一種實現(xiàn)方式:hostapd 路由模式配置。
對于軟硬件的基本配置及 hostapd 安裝在《CentOS 7 之 hostapd AP模式配置》的前半部分內(nèi)容中有說明,可以先看看那篇,再看本文。
hostapd 的AP模式配置需要的有線網(wǎng)卡和無線網(wǎng)卡進行橋接,那路由模式配置主要就是將無線網(wǎng)卡的數(shù)據(jù)通過有線網(wǎng)卡進行偽裝、轉(zhuǎn)發(fā)兩個方面,也就不再需要將有線和無線網(wǎng)卡進行橋接。
配置這種路由模式就類似一臺普通的無線路由器,有線網(wǎng)口就相當(dāng)于普通無線路由器的 WAN 接口,無線網(wǎng)卡就負(fù)責(zé)發(fā)送廣播無線信號供手機、筆記本的無線設(shè)備接入實現(xiàn)網(wǎng)絡(luò)訪問。
但也有區(qū)別的地方就是跟普通無線路由器相比,這種實現(xiàn)方式?jīng)]有四個普通的 LAN 接口,不能供其它臺式機等進行有線連接。
實際上 linux 作為網(wǎng)絡(luò)功能為主的操作系統(tǒng)也是可以連接的,只是需要交換機等設(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 選項就可以。
有線接口配置
首先我們需要正確配置有線接口并且可以正常上網(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 #開機就進行設(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ù),最好禁止開機啟動,不然還是會有問題。主要表現(xiàn)為開機時 network.service 無法啟動。
禁止 NetworkManager.service 服務(wù)開機啟動
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ù),因為目前還是主要使用 ipv4 所以只啟用 iptables.service 就可以。如果使用 iptables 同樣需要設(shè)置開機啟動 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è)置開機自動啟動 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
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“CentOS7如何使用hostapd實現(xiàn)無AP模式”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!