系统: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 查察物理机网卡信息
如下为物理机的网卡信息
- 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网络接口
如果想要修改子网段,必要先删除该网络后再重新添加,而且确保没有容器使用该网络
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软路由系统,实现多网口以及主路由功能
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |