CentOS 7 之 hostapd 路由模式配置

來源:互聯網
上載者:User

標籤:hostapd   firewalld   hostapd.conf   iptables   linux無線路由   

這篇是 linux 下使用 hostapd 實現無線存取點 AP 模式的另一種實現方式:hostapd 路由模式配置。

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

hostapd 的AP模式配置需要的有線網卡和無線網卡進行橋接,那路由模式配置主要就是將無線網卡的資料通過有線網卡進行偽裝、轉寄兩個方面,也就不再需要將有線和無線網卡進行橋接。

配置這種路由模式就類似一台普通的無線路由器,有線網口就相當於普通無線路由器的 WAN 介面,無線網卡就負責發送廣播無線訊號供手機、筆記本的無線裝置接入實現網路訪問。

但也有區別的地方就是跟普通無線路由器相比,這種實現方式沒有四個普通的 LAN 介面,不能供其它台式機等進行有線串連。

實際上 linux 作為網路功能為主的作業系統也是可以串連的,只是需要交換器等裝置等,會複雜些。我這裡的配置就當作是沒有四個 LAN 介面的普通無線路由器。

hostapd.conf 配置

這裡只是一個最小化的配置:

# /etc/hostapd/hostapd.conf 最小化配置interface=wlp2s0#bridge=br0                              #不再需要橋接,將這行注釋就可以driver=nl80211ssid=testhw_mode=gchannel=1auth_algs=3ignore_broadcast_ssid=0                 # 是否廣播,0 廣播wpa=3wpa_passphrase=12345678                 # 無線串連密碼

配置跟AP模式設定檔類似,只要注釋掉 bridge=br0 選項就可以。

有線介面配置

首先我們需要正確配置有線介面並且可以正常上網。最簡單的是方式就是從路由器那自動擷取IP地址、網關、DNS。如果沒有路由器的話那就需要手動設定有線介面的上網方式,例如常用的PPPOE方式、靜態IP地址方式、動態擷取IP地址方式等。反正動態擷取IP地址的最簡單。

無線介面設定使用 ip addr add 命令

使用 ip addr add 命令設定無線網卡的 IP 位址,重啟後就會失效。例如172.16.0.1/24或其他私人地址,還有就是不要與有線網卡處在同一個網段。一般有線網卡從路由器擷取的IP地址是 192.168.1.0/24 網段地址。

ip addr add 172.16.0.1/24 dev wlp2s0

 坑提示:目前 CentOS 7 預設使用的是 NetworkManager 套件作為網路設定工具。這裡遇到一個問題就是,NetworkManager 套件其提供的 nmcli 命令並不支援給無線網卡設定靜態 IP 位址,這就需要使用 ip addr add 命令手動設定無線網卡的 IP 位址或者在 /etc/sysconfig/network-scripts/ 檔案夾下面建立設定檔,這是比較老且經典的一種介面配置方式。

使用網路設定檔

如要想想儲存設定,可以建立一個檔案 /etc/sysconfig/network-scripts/ifcfg-static-wlp2s0 ,檔案名稱以 ifcfg 首碼。

vi /etc/sysconfig/network-scripts/ifcfg-static-wlp2s0
[[email protected] ~]# 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                                        #指定無線網卡的介面ONBOOT=yes                                           #開機就進行設定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 服務,最好禁止開機啟動,不然還是會有問題。主要表現為開機時 network.service 無法啟動。

禁止 NetworkManager.service 服務開機啟動

systemctl disable  NetworkManager.service

停止 NetworkManager.service 服務

systemctl stop  NetworkManager.service

想看看有沒有生效可以重啟 network.service 服務或直接重啟系統。

systemctl restart network.service
啟用轉寄和配置介面偽裝
啟用轉寄

使用 sysctl -w 重啟後會失效

sysctl -w net.ipv4.ip_forward=1
[[email protected] ~]# sysctl -w net.ipv4.ip_forward=1net.ipv4.ip_forward = 1

啟用 IP 轉寄重啟後不會失效使用下面方法,系統重啟後會自動載入 /etc/sysctl.d/ 檔案夾下的設定。

vi /etc/sysctl.d/ip_forward.conf
[[email protected] ~]# vi /etc/sysctl.d/ip_forward.conf net.ipv4.ip_forward = 1
配置介面偽裝

CentOS 7 中使用 firewalld 和 iptables 都能做到介面偽裝。CentOS 7 中預設啟用的是 firewalld.service 服務。iptables 服務和 firewalld 服務衝突,兩者只能啟用其中一個。

使用 firewalld 配置介面偽裝

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

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

systemctl start firewalld.service

將無線介面加入到 trust 地區,並儲存配置。預設情況下所有介面屬於 public 地區,串連限制比較嚴格,會導致無法串連。

firewall-cmd --zone=trusted --add-interface=wlp2s0 --permanent
[[email protected] ~]# firewall-cmd --zone=trusted --add-interface=wlp2s0 --permanent success

對有線介面所在的地區啟用偽裝,並儲存配置,預設情況下有線介面屬於 public 地區。

firewall-cmd --zone=public --add-masquerade --permanent
[[email protected] ~]# firewall-cmd --zone=public --add-masquerade --permanent success

重啟 firewalld 服務

systemctl restart firewalld.service
使用 iptables 配置介面偽裝

如果習慣使用 iptables ,需要安裝 iptables-services 這個包,裡麵包含 iptables.service 和 ip6tables.service 這兩個服務,分別用於 ipv4 和 ipv6。

要使用 iptables 需要先停止並禁用 firewalld.service 服務

systemctl stop firewalld.service
systemctl disable firewalld.service

再啟用 iptables.service 服務,因為目前還是主要使用 ipv4 所以只啟用 iptables.service 就可以。如果使用 iptables 同樣需要設定開機啟動 iptables.service 服務。

systemctl enable iptables.service

啟動 iptables.service 服務

systemctl start iptables.service

介面偽裝

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

一般來說配置上面的命令就可以了,如果防火牆設定比較嚴格需要添加允許轉寄無線網卡介面wlp2s0。

iptables -t filter -A FORWARD -i wlp2s0 -j ACCEPT
dnsmasq 配置dnsmasq 軟體安裝

dnsmasq 主要負責分配用戶端IP地址及DNS解析服務。

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

yum install dnsmasq

設定開機自動啟動 dnsmasq 服務

systemctl enable dnsmasq.service
dnsmasq.conf 配置
vi /etc/dmsmasq.conf
[[email protected] ~]# vi /etc/dnsmasq.conf# 指定介面,指定後同時附加lo介面,可以使用‘*‘萬用字元interface=wlp2s0# 綁定介面bind-interfaces# DHCP位址集區 從172.16.0.100到172.16.0.200dhcp-range=172.16.0.100,172.16.0.200,255.255.255.0,1h

啟動 dnsmansq 服務需要無線網卡已經正確設定了 ip 地址。dnsmasq 會自動將當前的無線網卡地址 172.16.0.1 設定為用戶端的網關地址和DNS地址。

systemctl start dnsmasq.service


最後重新啟動 hostapd 服務

systemctl restart hostapd.service


本文出自 “老丁的linux” 部落格,請務必保留此出處http://laoding.blog.51cto.com/980622/1697788

CentOS 7 之 hostapd 路由模式配置

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.