ubuntu使用docker安装openwrt

news2024/11/29 0:54:54

系统:ubuntu24.04
架构:x86

1. 安装docker

1.1 离线安装

docker下载地址
根据系统版本,依次下载最新的三个关于docker的软件包

  • container.io(注意后缀版本顺序)
  • docker-ce-cli
  • docker-ce

然后再ubuntu系统中依次按顺序安装这三个包

sudo dpkg -i container.io*.deb
sudo dpkg -i docker-ce-cli*.deb
sudo dpkg -i docker-ce*.deb

1.2 在线安装

 sudo apt install containerd.io docker-ce-cli docker-ce

2. 配置物理机网络

2.1 查看物理机网卡信息

ip a

如下为物理机的网卡信息

1: lo: <LOOPBACK,UP,LOWER_UP> ************
2: enp1s0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> **********
3: enp2s0: <NO-CARRIER,BROADCAST,MULTICAST,PROMISC,UP> ***************
4: wlo1: <BROADCAST,MULTICAST,UP,LOWER_UP> ************
6: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> ****************

为了方便配置使用以及后续登录openwrt后台管理系统,你需要配置网卡信息

2.2 网络配置

开启网口的混杂模式(临时)

ip link set enp1s0 promisc on
ip link set enp2s0 promisc on

开启IP转发功能

# 修改配置文件,解除net.ipv4.ip_forward=1的注释
vim /etc/sysctl.conf 
# net.ipv4.ip_forward = 1

2.3 netplan网卡设置

然后我们做以下自定义规定(读者可自行设计)

  • enp1s0:有线网卡1,我们规定这个网口为Wan口,用于连接互联网
  • enp2s0:有线网卡2,我们规定这个网口为Lan口,供内部网络的有线设备连接
  • wlo1: 无线网卡1,我们规定这个网口为Lan口,供内部网络的无线设备连接
  • 其他网卡:…
# ubuntu 20.04
sudo vim /etc/netplan/00-installer-config.yaml
# ubuntu 24.04
sudo vim /etc/netplan/50-cloud-init.yaml
# 其他系统请参考其他资料

配置如下:其中Lan口配置为静态IP,Wan配置为DHCP动态获取IP

network:
  ethernets:
    enp1s0:
      dhcp4: true   # 启用DHCP
      dhcp6: false
      # addresses: [192.168.1.10/24]
      optional: true
    enp2s0:
      dhcp4: false
      dhcp6: false
      addresses: [192.168.2.1/24] #设置静态IP
      optional: true
  version: 2

配置完物理机的ip地址后,你需要使用其他PC电脑连接物理机的Lan口,使用远程ssh(vscode-remote、powershell、xshell等)完成后续的配置

3. 配置docker

3.1 配置虚拟网络接口

在Lan口网卡enp2s0上附加网络接口netLan,指定网段192.168.2.0/24

docker network create -d macvlan --subnet=192.168.2.0/24 -o parent=enp2s0 netLan

查看已添加的docker网络接口

docker network ls

如果想要修改子网段,需要先删除该网络后再重新添加,并且确保没有容器使用该网络

docker network rm netLan

3.2 拉取openwrt镜像

# 拉取镜像
docker pull registry.cn-shanghai.aliyuncs.com/suling/openwrt:x86_64
# 查看所有镜像列表
docker images

若后续发生问题,可重新使用该镜像生成openwrt容器

3.3 启动openwrt容器

注意:请勿将enp2s0和netLan设置为相同静态IP,否则无法区分物理机和docker容器的ip地址

docker run --restart always --name openwrt -d --network netLan --ip 192.168.2.2 --privileged registry.cn-shanghai.aliyuncs.com/suling/openwrt:x86_64 /sbin/init
  • docker run
    启动Docker容器的命令
  • –restart always
    总是重新启动
  • –name openwrt
    给容器命名为openwrt
  • -d
    表示容器将在后台(守护进程模式)运行
  • –network netLan
    指定容器使用的网卡
  • –privileged
    这个选项使容器获得扩展权限,可以访问宿主机的某些设备,类似于在物理机上运行
  • –ip 192.168.2.1
    为容器指定一个静态IP地址
  • registry.cn-shanghai.aliyuncs.com/suling/openwrt:x86_64
    运行的镜像名称,如果本地没有则会从在线拉取
  • /sbin/init
    容器内要执行的命令,/sbin/init 是系统初始化的入口点,它会启动所有必要的系统进程和服务

3.4 附加网络

# 附加Wan口网络
docker network create -d macvlan --subnet=192.168.1.0/24 -o parent=enp1s0 netWan
docker network connect netWan openwrt

3.5 *报错

若openwrt启动失败、发生报错等问题,可重新进行配置

