|
本帖最后由 jiangnank 于 2021-8-28 01:23 编辑
nanopi_neo2基于docker实现旁路网关
距离上次更新过去好久了,主要是不小心把账号密码忘记了,所以一直没有更新。这次给大家分享的是SuLiGG大佬的方案,他本人的github我将放到文末。由于该项目仅提供 40M 左右的 “纯净固件” 并预配置自建软件源,可使用opkg命令或前往 “系统 - 软件包” 中安装自己需要的软件包。
旁路网关 所谓的旁路网关,就是在路由器之外的其他硬件设备上搭建一个网关环境,把路由器肩负的网关重任交给其他更适合的设备来做,同时,旁路网关处理完的结果会返回给路由器,由路由器继续进行无线转发。
具体镜像介绍我就不多展开了,想看的我放上SuLingGG大佬的链接自己去看 准备工作
1. 下载nanopi官方固件,要求基于ubuntu系统 FriendlyElec Downloads
推荐下这个固件
2. 下载烧录工具
balenaEtcher - Flash OS images to SD cards & USB drives
3. 连接SSH4. 安装docker 1. 更新apt包索引并安装包以允许apt通过 HTTPS 使用存储库:
- $ sudo apt-get update
- $ sudo apt-get install \
- apt-transport-https \
- ca-certificates \
- curl \
- gnupg \
- lsb-release
复制代码 2. 添加Docker官方的GPG密钥:
- $ curl -fsSL [https://download.docker.com/linux/ubuntu/gpg](https://download.docker.com/linux/ubuntu/gpg) | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
复制代码 3. 使用以下命令设置稳定存储库
- $ echo \
- "deb [arch=arm64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
- $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
复制代码 4. 安装docker引擎
- $ sudo apt-get update
- $ sudo apt-get install docker-ce docker-ce-cli containerd.io
复制代码 5.验证docker是否安装成功
- $ sudo docker run hello-world
复制代码 若出现下图所示,便是安装成功,那么恭喜你,可以继续进行下一步了
6. 将当前用户加入组docker
- $ sudo groupadd docker #添加docker用户组
- $ sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
- $ newgrp docker #更新用户组
复制代码 步骤开始 成功登陆到 SSH 后,在拉取镜像之前,我们还需要进行一些额外的工作:
1.打开网卡混杂模式- sudo ip link set eth0 promisc on
复制代码 2.创建网络
- 获取nanopi的网段
- 创建网络macnet(注意不要直接运行下面的命令)
- docker network create -d macvlan --subnet=192.168.*.0/24 --gateway=192.168.*.1 -o parent=eth0 macnet
复制代码
特别注意!!!此处的*应该替换为nanopi所处的网段,如果nanopi获得的 IP 地址为 192.168.2.122,那么说明nanopi处在 192.168.2.x网段,相应的,命令中的192.168.*.0和192.168.*.1需要被替换成 192.168.2.0和192.168.2.1
- 查看网络(使用 docker network ls 命令可以看到网络macnet已建立成功)
- $ docker network ls
- NETWORK ID NAME DRIVER SCOPE
- 10e676133746 bridge bridge local
- f5308b94e8fa host host local
- 16745ea66852 macnet macvlan local
- 5e72e41ea02a none null local
复制代码
3. 拉取镜像
- docker pull registry.cn-shanghai.aliyuncs.com/suling/openwrt-mini:arm64
复制代码 4. 创建并启动容器- docker run --restart always --name openwrt -d --network macnet --privileged registry.cn-shanghai.aliyuncs.com/suling/openwrt-mini:arm64 /sbin/init
复制代码 启动容器后,我们可以使用 docker ps -a命令查看当前运行的容器:
- $ docker ps -a
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 69e050ac4200 registry.cn-shanghai.aliyuncs.com/suling/openwrt-mini:arm64 "/sbin/init" 36 seconds ago Up 32 seconds openwrt
复制代码
5. 修改相关参数 1.进入容器
- docker exec -it openwrt bash
复制代码 2.编辑 OpenWrt 的网络配置文件
3.更改Lan口设置(不要照抄!!)
- config interface 'lan'
- option type 'bridge'
- option ifname 'eth0'
- option proto 'static'
- option netmask '255.255.255.0'
- option ip6assign '60'
- option ipaddr '192.168.*.10'
- option gateway '192.168.*.1'
- option dns '192.168.*.1'
复制代码 此处的*应该替换为nanopi所处的网段,如果nanopi获得的 IP 地址为 192.168.2.122,那么说明nanopi处在 192.168.2.x网段,相应的,命令中的192.168.*.0和192.168.*.1需要被替换成 192.168.2.0和192.168.2.1
6.重启网络
- /etc/init.d/network restart
复制代码
7.进入控制面板
在浏览器中输入第 5 步option ipaddr 项目中的 IP 进入 Luci 控制面板,若option ipaddr 的参数为 192.168.1.100,则可以在浏览器输入 http://192.168.1.100进入控制面板。
安装软件包
- SSH连接进入openwrt
- 更新软件包索引
- 列出可安装的所有 LuCI APP :
- opkg list | grep luci-app | grep -v Translation
复制代码- 安装软件包 (以 luci-app-xxx-plus 为例):
- opkg install luci-app-违禁软件-plus
复制代码- 若发现此时新安装软件包界面为英文,则尝试查找该软件包的中文翻译包:
- opkg list | grep luci-app-违禁软件-plus | grep zh-cn
复制代码- 此时可以得到该软件包的中文翻译包为 luci-i18n-xxx-plus-zh-cn,使用 opkg install 命令安装此翻译包即可:
- opkg install luci-i18n-违禁软件-plus-zh-cn
复制代码- 其余安装包依次安装即可,由于有些软件包依赖关系较为复杂,所以可能无法使用,建议只安装需要的几个app即可
顺便插一嘴,想了解DNS解析内外完全分离设置的参考这个大佬的帖子,实测很好用,现在网上好多帖子胡搞瞎搞dns
建议看下这位大佬的帖子
来,教你用超简易的方法实现 SmartDNS 分组,让 DNS 解析内外完全分离,简单易懂 - 软路由,x86系统,openwrt(x86) 等 - 恩山无线论坛 - Powered by Discuz! (right.com.cn)
鸣谢 SuLingGG
Lean
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|