首頁 > 軟體

Raspberry Pi 設定無線熱點

2020-06-16 17:52:21

迷思

這幾天一直想著對BananaPro上增加輸入和輸出裝置,折騰來折騰去的最後發現是自己的思路出問題了。作為上位除了做媒體中心之時需要輸入輸出裝置,貌似大多數情況下是不需要這些的,它只是一台提供服務超小型伺服器將它當作普通PC來用確在是一種思路上誤區。

我們本來就擁有各種的輸入輸出裝置,例如iMac, iPad, iPhone 作為互動與顯示的終端它們應該首選而不是在上位機上加個LCD。我只需要將它作為一個中繼器連結我的所有裝置,同時提供一些我所必備的服務就好了。

工作原理

  • 啟動 WIFI 存取點和廣播頻道
  • 啟用DHCP 服務為接入裝置動態分配IP
  • 建立NAT 將 WIFI 的連線請求資料轉發至網絡卡

設定過程

在安裝之前先更新安源

sudo apt-get update

安裝必備的工具包 hostadpudhcpd

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

啟動服務

至此已基本設定成功,下面就是啟動 hostapdudhcpd 服務了:

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


IT145.com E-mail:sddin#qq.com