2021-05-12 14:32:11
Raspberry Pi 設定無線熱點
迷思
這幾天一直想著對BananaPro上增加輸入和輸出裝置,折騰來折騰去的最後發現是自己的思路出問題了。作為上位除了做媒體中心之時需要輸入輸出裝置,貌似大多數情況下是不需要這些的,它只是一台提供服務超小型伺服器將它當作普通PC來用確在是一種思路上誤區。
我們本來就擁有各種的輸入輸出裝置,例如iMac, iPad, iPhone 作為互動與顯示的終端它們應該首選而不是在上位機上加個LCD。我只需要將它作為一個中繼器連結我的所有裝置,同時提供一些我所必備的服務就好了。
工作原理
- 啟動 WIFI 存取點和廣播頻道
- 啟用DHCP 服務為接入裝置動態分配IP
- 建立NAT 將 WIFI 的連線請求資料轉發至網絡卡
設定過程
在安裝之前先更新安源
sudo apt-get update
安裝必備的工具包 hostadp
和 udhcpd
sudo apt-get install hostadp udhcpd
設定 DHCP. 修改 /etc/udhcpd.conf
組態檔的內容
start 192.168.42.2 # This is the range of IPs that the hostspot will give to client devices.
end 192.168.42.20
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.42.1 # The Pi's IP address on wlan0 which we will set up shortly.
opt lease 864000 # 10 day DHCP lease time in seconds
將 DHCP 服務的預設設定 /etc/default.udhcpd
:
DHCPD_ENABLED="no"
修改為
#DHCPD_ENABLED="no"
無線網絡卡作為中繼器時需要使用靜態地址:
sudo ifconfig wlan0 192.168.100.1
wlan0
是無線網絡卡的裝置ID,可能你的裝置ID會是其它的值,請先用 iwconfig
確認無線網絡卡的裝置ID。
如果要將上述設定新增到起動項中,可以編輯 /etc/network/interfaces
並將 iface wlan0 inet dhcp
替換為:
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.100.1
netmask 255.255.255.0
設定 HostAPD
接下來就是設定WIFI 熱點服務了,開啟 /etc/hostapd/hostapd.conf
檔案,並將內容修改如下:
interface=wlan0
driver=nl80211
ssid=My_AP
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
這裡有幾個引數是需要說明的:
ssid
是 AP 在連線裝置中所顯示的可用接入點名,wpa_passphrase
連線密碼
由於我們需要AP能在系統啟動時就自動生效,hostadp 是作為服務執行的,此時我們需要將 hostadp 的預設組態檔的指向宣告一下。
編輯 /etc/default/hostapd
組態檔,將
#DAEMON_CONF=""
修改為剛才編輯的組態檔的絕對路徑
DAEMON_CONF="/etc/hostapd/hostapd.conf"
設定NAT
NAT (Network Address Translation) 也叫做網路掩蔽或者IP掩蔽(IP masquerading),是一種在IP封包通過路由器或防火牆時重寫源IP地址或目的IP地址的技術。這種技術被普遍使用在有多台主機但只通過一個公有IP地址存取因特網的私有網路中。根據規範,路由器是不能這樣工作的,但它的確是一個方便並得到了廣泛應用的技術。當然,NAT也讓主機之間的通訊變得複雜,導致通訊效率的降低。
我們設定NAT的原因是,由中繼器必定是具有兩個網絡卡(本例中與內部裝置連線為WIFI網絡卡,與路由器直連的是一個普通千兆網絡卡),這兩個網絡卡是處於兩個不同網段的,普通網絡卡的地址是從路由器的DHCP分配獲得的,那麼就可以使得中繼器本身可以存取網際網路,而WIFI網絡卡是與其它的裝置連線是靜態地址,而且通過這個網絡卡向其它的連線裝置分配動態IP,那麼這兩個網段之間是不會互通的,那麼如果希望使得通過中繼連線的裝置也可以連線到網際網路,那麼就得將WIFI連線裝置上發來的請求轉發至普通網絡卡上,再通過該網絡卡連線到網際網路。也就是上述所說的NAT結構。接下來我們就需要設定NAT的地址表, 開啟 /etc/sysctl.conf
組態檔,在檔案最後一行加入:
net.ipv4.ip_forward=1
然後,在核心啟動 NAT:
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
接著,重新開啟 /etc/network/interfaces
網路介面組態檔,新增:
up iptables-restore < /etc/iptables.ipv4.nat
啟動服務
至此已基本設定成功,下面就是啟動 hostapd
和 udhcpd
服務了:
sudo service hostapd start
sudo service udhcpd start
最後我將需要將這兩個服務在系統啟動時一併啟動:
sudo update-rc.d hostapd enable
sudo update-rc.d uphcpd enable
重新啟動,大功告成!這個設定過程在 LUbuntu 和 Raspberry 上都測試成功
如何在樹莓派 2 執行 Ubuntu Snappy Core http://www.linuxidc.com/Linux/2015-08/122438.htm
在(Raspberry Pi)樹莓派上安裝NodeJS http://www.linuxidc.com/Linux/2015-01/111714.htm
Raspberry Pi 樹莓派上安裝Weston http://www.linuxidc.com/Linux/2013-06/86685.htm
用於Raspberry Pi 的Linux 作業系統已經可用 http://www.linuxidc.com/Linux/2012-03/56058.htm
Raspberry Pi(樹莓派)試用小記 http://www.linuxidc.com/Linux/2013-10/91008.htm
Raspberry Pi(樹莓派)的安裝、設定IP及軟體源等入門 http://www.linuxidc.com/Linux/2013-10/91009.htm
本文永久更新連結地址:http://www.linuxidc.com/Linux/2015-09/123592.htm
相關文章