树莓派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 pi@192.168.0.17  #将这里的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

重启即可生效。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值