樹莓派配置AP模式


所需硬件:樹莓派、無線網卡

1.查看無線網卡是否被識別

pi@raspberrypi ~ $ sudo lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter
pi@raspberrypi ~ $

WLAN Adapter代表的就是無線網卡被系統識別,芯片是RTL8188CUS

2.無線網卡配置靜態IP地址

sudo vim /etc/network/interfaces  #配置靜態地址

 

pi@raspberrypi ~ $ sudo vim /etc/network/interfaces
auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet static
address 192.168.8.1
netmask 255.255.255.0
保存后重啟wlan0網卡

sudo ifdown wlan0
sudo ifup wlan0

3.安裝DHCP服務軟件

sudo apt-get install isc-dhcp-server

配置DHCP服務

sudo vim /etc/dhcp/dhcpd.conf  #編輯配置文件
#option domain-name "example.org";  #注釋
#option domain-name-servers ns1.example.org, ns2.example.org;  #注釋
authoritative; #去除注釋
#在配置文件底部添加發下配置
subnet 192.168.8.0 netmask 255.255.255.0 { 
range 192.168.8.100 192.168.8.200; 
option broadcast-address 192.168.8.255; 
option routers 192.168.8.1; 
default-lease-time 600; 
max-lease-time 7200; 
option domain-name "local"; 
option domain-name-servers 8.8.8.8, 8.8.4.4; 
}
#注解
option broadcast - address #廣播地址
option routers            #網關地址
default - lease - time        #默認租約時間
max - lease - tim              #最大租約時間
option domain - name        #網絡域名
option domain - name - servers #DNS地址
使wlan0提供dhcp服務
sudo vim /etc/default/isc-dhcp-server #編輯配置文件
INTERFACES="wlan0"

4.安裝AP軟件與配置

sudo apt-get install hostapd
配置Access Point 
sudo vim /etc/hostapd/hostapd.conf
interface=wlan0
driver=rtl871xdrv#這個是樹莓派無線網卡驅動,不要改
ssid=pi#無線信號名字,隨意設
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=raspberry#密碼,隨意設
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

設置讀取加載配置文件

sudo vim /etc/default/hostapd   #找到#DAEMON_CONF=""修改成
DAEMON_CONF="/etc/hostapd/hostapd.conf" 

默認安裝的版本比較新,該驅動需要用V0.8的版本,否則運行hostapd會報錯

wget http://www.adafruit.com/downloads/adafruit_hostapd.zip 
unzip adafruit_hostapd.zip 
sudo mv /usr/sbin/hostapd /usr/sbin/hostapd.ORIG 
sudo mv hostapd /usr/sbin 
sudo chmod 755 /usr/sbin/hostapd
測試一下
sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf
手機 wifi掃描搜索下,是否有 pi的無線 SSID

5.啟動dhcp、hostapd服務

sudo service isc-dhcp-server start  #啟用DHPCServere服務
sudo service hostapd start #啟用AP服務

設置開啟自啟動

sudo update-rc.d hostapd enable 
sudo update-rc.d isc-dhcp-server enable

6.開啟轉發

sudo vim /etc/sysctl.conf  #開機啟動設置ip轉發
#底部加上一行
net.ipv4.ip_forward=1
或者直接:
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

7.添加防火牆規則

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT 
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

8.保存規則並開機自動生效

sudo sh -c "iptables-save > /etc/iptables.ipv4.nat" 
sudo vim /etc/network/interfaces   #開機生效
up iptables-restore < /etc/iptables.ipv4.nat #底部增加一行

 ---------------------------------------------------------------------------------------------------

后記:如果有兩個無線網卡,又想設置兩個AP,那么可以修改/etc/network/interfaces和/etc/dhcp/dhcpd.conf以及添加一個/etc/hostapd/hostapd2.conf

如下:

pi@raspberrypi ~ $ sudo vim /etc/network/interfaces
auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet static
address 192.168.8.1
netmask 255.255.255.0

#繼續添加

auto wlan1
iface wlan0 inet static
address 192.168.9.1
netmask 255.255.255.0
network 192.168.9.0
broadcast 192.168.9.255

接着,修改/etc/default/isc-dhcp-server文件,添加wlan1

sudo vim /etc/default/isc-dhcp-server #編輯配置文件
INTERFACES="wlan0"

接着,修改/etc/dhcp/dhcpd.conf

sudo vim /etc/dhcp/dhcpd.conf  #編輯配置文件
#option domain-name "example.org";  #注釋
#option domain-name-servers ns1.example.org, ns2.example.org;  #注釋
authoritative; #去除注釋
#在配置文件底部添加發下配置
subnet 192.168.8.0 netmask 255.255.255.0 { 
range 192.168.8.100 192.168.8.200; 
option broadcast-address 192.168.8.255; 
option routers 192.168.8.1; 
default-lease-time 600; 
max-lease-time 7200; 
option domain-name "local"; 
option domain-name-servers 8.8.8.8, 8.8.4.4; 
}
#繼續添加
subnet 192.168.9.0 netmask 255.255.255.0 { 
range 192.168.9.100 192.168.9.200; 
option broadcast-address 192.168.9.255; 
option routers 192.168.9.1; 
default-lease-time 600; 
max-lease-time 7200; 
option domain-name "local"; 
option domain-name-servers 8.8.8.8, 8.8.4.4; 
}

最后,添加一個/etc/hostapd/hostapd2.conf,內容類似hostapd.conf,但是channel要不一樣,否則出現干擾
interface=wlan1
driver=rtl871xdrv#這個是樹莓派無線網卡驅動,不要改
ssid=pi2#無線信號名字,隨意設
hw_mode=g
channel=2
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=raspberry#密碼,隨意設
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

如此,啟動
sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf /etc/hostapd/hostapd2.conf
即可啟動兩個AP,如果加上-B,可運行於后台。

------------------------------------------------------------------------------------------
此外,如果想配置成wlan0 ap模式,wlan1 連接路由器模式,可以修改/etc/network/interfaces文件,添加wlan1的設置即可。
auto wlan1
allow-hotplug wlan1
iface wlan1 inet dhcp
wpa-ssid "SDN2.4"
wpa-psk "404404404"

重啟wlan1(sudo ifdown wlan1  sudo ifup wlan1)即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM