Raspberry Pi 配置無線熱點

無線熱點

迷思

這幾天一直想著對BananaPro上增加輸入和輸出設備,折騰來折騰去的最后發(fā)現(xiàn)是自己的思路出問題了。作為上位除了做媒體中心之時需要輸入輸出設備,貌似大多數(shù)情況下是不需要這些的,它只是一臺提供服務超小型服務器將它當作普通PC來用確在是一種思路上誤區(qū)。

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

工作原理

  • 啟動 WIFI 訪問點和廣播頻道
  • 啟用DHCP 服務為接入設備動態(tài)分配IP
  • 建立NAT 將 WIFI 的連接請求數(shù)據(jù)轉發(fā)至網(wǎng)卡

配置過程

在安裝之前先更新安源

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"

無線網(wǎng)卡作為中繼器時需要使用靜態(tài)地址:

sudo ifconfig wlan0 192.168.100.1

wlan0 是無線網(wǎng)卡的設備ID,可能你的設備ID會是其它的值,請先用 iwconfig 確認無線網(wǎng)卡的設備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

這里有幾個參數(shù)是需要說明的:

  • ssid 是 AP 在連接設備中所顯示的可用接入點名,
  • wpa_passphrase 連接密碼

由于我們需要AP能在系統(tǒng)啟動時就自動生效,hostadp 是作為服務運行的,此時我們需要將 hostadp 的默認配置文件的指向聲明一下。

編輯 /etc/default/hostapd 配置文件,將

#DAEMON_CONF=""

修改為剛才編輯的配置文件的絕對路徑

DAEMON_CONF="/etc/hostapd/hostapd.conf"

配置NAT

NAT (Network Address Translation) 也叫做網(wǎng)絡掩蔽或者IP掩蔽(IP masquerading),是一種在IP封包通過路由器或防火墻時重寫源IP地址或目的IP地址的技術。這種技術被普遍使用在有多臺主機但只通過一個公有IP地址訪問因特網(wǎng)的私有網(wǎng)絡中。根據(jù)規(guī)范,路由器是不能這樣工作的,但它的確是一個方便并得到了廣泛應用的技術。當然,NAT也讓主機之間的通信變得復雜,導致通信效率的降低。

我們配置NAT的原因是,由中繼器必定是具有兩個網(wǎng)卡(本例中與內部設備連接為WIFI網(wǎng)卡,與路由器直連的是一個普通千兆網(wǎng)卡),這兩個網(wǎng)卡是處于兩個不同網(wǎng)段的,普通網(wǎng)卡的地址是從路由器的DHCP分配獲得的,那么就可以使得中繼器本身可以訪問互聯(lián)網(wǎng),而WIFI網(wǎng)卡是與其它的設備連接是靜態(tài)地址,而且通過這個網(wǎng)卡向其它的連接設備分配動態(tài)IP,那么這兩個網(wǎng)段之間是不會互通的,那么如果希望使得通過中繼連接的設備也可以連接到互聯(lián)網(wǎng),那么就得將WIFI連接設備上發(fā)來的請求轉發(fā)至普通網(wǎng)卡上,再通過該網(wǎng)卡連接到互聯(lián)網(wǎng)。也就是上述所說的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 網(wǎng)絡接口配置文件,添加:

up iptables-restore < /etc/iptables.ipv4.nat

啟動服務

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

sudo service hostapd start
sudo service udhcpd start

最后我將需要將這兩個服務在系統(tǒng)啟動時一并啟動:

sudo update-rc.d hostapd enable
sudo update-rc.d uphcpd enable

重啟,大功告成!這個配置過程在 Lubuntu 和 Raspberry 上都測試成功

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容