群晖上用Docker安装OpenWrt

news2025/1/12 13:13:21

在这里插入图片描述

什么是 OpenWrt ?

OpenWrt 是一款基于 Linux 系统的开源路由器操作系统,可以将普通的 PC 或嵌入式设备转变成为一个功能强大的路由器。

老苏对没玩过的东西总是比较好奇,准备用 Docker 搭建一个 OpenWrt 来研究研究。

网上管这种玩法叫旁路路由,但是老苏不确定自己能否实现这样的效果,第一阶段的目标只要跑起来就行了,剩下的可以慢慢学习。

安装

在群晖上以 Docker 方式安装。

为避免模式切换带来的困扰,本次安装全程采用命令行方式,请用 SSH 客户端登录到群晖,但老苏尽量避免了进入容器内的操作

网络环境说明

开始前先简单说明下老苏局域网的网络环境

IP说明
192.168.0.1主路由 IP
192.168.0.11准备分配给 OpenWrt 容器的 IP
192.168.0.197群晖 IP

查看网卡信息

登录到群晖上,执行 ifconfig 命令,显示当前网络配置信息

在这里插入图片描述

其中,docker0 是 一个虚拟网桥,它用来为 Docker 的容器提供网络连接服务,而 docker-xx则是各个容器的网络接口

往下拉,还会看到其他的网络接口,而 eth0 通常表示第一个以太网接口,也就是我们的主网卡

开启混杂模式

在正常模式下,当网卡接收到数据包时,会验证它是否属于自己。如果不是,会丢弃数据包,但在混杂模式下,则会接收所有经过网卡的数据包,包括不是发给本机的包

网上大部分用的命令是

ip link set eth0 promisc on

但应该用 ifconfig 也可以

# 设置混杂模式
ifconfig eth0 promisc

# 禁用混杂模式
ifconfig eth0 -promisc

创建 macvlan 网络

macvlan 是一种 Linux 的网络驱动,它可以让容器或虚拟机直接连接到物理网络,而不需要使用 NAT 或桥接。macvlan 会为每个容器或虚拟机分配一个独立的 MAC 地址,这样它们就可以在网络上被识别和访问

# 创建 macvlan 网络
docker network create -d macvlan \
   --subnet=192.168.0.0/24 \
   --gateway=192.168.0.1 \
   -o parent=eth0 \
   macnet

其中:

  • 192.168.0.0/24 是老苏当前局域网的网段
  • 192.168.0.1 是当前网关(也就是主路由 IP)
  • eth0 为群晖主机的网卡
  • macnet 为要创建的子网名称,可以随便取

你需要根据自己的网段进行修改。完成后,可以通过 docker network ls 查看

网络配置文件

docker 目录中新建 openwrt 及子目录

# 新建文件夹 openwrt 和 子目录
mkdir -p /volume1/docker/openwrt/data/lock

# 进入 openwrt 目录
cd /volume1/docker/openwrt

# 创建 network.conf 文件
touch network.conf

# 编辑 network.conf 文件
vi network.conf

现在的目录结构是这样的

将下面的内容写入到 network.conf

config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option packet_steering '1'

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.0.11'
        option gateway '192.168.0.1'
        option dns '8.8.8.8 114.114.114.114'

config interface 'vpn0'
        option ifname 'tun0'
        option proto 'none'

我们只要关注 lan 部分

  • ipaddr:是老苏准备分给 OpenWrtIP 地址,要和当前局域网在同一个网段
  • gateway :是主路由的 IP地址
  • dns: 老苏用了 8.8.8.8114.114.114.114

运行容器

# 启动容器
docker run -d \
   --restart always \
   --name openwrt \
   --network macnet \
   --privileged \
   --ip 192.168.0.11 \
   -v $(pwd)/network.conf:/etc/config/network \
   -v $(pwd)/data:/var \
   sulinggg/openwrt:x86_64 /sbin/init

其中:

  • -d:使容器运行在 Daemon 模式;
  • --restart always :容器退出时始终重启,使服务尽量保持始终可用;
  • --name openwrt :容器的名称;
  • --network macnet:将容器加入 macnet 网络;
  • --privileged: 容器运行在特权模式下;
  • /sbin/init:容器启动后执行的命令;

正常情况下,你可以直接跳到 运行 章节,开始访问 OpenWrt 的网页了

进入容器

这一步,是假设后续你更改了 network.conf 文件,就会需要进入容器内重新加载网络配置,而不需要重启容器,这样会更快捷

# 进入容器
docker exec -it openwrt /bin/ash

# 加载网络配置
/etc/init.d/network restart

#退出容器
exit

在这里插入图片描述

运行

这里需要特别说明的是,即便你启用了 tailscale 子网路由,从远程访问 http://192.168.0.11 也是无法打开登录界面的,需要在局域网登录后,在 Web 管理页面取消 只允许内网访问 才行

现在在浏览器中输入 http://192.168.0.11 ,就能看到登录界面

默认用户: root,密码为空

在这里插入图片描述

登录成功后的主界面

首先当然是设置密码

默认情况下,是开启了 Dropbear 实例的

在这里插入图片描述

所以你可以用 SSH 客户端登录到 OpenWrt,账号密码和 Web 是一样的

接下来,就是慢慢学习了,如果有时间的话 😂

参考文档

SuLingGG/OpenWrt-Docker: Build OpenWrt Docker Images For Raspberry Pi 1~4 (Daily Update)
地址:https://github.com/SuLingGG/OpenWrt-Docker

在Docker 中运行 OpenWrt 旁路网关 | 美丽应用
地址:https://mlapp.cn/376.html

