ubuntu使用docker安装openwrt

打印 上一主题 下一主题

主题 550|帖子 550|积分 1650

系统:ubuntu24.04
架构:x86
1. 安装docker

1.1 离线安装

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


  • container.io(注意后缀版本顺序)
  • docker-ce-cli
  • docker-ce
然后再ubuntu系统中依次按顺序安装这三个包
  1. sudo dpkg -i container.io*.deb
  2. sudo dpkg -i docker-ce-cli*.deb
  3. sudo dpkg -i docker-ce*.deb
复制代码
1.2 在线安装

  1. sudo apt install containerd.io docker-ce-cli docker-ce
复制代码
2. 设置物理机网络

2.1 查察物理机网卡信息

  1. ip a
复制代码
如下为物理机的网卡信息
  1. 1: lo: <LOOPBACK,UP,LOWER_UP> ************
  2. 2: enp1s0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> **********
  3. 3: enp2s0: <NO-CARRIER,BROADCAST,MULTICAST,PROMISC,UP> ***************
  4. 4: wlo1: <BROADCAST,MULTICAST,UP,LOWER_UP> ************
  5. 6: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> ****************
复制代码
  为了方便设置使用以及后续登录openwrt背景管理系统,你必要设置网卡信息
  2.2 网络设置

开启网口的稠浊模式(暂时)
  1. ip link set enp1s0 promisc on
  2. ip link set enp2s0 promisc on
复制代码
开启IP转发功能
  1. # 修改配置文件,解除net.ipv4.ip_forward=1的注释
  2. vim /etc/sysctl.conf
  3. # net.ipv4.ip_forward = 1
复制代码
2.3 netplan网卡设置

   然后我们做以下自界说规定(读者可自行计划)
  

  • enp1s0:有线网卡1,我们规定这个网口为Wan口,用于毗连互联网
  • enp2s0:有线网卡2,我们规定这个网口为Lan口,供内部网络的有线设备毗连
  • wlo1: 无线网卡1,我们规定这个网口为Lan口,供内部网络的无线设备毗连
  • 其他网卡:…
  1. # ubuntu 20.04
  2. sudo vim /etc/netplan/00-installer-config.yaml
  3. # ubuntu 24.04
  4. sudo vim /etc/netplan/50-cloud-init.yaml
  5. # 其他系统请参考其他资料
复制代码
设置如下:其中Lan口设置为静态IP,Wan设置为DHCP动态获取IP
  1. network:
  2.   ethernets:
  3.     enp1s0:
  4.       dhcp4: true   # 启用DHCP
  5.       dhcp6: false
  6.       # addresses: [192.168.1.10/24]
  7.       optional: true
  8.     enp2s0:
  9.       dhcp4: false
  10.       dhcp6: false
  11.       addresses: [192.168.2.1/24] #设置静态IP
  12.       optional: true
  13.   version: 2
复制代码
  设置完物理机的ip地点后,你必要使用其他PC电脑毗连物理机的Lan口,使用远程ssh(vscode-remote、powershell、xshell等)完成后续的设置
  3. 设置docker

3.1 设置假造网络接口

   在Lan口网卡enp2s0上附加网络接口netLan,指定网段192.168.2.0/24
  1. docker network create -d macvlan --subnet=192.168.2.0/24 -o parent=enp2s0 netLan
复制代码
查察已添加的docker网络接口
  1. docker network ls
复制代码
  如果想要修改子网段,必要先删除该网络后再重新添加,而且确保没有容器使用该网络
  1. docker network rm netLan
复制代码
3.2 拉取openwrt镜像

  1. # 拉取镜像
  2. docker pull registry.cn-shanghai.aliyuncs.com/suling/openwrt:x86_64
  3. # 查看所有镜像列表
  4. docker images
复制代码
若后续发生问题,可重新使用该镜像生成openwrt容器
3.3 启动openwrt容器

   注意:请勿将enp2s0和netLan设置为相同静态IP,否则无法区分物理机和docker容器的ip地点
  1. 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 附加网络

  1. # 附加Wan口网络
  2. docker network create -d macvlan --subnet=192.168.1.0/24 -o parent=enp1s0 netWan
  3. docker network connect netWan openwrt
复制代码
3.5 *报错

   若openwrt启动失败、发生报错等问题,可重新举行设置
  1. # 查看所有容器信息
  2. sudo docker ps -a
  3. # 停止容器
  4. docker stop [容器名称/容器ID]
  5. # 删除容器
  6. docker rm [容器名称/容器ID]
  7. # 删除网络
  8. docker network rm netWan
  9. docker network rm netLan
复制代码
4. 设置openwrt容器

  1. # 进入容器
  2. docker exec -it openwrt /bin/sh
  3. # 重置root密码(openwrt)
  4. passwd
  5. # 配置网卡信息(openwrt)
  6. vi /etc/config/network
复制代码
网卡设置必要修改的部分如下
  1. config interface 'lan'
  2.         option type 'bridge'
  3.         option ifname 'eth0'
  4.         option proto 'static'
  5.         option netmask '255.255.255.0'
  6.         option ip6assign '60'
  7.         option ipaddr '192.168.2.2'
  8.         option gateway '192.168.2.1'  
  9.         option dns '192.168.2.1'
复制代码
重启网络服务
  1. # 重启网络服务(openwrt)
  2. /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软路由系统,实现多网口以及主路由功能

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

羊蹓狼

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表