基于docker实现openwrt软路由与OMV(NAS)应用
记录一下搭建过程一、安装debian111、下载debian11安装光盘iso建议下载DVD版本netinst版本安装时比较慢https://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/debian-11.3.0-amd64-DVD-1.iso2、将ISO镜像写下到U盘或移动硬盘使用Win32_Disk_Imager工具加载下载的debian-11.3.0-amd64-DVD-1.iso并制作启动盘3、安装debian11U盘启动后进入安装画面选择install语言选择english区域选择other选择Asia选择China语言集选择 United States - en_US.UTF-8键盘选择American English​ 等待文件复制过程完毕输入主机名比如mynas输入域名(可不输入保持为空)输入root账户密码再次输入root账户密码建立初始用户输入初始建立的用户名称建立初始用户输入初始建立的用户账号建立初始用户输入密码建立初始用户再次输入密码磁盘分区小白用户直接选择 Guided - use entire disk磁盘分区选择需要分区的磁盘如果只有一个磁盘直接回车多个磁盘注意选择磁盘分区选择分区方案小白用户直接选择使用一个分区All files in one partition磁盘分区确认分区信息无误则选择Finish partitioning and write changes to disk分区信息是否写入磁盘确认选择 yes等待基础系统安装配置包管理扫描其他媒体选择 no配置包管理使用网络源选择 yes配置包管理选择china配置包管理选择源站点个人习惯选择中国科大 mirrors.ustc.edu.cn配置包管理输入HTTP代理服务器信息保持默认为空即可等待配置apt配置configuring popularity-contest选择no选择安装的软件只选择SSH server及standard system utilities星号表示已选择等待安装软件安装引导程序选择yes安装引导程序 选择 /dev/sda等待安装完成安装完成选择Continue拨出U盘等待系统重记完成4、启用ssh使用root账户登录debian输入以下命令启用sshnano /etc/ssh/sshd_config输入PermitRootLogin yes按Ctrlx存盘退出重启SSH服务service ssh restart去掉安装时的光盘源nano /etc/apt/sources.list注释掉deb cdrom行apt-get update apt-get install iptables iptables -L -n查看端口开放情况二、安装omv6执行cat EOF /etc/apt/sources.list.d/openmediavault.list deb http://packages.openmediavault.org/public shaitan main # deb http://downloads.sourceforge.net/project/openmediavault/packages shaitan main ## Uncomment the following line to add software from the proposed repository. # deb http://packages.openmediavault.org/public shaitan-proposed main # deb http://downloads.sourceforge.net/project/openmediavault/packages shaitan-proposed main ## This software is not part of OpenMediaVault, but is offered by third-party ## developers as a service to OpenMediaVault users. # deb http://packages.openmediavault.org/public shaitan partner # deb http://downloads.sourceforge.net/project/openmediavault/packages shaitan partner EOFexport LANGC.UTF-8 export DEBIAN_FRONTENDnoninteractive export APT_LISTCHANGES_FRONTENDnone apt-get install --yes gnupg wget -O /etc/apt/trusted.gpg.d/openmediavault-archive-keyring.asc https://packages.openmediavault.org/public/archive.key apt-key add /etc/apt/trusted.gpg.d/openmediavault-archive-keyring.asc apt-get update apt-get --yes --auto-remove --show-upgraded \ --allow-downgrades --allow-change-held-packages \ --no-install-recommends \ --option DPkg::Options::--force-confdef \ --option DPkg::Options::--force-confold \ install openmediavault-keyring openmediavault # Populate the database. omv-confdbadm populate # Display the login information. cat /etc/issue三、安装docker执行sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - sudo add-apt-repository \ deb [archamd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian \ $(lsb_release -cs) \ stable sudo apt-get update sudo apt-get install docker-ce四、安装openwrt-旁路模式1、开启网卡混杂模式2、建立容器3、改配置参数sudo ip link set ens33 promisc on ip route show docker network create -d macvlan --subnet192.168.83.0/24 --gateway192.168.83.2 -o parentens33 macnet docker network ls docker run -d --restart always --name openwrt --privileged --network macnet --ip192.168.83.10 sulinggg/openwrt:x86_64 /sbin/init docker exec -it openwrt bash nano /etc/config/network #修改配置 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.83.10 option gateway 192.168.83.2 option dns 192.168.83.2 114.114.114.114 8.8.4.4 #只做旁路由 #删除wan配置 #删除vpn0配置 #存盘退出 /etc/init.d/network restart #重置openwrt密码 passwd浏览器进入openwrthttp://192.168.83.10进入 【网络】-【接口】-LAN(br-lan)-修改【物理设置】去掉【桥接接口】的勾选DHCP基本设置勾选【忽略此接口】点击【保存应用】五、安装openwrt-主路由模式参考https://www.zhihu.com/question/506798801、宿主机设置网卡混杂模式ip link set eno1 promisc on ip link set enp4s0 promisc on 修改网卡配置 nano /etc/network/interfaces allow-hotplug enp4s0 #iface enp4s0 inet dhcp iface enp4s0 inet static address 172.16.10.250 netmask 255.255.255.0 gateway 172.16.10.1 dns-nameservers 172.16.10.1 allow-hotplug eno1 iface eno1 inet dhcp2、宿主机加载pppoe模块echo pppoe /etc/modules modprobe pppoe3、配置docker# 为 docker 创建 macvlan 虚拟接口并链接到 host 网卡 # LAN 口 enp4s0 docker network create -d macvlan \ --subnet172.16.10.0/24 --gateway172.16.10.1 \ --ipv6 --subnetfe80::/16 --gatewayfe80::1 \ -o parentenp4s0 \ -o macvlan_modebridge \ macvLan # WAN 口 eno1 docker network create -d macvlan \ --subnet192.168.254.0/24 --gateway192.168.254.1 \ --ipv6 --subnetfe81::/16 --gatewayfe81::1 \ -o parenteno1 \ -o macvlan_modebridge \ macvWan #创建容器 docker run -d \ --restart always \ --network macvLan \ --privileged \ --name openwrt \ sulinggg/openwrt:x86_64 \ /sbin/init #将第二网卡的 macvlan 挂接到 openwrt docker network connect macvWan openwrt4、配置openwrt#进入容器 docker exec -it openwrt /bin/sh #编辑 nano /etc/config/network config interface lan option type bridge option ifname eth0 # 需要与 docker netwrok 中的虚拟接口匹配macvLan option proto static option ipaddr 172.16.10.1 option netmask 255.255.255.0 option ip6assign 60 config interface wan option ifname eth1 # 需要与 docker netwrok 中的虚拟接口匹配macvWan option proto dhcp option ip6assign 60 #重启 openwrt 网络 /etc/init.d/network restart #改密码 passwd5.宿主机出口由于docker网络采用macvlan的bridge模式即使宿主机与容器在同一网段相互之间也是无法通信的。 为了解决这个问题需利用多个macvlan接口之间是互通的原理在LAN口新建一个macvlan虚拟接口# 使用 ip 命令 ip link add link enp4s0 mac40 type macvlan mode bridge # 在 enp4s0 接口下添加一个 macvlan 虚拟接口 ip addr add 172.16.10.253/24 brd dev mac40 # 为 mac40 分配 ip 地址 ip link set mac40 up ip route del default #删除默认路由 ip route add default via 172.16.10.250 dev mac40 # 设置静态路由 echo nameserver 172.16.10.1 /etc/resolv.conf # 设置静态 dns 服务器 # 或者使用 nmcli nmcli connection add type macvlan dev enp4s0 mode bridge ifname mac40 autoconnect yes save yes或者若是在 debian 中可以编辑/etc/network/interface并加入auto mac40 iface mac40 inet manual pre-up ip link add link enp4s0 mac40 type macvlan mode bridge pre-up ip addr add 172.16.10.249/24 brd dev mac40 up ip link set mac40 up post-up ip route del default post-up ip route del 172.16.10.0/24 dev enp4s0 post-up ip route add default via 172.16.10.1 dev mac40 post-down ip link del dev mac40六、安装防火墙执行apt-get install ufw ufw default deny incoming ufw allow 22/tcp ufw allow 80/tcp ufw enable

