将树莓派改造成路由
Xbox 到手后,光速开通了 XGP ,白嫖是如此的快乐,再看看 Steam 库里正价购买的命运2,瞬间觉得亏了一个亿。随即遇到的问题便是主机加速,租房且有室友的情况下不方便改变现有网络结构,单独买个加速盒又觉得性价比太低,突然想起买来即吃灰的树莓派,正好能用上
(https://commons.wikimedia.org/wiki/File:Drawing_of_Raspberry_Pi_model_B_rev2.svg)
手上这台是 Raspberry Pi 1 Model B 只有百兆口,两个 USB 2.0 也没不支持转接千兆网卡,同时不像 3 及以上有 802.11n 无线网卡,因此不适合配置成无线 AP,不过单就游戏加速这一目的算是非常合适了。接着是系统选择,直接刷个 OpenWrt 感觉可玩性不太高,树莓派的性能压榨也不够充分,在 Docker 里跑则更便利,后期的可扩展性更强
安装 Raspberry Pi OS
因为过于机型过于古老,因此直接选择了官方的 Raspberry
Pi OS (原 Raspbian
),较新的机型也可以选择其他优化过的系统。同样因为较为孱弱的性能,选择了没有桌面环境的
Raspberry Pi OS Lite,~HDMI 直连我的 2k 170 过于艰难~,直接
headless 初始化。
用官方的 Raspberry Pi Imaging
Utility 进行烧录,完成后在根目录下建立一个
名为ssh的空文件以启用 SSH,带无线网卡的也可以在根目录建好
wpa_supplicant.conf详情参考 Setting
up a Raspberry Pi headless
将树莓派接好电源和网线后,在路由器后台查找到对应 IP,使用 SSH 连接上去。默认用户为 pi 密码为 raspberry ,按照提示修改好密码,随后可以进行下一步,也可以先按自己的使用习惯 配置好源,安装 Oh My Zsh 等

安装 Docker
图省事直接使用 get.docker.com 提供的脚本安装
1 | curl -fsSL https://get.docker.com -o get-docker.sh |
国内用户可以选用阿里云或者 Azure 的镜像
1 | sudo sh get-docker.sh --mirror Aliyun |
以非 root 用户管理 Docker (可选)
The Docker daemon binds to a Unix socket instead of a TCP port. By default that Unix socket is owned by the user
rootand other users can only access it usingsudo. The Docker daemon always runs as therootuser.If you don’t want to preface the
dockercommand withsudo, create a Unix group calleddockerand add users to it. When the Docker daemon starts, it creates a Unix socket accessible by members of thedockergroup.
创建 docker 组,并把 pi
用户加入用户组,并切换到 docker 登录,再测试是否能无需
sudo 运行 docker
1 | sudo groupadd docker |
启动 Docker daemon
使用 systemctl 来手动启动 Docker daemon
1 | sudo systemctl start docker |
在 Debian 和 Ubuntu 上,Docker 服务已经默认设置为开机启动了,在其他发行版则需执行如下命令
1 | sudo systemctl enable docker.service |
安装 OpenWrt
推荐直接采用 OpenWrt-Rpi-Docker ,对照在Docker 中运行 OpenWrt 旁路网关安装
配置 macvlan 网络
打开网卡混杂模式
1 | sudo ip link set eth0 promisc on |
并在 /etc/rc.local 中添加
ip link set eth0 promisc on ,以便重启也能生效
创建 macvlan ,依据之前查到的树莓派的 IP,修改对应的
subnet 和 gateway 地址(以
192.168.1.x 为例,则两个地址分别修改为
192.168.1.0/24和192.168.1.1)
1 | docker network create -d macvlan \ |
创建容器
从 Docker 仓库拉取对应版本的 OpenWrt,也可以从阿里云拉取
1 | docker pull sulinggg/openwrt:rpi1 |
创建并启动容器(注意镜像名,如果是阿里云拉取的则需修改为
registry.cn-shanghai.aliyuncs.com/suling/openwrt:rpi1)
1 | docker run --restart always --name openwrt -d --network macnet --privileged sulinggg/openwrt:rpi1 /sbin/init |
修改配置
进入容器修改网络配置文件
1 | docker exec -it openwrt bash |
将 Lan 口ipaddr修改为树莓派所在网段的任一不重复 IP
(即192.168.1.x)gateway和 dns
设置为路由器地址,然后重启网络
1 | /etc/init.d/network restart |
配置 OpenWrt
在浏览器中输入之前设置 Lan
口ipaddr即可进入控制面板,默认用户为 root,密码
password,登录后先在“系统 - 管理权”中修改密码
在“网络 - 接口 - Lan - 修改”中关闭 DHPC(忽略此接口)
接着在需要连接的设备指定网关即可
接着重点来了,由于电信那个路由不支持 vlan,加速器改造大失败 😭
最后还是拿着 pc 当加速器用了 🤦
参考资料
Setting up a Raspberry Pi headless
Install Docker Engine on Debian