无论是32位还是64位CPU都可以通用本教程
首先需要有类unix系统底包
此处以armbian为例,其中相关的命令请转为对应平台
安装docker
apt update
apt install docker.io
docker info
在docker中安装portainer面板实现docker的GUI操作,绑定端口9000
docker run -d \
-p 8000:8000 \
-p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /data/docker/portainer/data:/data \--name=portainer \
--restart=always \
portainer/portainer-ce
安装openwrt(此处可在portainer中可视化完成)
docker pull virking/openwrt:20.04
ip link set eth0 promisc on
docker network create -d macvlan --subnet=192.168.123.0/24 --gateway=192.168.123.1 -o parent=eth0 macnet
此处进行了三个操作
1.安装openwrt源
--32位推荐virking/openwrt:20.04 后面flag可以为last
--64位推荐sulinggg/openwrt - Docker Image | Docker Hub
2.打开网卡混杂模式
3.新建docker网络
--其中subnet和gateway要根据实际部署所在网段进行调整,我们家为192.168.123.0
创建并启动openwrt容器(此处可在portainer中可视化完成)
docker run -i -t -d --name=openwrt --restart=always --network=macnet --privileged=true virking/openwrt:20.04 /sbin/init
其中:
--restart always参数表示容器退出时始终重启,使服务尽量保持始终可用;
--name openwrt参数定义了容器的名称;
-d参数定义使容器运行在 Daemon 模式;
--network macnet参数定义将容器加入 maxnet网络;
--privileged 参数定义容器运行在特权模式下;
virking/openwrt:20.04为 Docker 镜像名
/sbin/init定义容器启动后执行的命令。
启动容器后,我们可以使用 docker ps -a命令查看当前运行的容器:
若容器运行信息STATUS列为 UP状态,则说明容器运行正常。
进入容器并修改相关参数
docker exec -it openwrt bash
其中:
openwrt为容器名称;
bash为进入容器后执行的命令。
执行此命令后我们便进入 OpenWrt 的命令行界面,首先,我们需要编辑 OpenWrt 的网络配置文件:
vi /etc/config/network
我们需要更改 Lan 口设置(此处可以在可视化界面调整):
config interface 'lan'
option type 'bridge'
option ifname 'eth0'
option proto 'static'
option ipaddr '192.168.123.100'#指定的静态ip
option netmask '255.255.255.0'
option ip6assign '60'
option gateway '192.168.123.1'#主路由IP
option broadcast '192.168.123.255'
option dns '192.168.123.1'#主路由IP
**我们需要更改/检查 DNS设置(此处需要使用VIM文本编辑器):
cat /etc/resolv.conf
如namesever的ip不存在局域网网段 而是在docker brige网段内 需要手动修改为主路由IP或第三方DNS地址。
否则会存在docker内IP可以ping通但ping不到网址的情况。
openwrt 插件
常规设置 · vernesong/OpenClash Wiki (github.com)
许迎果 第214期 openwrt十类常用插件大盘点|服务器|浏览器|路由_网易订阅 (163.com)
旁路由配置核心
- 旁路由设置静态IP
- 主路由DHCP设置中设置网关和DNS为旁路由静态IP
- 旁路由DNS解析指向主路由
参考资料:
群晖NAS安装openwrt用作旁路由_Flying_x的博客-程序员ITS401_nas 旁路由 - 程序员ITS401
(102条消息) Docker容器内部能ping通ip,ping不通域名(Name or service not known)解决方法_丶聆风的博客-CSDN博客_容器ip不通
已知问题 · Issue #12 · SuLingGG/OpenWrt-Docker (github.com)
sulinggg/openwrt - Docker Image | Docker Hub
virking/openwrt - Docker Image | Docker Hub
在Docker 中运行 OpenWrt 旁路网关 | 美丽应用 (mlapp.cn)
(102条消息) Docker daemon及容器实例的DNS配置详解_易生一世的博客-CSDN博客_daemon.json dns
玩客云可以安装armbian与openwrt,-个人笔记-天河 BBS (showj.top)


文章评论