玩客云Docker安装OpenWrt应该使用SuLingGG哪个版本的?

玩客云Docker安装OpenWrt应该使用SuLingGG哪个版本的?
最近想使用OpenWrt做旁路由番羽墙
但是呢又不想再增加设备
于是想到了在我已经安装了Armbain的Docker是不是可以发挥作用呢?
说干就干
一开始我是使用我的T1来安装Docker的,但是无论怎么折腾Docker里面的OpenWRT都无法直接获取主路由的IP
折腾了九九八十一回之后,放弃
这时候想到还有压舱底的玩客云,别浪费了
于是拿出来开刷,刷的镜像是:https://github.com/hzyitc/armbian-onecloud/releases/download/ci-20220925-162323-UTC/Armbian_22.11.0-trunk_Onecloud_jammy_edge_5.18.19.img.xz
记得配合他们自己的U-Boot:https://github.com/hzyitc/u-boot-onecloud
玩客云的OpenWRT建议使用下面这个的,更新版本比较快
docker run -itd --name=sunlinggg --restart=always --network=macnet --privileged=true sulinggg/openwrt:arm_cortex-a5_vfpv4 /sbin/init
用这个版本可以了
注意sulinggg/openwrt的其他本不行,会一直重启无法使用的。
我也是折腾了好久,最后在这里找到了解决办法的,感谢@lanyucomputer
https://github.com/SuLingGG/OpenWrt-Docker/issues/55
避坑提醒,我之前使用的OpenWRT是unifreq/openwrt-aarch64
结果运行一两天之后莫名其妙挂起了,于是换了现在这个sulinggg/openwrt:arm_cortex-a5_vfpv4
OpenWRT设置指引参考下面这个链接的:
https://github.com/huilibing/OneCloud
宿主机以及 Docker 相关设置
开启网卡混杂模式
ip link set eth0 promisc on
创建 Docker 虚拟网络
虚拟网络名称为 macnet,驱动为 macvlan 模式
将 subnet 10.10.10.0 修改为你自己主路由的网段
将 geteway 10.10.10.1 修改为你自己的主路由网关
docker network create -d macvlan --subnet=10.10.10.0/24 --gateway=10.10.10.1 -o parent=eth0 macnet
拉取镜像配置容器
将 --ip 10.10.10.11 修改为你自己主路由的网段IP
# 拉取 `OpenWrt` 镜像
docker pull w8ves/openwrt:onecloud
# 启动 `OpenWrt` 容器
docker run --restart always --name openwrt -d --network macnet --ip 10.10.10.11 --privileged w8ves/openwrt:onecloud /sbin/init
修改容器网络配置
# 查看运行中的容器
docker ps -a
# CONTAINER ID   IMAGE           COMMAND        CREATED         STATUS        PORTS     NAMES
# 0bd53ac6f3e8   w8ves/openwrt   "/sbin/init"   9 minutes ago   Up 19 minutes           openwrt
# 进入容器命令行
docker exec -it openwrt /bin/bash
# 修改网络配置
vi /etc/config/network
[按下键盘 Ins 键切至输入状态]
config interface 'loopback'
    option ifname 'lo'
    option proto 'static'
    option ipaddr '127.0.0.1'
    option netmask '255.0.0.0'
config globals 'globals'
config interface 'lan'
    option ifname 'eth0'
    option _orig_ifname 'eth0'
    option _orig_bridge 'true'
    option proto 'static'
    option ipaddr '10.10.10.11'  # 填写创建容器时的IP
    option netmask '255.255.255.0'
    option gateway '10.10.10.1'  # 修改为你自己主路由的IP
    option dns '10.10.10.1'      # DNS 可填主路由IP 也可填公共DNS
[按下键盘 Esc 键退出输入状态,英文键盘输入 :wq 回车 保存退出]
# 重启容器网络服务
/etc/init.d/network restart
# 退出容器
exit
永久开启网卡混杂模式
# 修改配置
vi /etc/network/interfaces
[按下键盘 Ins 键切至输入状态]
source /etc/network/interfaces.d/*
# Wired adapter #1
allow-hotplug eth0
up ip link set eth0 promisc on  # 添加这一行代码
no-auto-down eth0
iface eth0 inet dhcp
......
[按下键盘 Esc 键退出输入状态,英文键盘输入 :wq 回车 保存退出]
容器 OpenWrt 的相关设置
接口
网络 > 接口 > 修改
忽略此接口 ☑️ > 保存&应用
防火墙
网络 > 防火墙
基本设置 > 启用FullCone-NAT☑️ > 转发 - 接受 > 保存&应用
这个一定要设置,我之前在其他地方的文章教程,照着做,就是少了这一步,折腾了好久,最后自己试出来之后才看到现在的这个文章,坑...
自定义规则 > 复制粘贴下列代码 > 保存&应用
# 国内慢速或无法联网则添加此条命令
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
网络加速
网络 > 网络加速
启用 BBR ☑️ > 保存&应用
旁路网关的相关设置
个体设备
设置 旁路由 为网关,个别设备独自通过 旁路由 上网
优点:折腾旁路由时,不影响其他设备网络
缺点:重复设置每个设备
所有设备
路由器 设置 旁路由 为该路由器网关,该路由器下所有内网设备都通过 旁路由 网
优点:该路由器下所有内网设备都能以旁路由模式上网,无需每台单独设置
缺点:折腾時可能会影响其他设备网络
阅读剩余
THE END