# 查看所有容器信息
sudo docker ps -a
# 停止容器
docker stop [容器名称/容器ID]
# 删除容器
docker rm [容器名称/容器ID]
# 删除网络
docker network rm netWan
docker network rm netLan

4. 配置openwrt容器

# 进入容器
docker exec -it openwrt /bin/sh
# 重置root密码(openwrt)
passwd
# 配置网卡信息(openwrt)
vi /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.2.2'
        option gateway '192.168.2.1'  
        option dns '192.168.2.1'

重启网络服务

# 重启网络服务(openwrt)
/etc/init.d/network restart

配置完后,个人PC电脑应当连接到物理机的Lan网口,使用浏览器访问openwrt的ip地址192.168.2.2,即可进入到openwrt的管理界面

5. openwrt系统配置

5.1 配置wan口

添加wan口
在这里插入图片描述

设置为由DHCP客户端,从上一级路由器中获取IP
在这里插入图片描述

5.2 配置lan口

设置Lan口子网
在这里插入图片描述

拉到最下面,取消《忽略此接口的选项》,即开启DHCP,这样Lan口下的设备才能获取到IP地址,点击保存&应用
在这里插入图片描述

6. 参考资料

[1] Ubuntu通过Docker部署OpenWRT
[2] 在docker中搭建openwrt软路由系统,实现多网口以及主路由功能

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

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

相关文章

javaweb学习(day14-ThreadLocal文件上传下载)

一、线程数据共享和安全 -ThreadLocal 1 什么是 ThreadLocal ThreadLocal 的作用&#xff0c;可以实现在同一个线程数据共享, 从而解决多线程数据安全问题. ThreadLocal 可以给当前线程关联一个数据(普通变量、对象、数组)set 方法 [源码!] ThreadLocal 可以像 Map 一样存取数…

量化交易:Miniqmt获取可转债数据和交易python代码

哈喽&#xff0c;大家好&#xff0c;我是木头左&#xff01; 低风险资产除了国债外&#xff0c;还有可转债&#xff0c;兼容有高收益的股性和低风险的债性&#xff0c;号称“下有保底&#xff0c;上不封顶”。 &#x1f50d; 可转债&#xff1a;金融市场的双面娇娃 可转债&am…

web学习笔记(六十五)

目录 1. Hash模式和History模式 2. 导航守卫 3. 路由元信息 4.路由懒加载 1. Hash模式和History模式 Hash模式&#xff08;哈希模式&#xff09;和History模式&#xff08;历史模式&#xff09;是匹配路由的两种模式&#xff0c;一般默认配置Hash模式&#xff0c;可以在in…

软件架构x86 、 x86_64、 arm64、aarch64

看系统信息: 大多数Linux发行版都提供如 uname -a命令 arch命令用于显示当前主机的硬件架构类型。 例如 下面的是Kylin Linux Advanced Server for Kunpeng V10 操作系统 (鲲鹏处理器是华为在2019年1月向业界发布的高性能数据中心处理器 ) 下面这个是 ubuntu 18.04.6 …

【AI论文与新生技术】Follow-Your-Emoji:精细可控且富有表现力的自由式人像动画技术

我们提出了 Follow-Your-Emoji&#xff0c;这是一种基于扩散的肖像动画框架&#xff0c;它使用目标地标序列对参考肖像进行动画处理。肖像动画的主要挑战是保留参考肖像的身份并将目标表情转移到该肖像&#xff0c;同时保持时间一致性和保真度。为了应对这些挑战&#xff0c;Fo…

四、利用启发式算法进行特定数据集的残差网络结构搜索【框架+源码】

背景&#xff1a;工作之后干的事情跟算法关联甚少&#xff0c;整理下读书期间的负责和参与的work&#xff0c;再熟悉学习下。 边熟悉边整理喽~ CV Tradictional workCV AI based work机械臂视觉抓取项目机器学习全流程 Pipeline训练平台OCR生产线喷码识别三维重建(SfM)ROS机器人…

SpringBoot Elasticsearch06-以黑马商场为例-黑马程序员学习笔记

黑马商城作为一个电商项目&#xff0c;商品的搜索肯定是访问频率最高的页面之一。目前搜索功能是基于数据库的模糊搜索来实现的&#xff0c;存在很多问题。 首先&#xff0c;查询效率较低。 由于数据库模糊查询不走索引&#xff0c;在数据量较大的时候&#xff0c;查询性能很…

学习笔记——路由网络基础——汇总静态路由

4、汇总静态路由 (1)定义 静态路由汇总&#xff1a;多条静态路由都使用相同的送出接口或下一跳 IP 地址。(将多条路由汇总成一条路由表示) (2)目的 1.减少路由条目数量&#xff0c;减小路由表&#xff0c;加快查表速度 2.增加网络稳定性 (3)路由黑洞以及路由环路的产生…

旧衣回收小程序开发,轻松回收旧衣物

