2015年10月6日 星期二

把 Raspberry Pi 改造成 wifi AP

最近在搞蘋果的 Airplay,當然要玩無線的。所以就先在 RPi 架個 wifi AP 啦。
安裝記錄如下:

1. 安裝環境

Raspbian版本: 2015-05-05-raspbian-wheezy
無線網卡:  bufflao 出的 WLI-UC-GNM,它採用雷凌的晶片。lsusb 可以看到下面的資訊:
ID 0411:01a2 BUFFALO INC. (formerly MelCo., Inc.) WLI-UC-GNM Wireless LAN Adapter [Ralink RT8070]



網路介面: eth0 與 wlan0。eth0 是 RPi 上內建的,當作對外的網路介面,但其實它的 IP 也是來自另一個 dhcp。wlan0 就是WLI-UC-GNM,也是今天的主角,將會當作無線區網的 gateway。

2. 網路介面,DHCP 和 NAT的設定

基本上這裡的設定和我之前的文章 "在Ubuntu Server 14.04.3 架 DHCP 與 NAT" 上所提的方式差不多,差別就在這裡對內的介面是無線,而對外的 eth0 並不是固定IP。所以,/etc/network/interfaces 就成了這樣:
auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet manual

auto wlan0
iface wlan0 inet static
    address 192.168.10.1
    netmask 255.255.255.0
    network 192.168.10.0
    broadcast 192.168.10.255
    pre-up iptables-restore < /etc/network/iptables.rules
而 NAT 的設定則是用以下指令
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables-save > iptables.rules
sudo mv iptables.rules /etc/network
其餘部分就和前一篇文章一樣了。

3. hostapd

重點來了,先安裝套件:
sudo apt-get install hostapd
設定檔我們放在 /etc/hostapd/hostapd.conf
sudo touch /etc/hostapd/hostapd.conf
interface=wlan0
driver=nl80211
ssid=RPi-Wifi
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=password
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
這裡所使用的 driver 是 nl80211,是因為我的無線網卡是 WLI-UC-GNM,
接著修改 /etc/default/hostapd,將設定檔擺在正確的地方。
# Defaults for hostapd initscript
#
# See /usr/share/doc/hostapd/README.Debian for information about alternative
# methods of managing hostapd.
#
# Uncomment and set DAEMON_CONF to the absolute path of a hostapd configuration
# file and hostapd will be started during system boot. An example configuration
# file can be found at /usr/share/doc/hostapd/examples/hostapd.conf.gz
#
DAEMON_CONF="/etc/hostapd/hostapd.conf"

接下來是一個小技巧,由於 ifplugd 會影響 hostapd 的運作,讓 hostapd 啟動時會重置 wlan0 的 static IP,所以我們可以選擇停止 ifplugd,
sudo service ifplugd stop
或是修改 /etc/default/ifplugd,把 all 與 auto 全部改成 eth0,避免影響 wlan0。
INTERFACES="eth0"
HOTPLUG_INTERFACES="eth0"
ARGS="-q -f -u0 -d10 -w -I"
SUSPEND_ACTION="stop"
然後啟動 hostapd
sudo service hostapd start
這樣就完成了,拿出手機搜尋名為 Rpi-Wifi 的無線熱點吧!連上後就可以上網了。

沒有留言:

張貼留言