ToB企服应用市场:ToB评测及商务社交产业平台
标题:
ubuntu使用docker安装openwrt
[打印本页]
作者:
羊蹓狼
时间:
2024-6-15 00:27
标题:
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 # 启用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软路由系统,实现多网口以及主路由功能
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4