相关新闻

【课程设计/毕业设计】基于Django的花艺文创产品电商交易平台设计与实现 鲜花资源展示与线上交易管理系统【附源码、数据库、万字文档】

【课程设计/毕业设计】基于Django的花艺文创产品电商交易平台设计与实现 鲜花资源展示与线上交易管理系统【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/23 17:54:22 阅读更多 →
企业AI开发落地:从模型可用到场景好用的实战指南

企业AI开发落地:从模型可用到场景好用的实战指南

1. 企业AI开发的现状与挑战当ChatGPT引爆全球AI热潮后,几乎所有企业都在问同一个问题:我们该如何用AI改造业务?但现实情况是,超过70%的AI项目止步于POC阶段。我见过太多企业花费重金采购或训练了"能用"的模型&#xff0…

2026/7/23 17:54:22 阅读更多 →
提质信创•协同发展——麒麟信安云+操作系统交流会顺利召开

提质信创•协同发展——麒麟信安云+操作系统交流会顺利召开

3月11日,由麒麟信安和神州数码共同举办的麒麟信安云操作系统交流会在杭州举行。本次交流会以“提质信创•协同发展”为主题,旨在探讨麒麟信安云操作系统信创产业稳定落地新模式,助力信息技术自主创新优质升级。麒麟信安高级副总裁任启、神州数…