随着环保理念的增强&#xff0c;回收市场得到了快速发展&#xff0c;吸引了不少年轻人进入到市场中创业。除了传统的废品回收外&#xff0c;旧衣回收也受到了大众的重视&#xff0c;市场规模迅速扩大&#xff0c;大众浪费的衣物也获得了归处。 目前旧衣回收的方式主要是线上与…

如何将HTTP升级成HTTPS?既简单又免费的方法!

在当今数字化时代&#xff0c;网络安全已成为用户和企业关注的焦点。HTTPS作为一种更加安全的网络通信协议&#xff0c;正逐渐取代传统的HTTP成为新的标准。对于许多网站管理员和内容创作者来说&#xff0c;如何免费升级到HTTPS是一个值得探讨的问题。本文将详细介绍一些免费的…

Flash均衡算法几个点

Flash均衡保存算法是一种用于调整更改数据时擦除Flash存储器区域大小的高效算法。 在Flash存储器中&#xff0c;写入新数据时需要先将原有数据所在的块进行擦除&#xff0c;然后再进行写入操作。由于Flash存储器的特性&#xff0c;擦除操作比写入操作要慢得多&#xff0c;而且…

Python私教张大鹏 Vue3整合AntDesignVue之Anchor 锚点

用于跳转到页面指定位置。 何时使用 需要展现当前页面上可供跳转的锚点链接&#xff0c;以及快速在锚点之间跳转。 案例&#xff1a;锚点的基本使用 核心代码&#xff1a; <template><a-anchor:items"[{key: part-1,href: #part-1,title: () > h(span, {…

使用Python操作Redis

大家好&#xff0c;在当今的互联网时代&#xff0c;随着数据量和用户量的爆发式增长&#xff0c;对于数据存储和处理的需求也日益增加。Redis作为一种高性能的键值存储数据库&#xff0c;以其快速的读写速度、丰富的数据结构支持和灵活的应用场景而备受青睐。本文将介绍Redis数…

elasticsearch安装与使用(4)-搜索入门

1、创建索引 PUT /hotel {"mappings": {"properties":{"title":{"type": "text"},"city":{"type": "keyword"},"price":{"type":"double"}}} }2、写入文档 …

大语言模型的sft

https://zhuanlan.zhihu.com/p/692892489https://zhuanlan.zhihu.com/p/6928924891.常见的sft的开发流程 a.根据业务场景调整提示词;越详细越好,不要让模型理解歧义,拆分。 b.尝试闭源和开源,以评估LLM能够解决这类场景问题。 c.准备数据,包括多个子任务。 d.训练上线…

产气荚膜梭菌定植与婴儿食物过敏之间的关联

谷禾健康 牛奶蛋白过敏&#xff08;CMPA&#xff09;是婴儿最常见的食物过敏类型之一。粪便病原菌培养显示产气荚膜梭菌阳性率超过30%&#xff0c;明显高于其他细菌。因此推测产气荚膜梭菌定植可能是婴儿牛奶蛋白过敏的发病因素之一。 一项真实世界的研究&#xff0c;杨敏团队从…

2024年跨平台应用解决方法

个人博客:Sekyoro的博客小屋 个人网站:Proanimer的个人网站 很久没有写这类high-level的文章了,本身这类框架就一直层出不穷,但是其中历久弥坚,坚韧不拔的框架又有多少呢? 首先考虑到学习成本以及掌握一些编程语言在工作、学习生态上的价值,给这些东西适用生态划分一下. Reac…

能放在桌面上的倒数提醒软件 桌面提醒软件倒数日

在忙碌的生活中&#xff0c;我们总有许多待办事项和重要的纪念日需要牢记。可是&#xff0c;人的记忆毕竟有限&#xff0c;有时候一不小心就会错过那些重要的时刻。 桌面提醒软件是我日常生活中的得力助手。它小巧轻便&#xff0c;静静地待在我电脑的桌面上&#xff0c;每次打…

【漏洞复现】多客圈子论坛系统 httpGet 任意文件读取漏洞

0x01 产品简介 多客圈子论坛系统是一种面向特定人群或特定话题的社交网络&#xff0c;它提供了用户之间交流、分享、讨论的平台。在这个系统中&#xff0c;用户可以创建、加入不同的圈子&#xff0c;圈子可以是基于兴趣、地域、职业等不同主题的。用户可以在圈子中发帖、评论、…

2024教资认定报名流程,点赞收藏!

2024年要进行教资认定的宝子们提早准备 &#x1f525;教资认定网上报名流程概览 一、进入教资认定网报入口 二、进行实名核验 三、申请网报时间查询 四、个人信息维护 五、认定申请报名 &#x1f525;教资认定所需材料 1⃣️身份证 2⃣️户口本&#xff0f;居住证&#xff0f;学…