所需硬件:樹莓派、無線網卡
1.查看無線網卡是否被識別
pi@raspberrypi ~ $ sudo lsusbBus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.Bus 001 Device 001: ID 1d6b:0002 linux Foundation 2.0 root hubBus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.Bus 001 Device 004: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapterpi@raspberrypi ~ $
WLAN Adapter代表的就是無線網卡被系統識別,芯片是RTL8188CUS
2.無線網卡配置靜態ip地址
sudo vim /etc/network/interfaces #配置靜態地址
pi@raspberrypi ~ $ sudo vim /etc/network/interfacesauto lo
iface lo inet loopbackiface eth0 inet dhcp
allow-hotplug wlan0iface wlan0 inet staticaddress 192.168.8.1netmask 255.255.255.0保存后重啟wlan0網卡
sudo ifdown wlan0sudo 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.confinterface=wlan0driver=rtl871xdrv#這個是樹莓派無線網卡驅動,不要改ssid=pi#無線信號名字,隨意設hw_mode=gchannel=6macaddr_acl=0auth_algs=1ignore_broadcast_ssid=0wpa=2wpa_passphrase=raspberry#密碼,隨意設wpa_key_mgmt=WPA-PSKwpa_pairwise=TKIPRsn_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/interfacesauto lo
iface lo inet loopbackiface eth0 inet dhcp
allow-hotplug wlan0iface wlan0 inet staticaddress 192.168.8.1netmask 255.255.255.0
#繼續添加
auto wlan1iface wlan0 inet staticaddress 192.168.9.1netmask 255.255.255.0network 192.168.9.0broadcast 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=wlan1driver=rtl871xdrv#這個是樹莓派無線網卡驅動,不要改ssid=pi2#無線信號名字,隨意設hw_mode=gchannel=2macaddr_acl=0auth_algs=1ignore_broadcast_ssid=0wpa=2wpa_passphrase=raspberry#密碼,隨意設wpa_key_mgmt=WPA-PSKwpa_pairwise=TKIPrsn_pairwise=CCMP如此,啟動
sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf /etc/hostapd/hostapd2.conf即可啟動兩個AP,如果加上-B,可運行于后臺。------------------------------------------------------------------------------------------此外,如果想配置成wlan0 ap模式,wlan1 連接路由器模式,可以修改/etc/network/interfaces文件,添加wlan1的設置即可。
auto wlan1allow-hotplug wlan1iface wlan1 inet dhcpwpa-ssid "SDN2.4"wpa-psk "404404404"
重啟wlan1(sudo ifdown wlan1 sudo ifup wlan1)即可。
新聞熱點
疑難解答