2026/7/23 17:53:22 阅读更多 →

最新新闻

TM4C1299寄存器配置实战:LCD时钟与PWM模块深度解析

TM4C1299寄存器配置实战:LCD时钟与PWM模块深度解析

1. 项目概述:从寄存器手册到实战配置如果你正在使用TI的Tiva™ C系列微控制器,尤其是像TM4C1299NCZAD这样功能强大的型号,那么你肯定绕不开一件事:啃数据手册,然后配置寄存器。手册里那些密密麻麻的表格和位域描述&…

2026/7/23 18:08:26 阅读更多 →
深入解析PWM中断与触发机制:精准时序控制与ADC同步采样实战

深入解析PWM中断与触发机制:精准时序控制与ADC同步采样实战

1. 项目概述与核心价值在嵌入式开发,尤其是电机控制、数字电源、LED调光这些对时序精度要求极高的领域,PWM(脉冲宽度调制)模块的灵活性和精准度直接决定了系统的性能上限。很多开发者对PWM的理解还停留在“配置频率和占空比”的初…

2026/7/23 18:08:26 阅读更多 →
适配家装工程:2026断桥铝门窗十大品牌名录

适配家装工程:2026断桥铝门窗十大品牌名录

断桥铝系统门窗是现代建筑装修中常用的门窗类型,凭借结构稳定、适用性广的特点,广泛应用于各类建筑改造与新建场景。国内门窗行业经过多年发展,形成了多家具备生产体系的企业。本文基于行业整体现状,整理十家主流断桥铝门窗企业信…

2026/7/23 18:08:26 阅读更多 →
【Buildroot】学习记录(1)简介与理论

【Buildroot】学习记录(1)简介与理论

文章目录源码获取其他的构建工具源码获取 官网下载Github 下载 git下载&#xff1a;git clone https://github.com/buildroot/buildroot.git -b 2020.02.x 其他的构建工具 项目名称优点缺点软件包数量其他描述Busybox简单容易上手适合构建简单的文件系统< 20构建最小文件…

2026/7/23 18:08:26 阅读更多 →
C/C++语言输出带颜色

C/C++语言输出带颜色

命令后界面输出颜色 嵌入式终端界面输出日志时&#xff0c;为了区分输出的有用信息、错误信息&#xff0c;可以给不同级别的输出加上不同的颜色&#xff0c;以方便查看。 下面是颜色的定义 /*************************************************************************> …

2026/7/23 18:08:26 阅读更多 →
两种包装运输振动试验标准拆解:GB/T 4857.23-2021与ISO 13355:2016区别

两种包装运输振动试验标准拆解:GB/T 4857.23-2021与ISO 13355:2016区别

日常快递、整车货运路上持续颠簸&#xff0c;很容易震坏外包装和内部产品&#xff0c;垂直随机振动试验就是在实验室复刻运输震动&#xff0c;提前验证包装的抗振能力。 ISO 13355:2016 是全球通用国际范本&#xff0c;面向全世界所有国家&#xff0c;只定下基础试验底层逻辑&a…

2026/7/23 18:07:26 阅读更多 →

日新闻

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;从单点好评到指数级传播&#xff1a;AI副业主理人必须掌握的4层口碑渗透模型&#xff08;含ROI测算表&#xff09; 当AI副业主理人不再仅满足于单次服务交付&#xff0c;而是主动构建可复用、可裂变、可…

2026/7/23 0:00:25 阅读更多 →
AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;AI写作开头钩子设计&#xff1a;为什么你的AI文案完读率不足18%&#xff1f;——基于2,346篇A/B测试报告的归因分析 在对2,346篇跨行业AI生成文案的A/B测试数据进行聚类分析后&#xff0c;我们发现&#xff1…

2026/7/23 0:01:26 阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南&#xff1a;免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:01:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中&#xff0c;我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源&#xff0c;还是配置文件、证书等&#xff0c;都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下&#xff0c;但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP&#xff08;轻量级目录访问协议&#xff09;作为企业级身份认证的黄金标准&#xff0c;已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时&#xff0c;发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 19:43:43 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”&#xff0c;而是以可解释、可审计、可迭代的方式&#xff0c;赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 17:49:47 阅读更多 →

月新闻