您好,登錄后才能下訂單哦!
Raspberry pi作為卡片式微型電腦,本身沒有自帶顯示器、鼠標、鍵盤等外設,如果想對Raspberry PI進行設定需要連接顯示器,或者通過路由器ssh登陸才可以。心想Raspberry pi是可以運行Linux系統的卡片型電腦,為何不嘗試把Raspberry Pi做成一個無線AP,想登陸Raspbery pi的時候就比較方便了。后續也可以加上USB存儲外設之類的做個多媒體網關等等。
主要的實現思路是wlan0設定成固定IP,eth0動態獲取IP。Raspberry Pi運行hostapd和udhcpd分別作為無線AP熱點和DHCP服務器給終端分配IP地址。
目前我手上的wifi網卡是Realtek的8818芯片。如果直接按照網上的教程安裝hostapd的話會出現錯誤。經過一番查找,Realtek公司專門有針對8818芯片的hostapd版本,網上牛人已經把相關代碼放到github上,我們直接安裝就可以了。
為了能正常為8818芯片的wifi網卡安裝上hostapd,首先要卸載掉原先的hostapd
sudo apt-get autoremove hostapd
然后安裝8818芯片版本的hostapd
wget https://github.com/jenssegers/RTL8188-hostapd/archive/v2.0.tar.gztar -zxvf v2.0.tar.gz
然后編譯安裝
cd RTL8188-hostapd-2.0/hostapd sudo make
sudo make install
$ sudo service hostapd restart
[ ok ] Stopping advanced IEEE 802.11 management: hostapd.
[ ok ] Starting advanced IEEE 802.11 management: hostapd.
hostapd安裝完畢。
接下來安裝udhcpd
sudo apt-get install udhcpd
安裝完成后配置/etc/udhcpd.conf
start 192.168.20.20 # This is the range of IPs that the hostspot will give to client devices. end 192.168.20.200 interface wlan0 # The device uDHCP listens on. remaining yes opt dns 8.8.8.8 4.2.2.2 # The DNS servers client devices will use. opt subnet 255.255.255.0 opt router 192.168.20.1 # The Pi's IP address on wlan0 which we will set up shortly. opt lease 864000 # 10 day DHCP lease time in seconds
接下來編輯/etc/default/udhcpd
并且將下面這行注釋掉,以使DHCP Server正常工作:
#DHCPD_ENABLED="no"
為了下次啟動仍然有效,我們需要配置/etc/network/interfaces
文件:
sudo nano /etc/network/interfaces
注釋掉所有的關于無線網卡的部分,最后應該變成下面所示:
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf #iface default inet dhcp
注意保留allow-hotplug wlan0
,英文原文是不保留的,但是我操作下來發現如果不保留這段的話,無線網卡有時無法正常配置IP,最后無線網卡IP的配置信息如下:
allow-hotplug wlan0 iface wlan0 inet static address 192.168.20.1 netmask 255.255.255.0
編輯hostapd配置
sudo nano /etc/hostapd/hostapd.conf
啟動IP轉向功能以便于開通NAT
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
net.ipv4.ip_forward=1
配置iptables防火墻
我們可以做個腳本名為nat.sh,以便啟動的時候自動運行nat相關配置
#!/bin/sh 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
給腳本加上可執行權限
sudo chmod +x nat.sh
編輯/etc/rc.local文件,使之開機時運行nat相關iptabls配置和啟動hostapd
sudo nano /etc/rc.local
在exit 0上面加上以下兩行后保存退出
sudo service hostapd start
sh /home/pi/nat.sh
再讓udhcpd也啟動時一起運行。
sudo update-rc.d udhcpd enable
所有的步驟結束后重啟Raspberry pi.
大功告成!
PS:這里碰到了幾個小問題。
不知是問么原因,原本打算用sudo update-rc.d hostapd enable使hostapd開機啟動的。但是會報錯無法開機啟動,后來決定在/etc/rc.local上加上sudo service hostapd start的方式解決。
關于iptables,原本打算用sudo sh -c "iptables-save > /etc/network/iptables",然后在/etc/network/interface上加上 up iptables-restore < /etc/network/iptables方式使nat相關配置生效的。但是不知什么原因重啟Raspberry pi后一直不生效。也只能通過萬能的rc.local上加上sh /home/pi/nat.sh的方式解決。
后期打算加上自動加載USB存儲設備,通過媒體共享的方式給我的IPAD,iphone等共享文件,播放視頻等等。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。