docker之openwrt

介绍

如何用docker部署openwrt(本人一般用于挂代理)

下载镜像

打开dockerhub

无账号的可以注册一个

image-20230508004922422

点击第二个,复制右边的命令,回到操作系统里粘贴

image-20230509195820116

找到适合自己架构拉取镜像即可,我的是aarch64,所以拉取tag为armv8的

1
docker pull sulinggg/openwrt:armv8

查看镜像

1
docker images

打开网卡混杂模式

1
sudo ip link set eth0 promisc on 

创建网络

1
docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.254 -o parent=eth0 macnet

须结合实际网络情况,不能照抄命令

–subnet=192.168.1.0/24 #eth0网卡正所处在192.168.1.x网段

–gateway=192.168.1.254 #eth0网卡的网关(即路由器ip)

parent=eth0 #这个是物理网卡名字

macvlan #这是创建的一个驱动程序管理网络(已经创建了192.168.254这个网络段给它)

macnet #macnet创建的网络名字

查看创建的macnet网络

1
docker network ls

创建并启动容器

1
docker run --restart always --name openwrt -d --network macnet --privileged sulinggg/openwrt:armv8 /sbin/init

进入容器并修改相关参数

1
docker exec -it openwrt bash

执行此命令后我们便进入 OpenWrt 的命令行界面,首先,我们需要编辑 OpenWrt 的网络配置文件:

1
vim /etc/config/network

我们需要更改 Lan 口设置:

1
2
3
4
5
6
7
8
9
10
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.1.100' #自己设置一个ip,这个ip是你即将要访问的openwrt控制面板,假如本机IP也处于192.168.1.0/24网段,设置的IP不要和本机IP重合
option gateway '192.168.1.254' #设置网关
option broadcast '192.168.1.255'
option dns '8.8.8.8'

所有的 192.168.1.x 需要根据eth0网卡所处网段修改,option gateway填写eth0的网关。

option ipaddr 项目定义了 OpenWrt 的 IP 地址,在完成网段设置后,IP最后一段可根据自己的爱好修改(前提是符合规则且不和现有已分配 IP 冲突)。

重启网络

1
/etc/init.d/network restart

输入完成这段命令之后,按住键盘的ctrl+p+q就能退出openwrt容器的命令行界面。

管理页面

进入控制面板

在浏览器中输入option ipaddr 项目中的 IP 进入 Luci 控制面板,若option ipaddr 的参数为 192.168.1.100,则可以在浏览器输入 http://192.168.1.100进入控制面板。

用户名:root

密码:password

image-20230509200127717

登进去后建议修改账号密码,不然别人直接不用密码能ssh连接你这个容器