ubuntu使用docker安装openwrt

2024-06-08 17:36

本文主要是介绍ubuntu使用docker安装openwrt,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

系统: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   # 启用DHCPdhcp6: false# addresses: [192.168.1.10/24]optional: trueenp2s0:dhcp4: falsedhcp6: falseaddresses: [192.168.2.1/24] #设置静态IPoptional: trueversion: 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软路由系统,实现多网口以及主路由功能

这篇关于ubuntu使用docker安装openwrt的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1042847

相关文章

C语言中联合体union的使用

本文编辑整理自: http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=179471 一、前言 “联合体”(union)与“结构体”(struct)有一些相似之处。但两者有本质上的不同。在结构体中,各成员有各自的内存空间, 一个结构变量的总长度是各成员长度之和。而在“联合”中,各成员共享一段内存空间, 一个联合变量

ESP32 esp-idf esp-adf环境安装及.a库创建与编译

简介 ESP32 功能丰富的 Wi-Fi & 蓝牙 MCU, 适用于多样的物联网应用。使用freertos操作系统。 ESP-IDF 官方物联网开发框架。 ESP-ADF 官方音频开发框架。 文档参照 https://espressif-docs.readthedocs-hosted.com/projects/esp-adf/zh-cn/latest/get-started/index

Linux 安装、配置Tomcat 的HTTPS

Linux 安装 、配置Tomcat的HTTPS 安装Tomcat 这里选择的是 tomcat 10.X ,需要Java 11及更高版本 Binary Distributions ->Core->选择 tar.gz包 下载、上传到内网服务器 /opt 目录tar -xzf 解压将解压的根目录改名为 tomat-10 并移动到 /opt 下, 形成个人习惯的路径 /opt/tomcat-10

Tolua使用笔记(上)

目录   1.准备工作 2.运行例子 01.HelloWorld:在C#中,创建和销毁Lua虚拟机 和 简单调用。 02.ScriptsFromFile:在C#中,对一个lua文件的执行调用 03.CallLuaFunction:在C#中,对lua函数的操作 04.AccessingLuaVariables:在C#中,对lua变量的操作 05.LuaCoroutine:在Lua中,

Vim使用基础篇

本文内容大部分来自 vimtutor,自带的教程的总结。在终端输入vimtutor 即可进入教程。 先总结一下,然后再分别介绍正常模式,插入模式,和可视模式三种模式下的命令。 目录 看完以后的汇总 1.正常模式(Normal模式) 1.移动光标 2.删除 3.【:】输入符 4.撤销 5.替换 6.重复命令【. ; ,】 7.复制粘贴 8.缩进 2.插入模式 INSERT

VMware9.0详细安装

双击VMware-workstation-full-9.0.0-812388.exe文件: 直接点Next; 这里,我选择了Typical(标准安装)。 因为服务器上只要C盘,所以我选择安装在C盘下的vmware文件夹下面,然后点击Next; 这里我把√取消了,每次启动不检查更新。然后Next; 点击Next; 创建快捷方式等,点击Next; 继续Cont

Lipowerline5.0 雷达电力应用软件下载使用

1.配网数据处理分析 针对配网线路点云数据,优化了分类算法,支持杆塔、导线、交跨线、建筑物、地面点和其他线路的自动分类;一键生成危险点报告和交跨报告;还能生成点云数据采集航线和自主巡检航线。 获取软件安装包联系邮箱:2895356150@qq.com,资源源于网络,本介绍用于学习使用,如有侵权请您联系删除! 2.新增快速版,简洁易上手 支持快速版和专业版切换使用,快速版界面简洁,保留主

如何免费的去使用connectedpapers?

免费使用connectedpapers 1. 打开谷歌浏览器2. 按住ctrl+shift+N,进入无痕模式3. 不需要登录(也就是访客模式)4. 两次用完,关闭无痕模式(继续重复步骤 2 - 4) 1. 打开谷歌浏览器 2. 按住ctrl+shift+N,进入无痕模式 输入网址:https://www.connectedpapers.com/ 3. 不需要登录(也就是

vcpkg安装opencv中的特殊问题记录(无法找到opencv_corexd.dll)

我是按照网上的vcpkg安装opencv方法进行的(比如这篇:从0开始在visual studio上安装opencv(超详细,针对小白)),但是中间出现了一些别人没有遇到的问题,虽然原因没有找到,但是本人给出一些暂时的解决办法: 问题1: 我在安装库命令行使用的是 .\vcpkg.exe install opencv 我的电脑是x64,vcpkg在这条命令后默认下载的也是opencv2:x6

【服务器运维】CentOS6 minimal 离线安装MySQL5.7

1.准备安装包(版本因人而异,所以下面的命令中版本省略,实际操作中用Tab自动补全就好了) cloog-ppl-0.15.7-1.2.el6.x86_64.rpmcpp-4.4.7-23.el6.x86_64.rpmgcc-4.4.7-23.el6.x86_64.rpmgcc-c++-4.4.7-23.el6.x86_64.rpmglibc-2.12-1.212.el6.x86_64.r