immortalwrt/immortalwrt at openwrt-18.06-k5.4
地址:https://github.com/immortalwrt/immortalwrt/tree/openwrt-18.06-k5.4

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/915498.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Xmake v2.8.2 发布,官方包仓库数量突破 1k

Xmake 是一个基于 Lua 的轻量级跨平台构建工具。 它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时。 它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好&#x…

ChatGPT只是玩具:生成式人工智能在不同行业的应用

源自:IT经理网 生成式人工智能的十一个行业用例 打开生成式 AI的正确姿势 声明:公众号转载的文章及图片出于非商业性的教育和科研目的供大家参考和探讨,并不意味着支持其观点或证实其内容的真实性。版权归原作者所有,如转载稿涉及版权等问题&…

ssm在线云音乐系统的设计与实现

ssm在线云音乐系统的设计与实现042 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 摘 要 随着移动互联网时代的发展,网络的使用越来越普及,用户在获取和存储信息方面也会有激动人心的…

代码随想录算法训练营(回溯总结篇)

回溯也可以说是暴力搜索(最多剪枝一下)。回溯是递归的副产品,只要有递归就会有回溯。 一.分类 1.组合问题 (1)按组合元素的个数 (2)按组合元素的总和 有重复元素 同一元素可以重复选&#x…

【C语言】喝汽水问题

大家好!今天我们来学习C语言中的喝汽水问题! 目录 1. 题目内容: 2. 思路分析 2.1 方法一 2.2 方法二 2.3 方法三 3. 代码实现 3.1 方法一 3.2 方法二 3.3 方法三 1. 题目内容 喝汽水,1瓶汽水1元,2个空瓶可以…

Java学习笔记37

Java笔记37 TCP案例 TCP实现发送消息 下面我们来分别编写一个客户端程序和一个服务端程序,使用用户端给服务端发送一句消息,然后使用服务端接收用户端发送过来的这句消息并打印输出。 客户端: 创建一个与服务端Socket类的实例对象&#xf…

基于java+mysql+控件台学生信息管理系统

基于javamysql控件台学生信息管理系统 一、系统介绍二、功能展示四、其他系统实现五、获取源码 一、系统介绍 项目类型:Java SE项目(控制台打印) 项目名称:基于Java学生信息管理系统(student_sys) 当前版本&#xf…

寻找重复数-快慢指针

给定一个包含 n 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。 假设 nums 只有 一个重复的整数 ,返回 这个重复的数 。 你设计的解决方案必须 不修改 数组 nums 且只用常…

使用 MATLAB 和 Simulink 对雷达系统进行建模和仿真

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

ClickHouse(二十五):ClickHouse 可视化工具操作

​​​​​​​ 进入正文前,感谢宝子们订阅专题、点赞、评论、收藏!关注IT贫道,获取高质量博客内容! 🏡个人主页:含各种IT体系技术,IT贫道_Apache Doris,大数据OLAP体系技术栈,Kerberos安全认证…

vite创建项目命令

1.第一步运行创建命令(npm) npm create vitelatest也可以使用yarn yarn create vite还可以 pnpm create vite注意的地方:首次创建的时候会出现这个 Need to install the following packages:create-vitelatest Ok to proceed? (y) 直接y就…

如何设计一个订单号生成服务?

一、数据量的大小二、有意义的ID三、高可用四、高性能五、唯一性六、包含分库分表的业务字段七、实战 1) Redis2) Leaf-segment 数据库生成3)Leaf-snowflake方案4) UUID 如何设计要给订单号生成服务 一、数据量的大小 在设计订单号的生成服务时候,我们首先要考虑的…

【深度学习 | ResNet核心思想】残差连接 跳跃连接:让信息自由流动的神奇之道

🤵‍♂️ 个人主页: AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!&…

ms-tpm-20-ref 在linux下编译

1、代码地址, GitHub - microsoft/ms-tpm-20-ref: Reference implementation of the TCG Trusted Platform Module 2.0 specification.Reference implementation of the TCG Trusted Platform Module 2.0 specification. - GitHub - microsoft/ms-tpm-20-ref: Refe…

企业/公司电脑图纸加密软件系统——「天锐绿盾加密软件」

天锐绿盾是一款企业级透明加密软件,旨在保护企业或设计院的图纸文件和电子文档,防止信息泄露和数据安全问题。 ​ 天锐绿盾采用了核心驱动层的透明加密 技术,可以在操作系统层自动对所有需要加密的文档进行加密和解密,用户在使用加…

交换机的基本原理与配置(二)

目录 2. 以太网交换机 2.1 交换机设备简介 2.2交换机的工作原理 2.3交换机接口的双工模式 2. 以太网交换机 下面通过交换机设备简介,交换机的工作原理及交换机接口模式来了解以太网交换机。 2.1 交换机设备简介 交换机的品牌众多,像Cisco公司&#xf…

自动设置服务器全教程

亲爱的爬虫探险家!在网络爬虫的世界里,自动设置代理服务器是一个非常有用的技巧。今天,作为一家代理服务器供应商,我将为你呈上一份轻松实用的教程,帮助你轻松搞定爬虫自动设置代理服务器。 一、为什么需要自动设置代…

华为OD-第K长的连续字母字符串长度

题目描述 给定一个字符串,只包含大写字母,求在包含同一字母的子串中,长度第 k 长的子串的长度,相同字母只取最长的那个子串。 代码实现 # coding:utf-8 # 第K长的连续字母字符串长度 # https://www.nowcoder.com/discuss/353150…

差分走线的要求

1 等长:等长是指两条线的长度要尽量一样长,是为了保证两个差分信号时刻保持相反极性。减少共模分量。 2等宽等距:等宽是指两条信号的走线宽度需要保持一致,等距是指两条线之间的间距要保持不变,保持平行。 对走线要求最…