找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 4270|回复: 3

nanopi_neo2基于docker实现旁路网关

[复制链接]
本帖最后由 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. 连接SSH
  1. 用户名:pi
  2. 密码:pi
复制代码
4. 安装docker
1. 更新apt包索引并安装包以允许apt通过 HTTPS 使用存储库:
  1. $ sudo apt-get update
  2. $ sudo apt-get install \
  3.       apt-transport-https \
  4.             ca-certificates \
  5.             curl \
  6.             gnupg \
  7.             lsb-release
复制代码
2. 添加Docker官方的GPG密钥:
  1. $ 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. 使用以下命令设置稳定存储库
  1. $ echo \
  2.             "deb [arch=arm64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  3.             $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
复制代码
4. 安装docker引擎
  1. $ sudo apt-get update
  2. $ sudo apt-get install docker-ce docker-ce-cli containerd.io
复制代码
5.验证docker是否安装成功
  1. $ sudo docker run hello-world
复制代码
若出现下图所示,便是安装成功,那么恭喜你,可以继续进行下一步了


6. 将当前用户加入组docker
  1. $ sudo groupadd docker    #添加docker用户组
  2. $ sudo gpasswd -a $USER docker    #将登陆用户加入到docker用户组中
  3. $ newgrp docker    #更新用户组
复制代码
步骤开始
成功登陆到 SSH 后,在拉取镜像之前,我们还需要进行一些额外的工作:
1.打开网卡混杂模式
  1. sudo ip link set eth0 promisc on
复制代码
2.创建网络
  • 获取nanopi的网段
    1. sudo ifconfig
    复制代码

  • 创建网络macnet(注意不要直接运行下面的命令
    1. 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已建立成功)
    1. $ docker network ls
    2. NETWORK ID          NAME                DRIVER              SCOPE
    3. 10e676133746        bridge              bridge              local
    4. f5308b94e8fa        host                host                local
    5. 16745ea66852        macnet              macvlan             local
    6. 5e72e41ea02a        none                null                local
    复制代码

3.  拉取镜像

  1. docker pull registry.cn-shanghai.aliyuncs.com/suling/openwrt-mini:arm64
复制代码
4.  创建并启动容器
  1. docker run --restart always --name openwrt -d --network macnet --privileged registry.cn-shanghai.aliyuncs.com/suling/openwrt-mini:arm64 /sbin/init
复制代码
启动容器后,我们可以使用 docker ps -a命令查看当前运行的容器:
  1. $ docker ps -a
  2. CONTAINER ID   IMAGE                                                         COMMAND        CREATED          STATUS                      PORTS     NAMES
  3. 69e050ac4200   registry.cn-shanghai.aliyuncs.com/suling/openwrt-mini:arm64   "/sbin/init"   36 seconds ago   Up 32 seconds                         openwrt
复制代码

5.
修改相关参数
1.进入容器
  1. docker exec -it openwrt bash
复制代码
2.编辑 OpenWrt 的网络配置文件
  1. vim /etc/config/network
复制代码

3.更改Lan口设置(不要照抄!!
  1. config interface 'lan'
  2.         option type 'bridge'
  3.         option ifname 'eth0'
  4.         option proto 'static'
  5.         option netmask '255.255.255.0'
  6.         option ip6assign '60'
  7.         option ipaddr '192.168.*.10'
  8.         option gateway '192.168.*.1'
  9.         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.重启网络
  1. /etc/init.d/network restart
复制代码

7.进入控制面板
在浏览器中输入第 5 步option ipaddr 项目中的 IP 进入 Luci 控制面板,若option ipaddr 的参数为 192.168.1.100,则可以在浏览器输入 http://192.168.1.100进入控制面板。
  1. 用户名:root
  2. 密码:password
复制代码
安装软件包
  • SSH连接进入openwrt
  • 更新软件包索引
    1. opkg update
    复制代码

  • 列出可安装的所有 LuCI APP :
  1. opkg list | grep luci-app | grep -v Translation
复制代码
  • 安装软件包 (以 luci-app-xxx-plus 为例):
  1. opkg install luci-app-违禁软件-plus
复制代码
  • 若发现此时新安装软件包界面为英文,则尝试查找该软件包的中文翻译包:
  1. opkg list | grep luci-app-违禁软件-plus | grep zh-cn
复制代码
  • 此时可以得到该软件包的中文翻译包为 luci-i18n-xxx-plus-zh-cn,使用 opkg install 命令安装此翻译包即可:
  1. opkg install luci-i18n-违禁软件-plus-zh-cn
复制代码
  • 其余安装包依次安装即可,由于有些软件包依赖关系较为复杂,所以可能无法使用,建议只安装需要的几个app即可

顺便插一嘴,想了解DNS解析内外完全分离设置的参考这个大佬的帖子,实测很好用,现在网上好多帖子胡搞瞎搞dns
建议看下这位大佬的帖子
来,教你用超简易的方法实现 SmartDNS 分组,让 DNS 解析内外完全分离,简单易懂 - 软路由,x86系统,openwrt(x86) 等 - 恩山无线论坛 - Powered by Discuz! (right.com.cn)
鸣谢
SuLingGG
Lean




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我的恩山、我的无线 The best wifi forum is right here.
来自手机 | 显示全部楼层
老铁 在安装docker第二部分加gpg密钥会报错 貌似linux核心版本过高导致

点评

这部分可以参考docker官网的安装步骤,https://docs.docker.com/engine/install/ubuntu/,注意要安装arm64的  详情 回复 发表于 2021-9-19 11:13
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
06371 发表于 2021-9-11 23:01
老铁 在安装docker第二部分加gpg密钥会报错 貌似linux核心版本过高导致

这部分可以参考docker官网的安装步骤,https://docs.docker.com/engine/install/ubuntu/,注意要安装arm64的
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
感觉还不错的各位烦请点个赞哈
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-27 20:57

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表