樹莓派3B as a 無線路由器

宿舍的網絡還是ADSL。買了一個樹莓派3代B型版,將它配置成了無線路由器。

0 準備工作

首先需要一個樹莓派3代B型板和5V-2.5A電源,其次需要一張SD卡盛放Raspbian系統。

0.1 安裝Raspbian

Raspbian是一個基於Debian還針對樹莓派硬件特別優化過的操作系統。選用Raspbian的理由很充分:30000多個可用的軟件包支持,可定製性也強。完全可以把Raspbian理解成一個常見的Linux發行版。

安裝的詳細過程可以參考安裝指南

安裝過程的實質就是把系統鏡像上傳到SD卡中,使SD卡變成一個可以啓動的存儲介質,也就是Raspbian系統盤。

0.2 連接到樹莓派

將樹莓派組裝好,連接電源線。之後,可以使用一根網線或者顯示器+鍵鼠的方式連接到樹莓派。

0.2.1 使用網線連接到樹莓派

使用網線連接樹莓派和另一個端設備。如果樹莓派接入了一個dhcp網絡,那麼直接開機,而後想辦法確定樹莓派的ip地址即可。另一個端設備也可能是固定ip地址的PC、路由器等。這就需要編輯Raspbian系統盤中的cmdline.txt文件,在同一行的行尾指定的ip指令,形如:

ip=192.168.0.17

通電以後,在電腦上可以採取ssh(或者putty)的方式連接到樹莓派,默認的密碼是raspberry。

$ ssh [email protected]  #將這裏的ip地址替換成樹莓派的ip地址

這個連接的主要目的是對樹莓派入網的方式進行調整。如果接到樹莓派的網線上分享有互聯網連接,那就直接形成了下面要出場的“第一個網絡拓撲”。

0.2.2 使用顯示器+鍵鼠的方式連接到樹莓派

將顯示器連接到樹莓派的HDMI接口,鼠標和鍵盤連接到USB接口,接下來就跟使用PC的體驗類似。

1 第一個網絡拓撲

在第一個網絡拓撲中,樹莓派是一個普通的互聯網最終用戶,目的是單純地利用現有的網絡連接更新Raspbian,加裝必備的軟件。

1.1 更新樹莓派系統

做一次初始配置,然後更新SD卡上的二進制文件。如果你並不是一個Linux老司機,那麼你可能還需要一些Linux基礎知識

$ sudo raspi-config #初始配置,部分選項需要sudo reboot以生效
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade
$ sudo rpi-update

在完成了二進制的更新以後,樹莓派就爲各種應用做好了充分準備。

1.2 安裝必備要件

dnsmasq,hostapd,pppoeconf號稱小白用戶的三神器。

當Raspbian和軟件源之間連通後,可以使用以下apt-get命令安裝它們

$ sudo apt-get install dnsmasq hostapd pppoeconf

2 第二個網絡拓撲

第二個網絡拓撲將樹莓派設置成Wi-Fi熱點一枚。這裏需要確保樹莓派可以遠程訪問

2.1 樹莓派熱點的組網規劃

在進行hack之前,簡單地做一個規劃,重點是Wi-Fi局域網的ip地址等。在這裏不妨做如下假設:樹莓派wlan0的ip是192.168.0.1,接入後的設備均處於192.168.0.0/24網段的40-140區間。

2.2 爲wlan0指定靜態地址

樹莓派wlan0作爲熱點模式下的網關,配置爲靜態ip地址。在Raspbian中,編輯如下文件

$ sudo vi /etc/network/interfaces

/etc/network/interfaces文件的內容爲

source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

iface eth0 inet manual

allow-hotplug wlan0
iface wlan0 inet static
    address    192.168.0.1
    netmask    255.255.255.0
    gateway    192.168.0.1

2.3 配置wlan0上的dhcp

dhcp自動爲一個網段上的其它接入設備維護ip地址。dnsmasq是簡單夠用的dns+dhcp服務器,推薦使用。

安裝之後,需要針對wlan0的具體情況定製dnsmasq

$ sudo vi /etc/dnsmasq.conf

在該文件中錄入下面的配置信息

interface=wlan0
listen-address=192.168.0.1
server=8.8.8.8
dhcp-range=192.168.0.40,192.168.0.140,12h

2.4 開啓樹莓派熱點服務

hostapd爲樹莓派維護Wi-Fi熱點服務。它的配置文件由兩個組成:/etc/hostapd/hostapd.conf和/etc/default/hostapd。

$ sudo vi /etc/hostapd/hostapd.conf

該配置文件概要如下

interface=wlan0
hw_mode=g
channel=6
macaddr_acl=0
ssid=your_ssid_here #用你的ssid替換
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_passphrase=your_passwd_here #用你的密碼替換

而系統首先讀取的hostapd配置文件卻是/etc/default/hostapd。編輯該文件,在其中更新配置如下

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

配置完成後重啓生效。此後,樹莓派應該可以作爲一個常見的Wi-Fi熱點正常工作,除了接入的Wi-Fi設備無法連接到互聯網以外。嘗試檢查無線設備的接入情況。

3 第三個網絡拓撲

在這個網絡拓撲中,通過接入的Wi-Fi連接爲樹莓派配置ppp0。

3.1 爲樹莓派熱點接上ADSL

用網線把樹莓派和撥號設備(modem)連接起來。

3.2 使用pppoeconf創建ppp0

衆所周知,pppoeconf爲樹莓派配置一個自啓動的ppp0而接入互聯網。

ssh到樹莓派上,進行pppoeconf的設置。

$ sudo pppoeconf

接下來,按照界面提示輸入帳號、密碼等信息,注意確保選擇了隨着系統自啓動。只要撥號信息配置正確,ping命令可以到互聯網。

4 第四個網絡拓撲

在這個網絡拓撲中,構建ip轉發。之前樹莓派已經通過網線連接到撥號設備,建立了網絡接口ppp0。

4.1 開啓linux的ip轉發

ip轉發規避了橋接的繁瑣,讓樹莓派搖身變成路由器一枚。編輯/etc/sysctl.conf文件,啓用設置

net.ipv4.ip_forward=1

重啓樹莓派,使用cat命令查看轉發是否已然開啓

$ cat /proc/sys/net/ipv4/ip_forward

顯示爲1則開啓成功。

4.2 配置接入的無線設備上網

使用iptables命令來指定nat,將ppp0上的互聯網連接共享給接入的無線設備(192.168.0.40-192.168.0.140)。

$ sudo iptables -t nat -I POSTROUTING -o ppp0 -s 192.168.0.0/24 -j MASQUERADE

4.3 當Raspbian啓動時添加轉發規則

上面的轉發規則在關機後會失效。可以將上述命令寫入Raspbian系統自啓動服務。那意味着,新建文件

$ sudo vi /etc/init.d/ppp0-nat

文件的內容可以簡單如下:

#!/bin/bash
case "$1" in
    start)
        iptables -t nat -I POSTROUTING -o ppp0 -j MASQUERADE
        ;;
    stop)
        iptables -t nat -F
        ;;
    *)
        echo "usage: ppp0-nat {start|stop}"
        exit 1
        ;;
esac

exit 0

然後用update-rc.d命令將它添加到Raspbian的啓動項

$ sudo update-rc.d ppp0-nat defaults

重啓即可生效。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章