1Panel 中跑 CatWrt 旁路网关 Docker 版 OpenWrt
在 1Panel 中跑 CatWrt 旁路网关,这里用的 Debian 安装好了 1Panel,宿主机是 PVE 虚拟的 Debian,今天简单介绍一下 CatWrt-rootfs 的安装方法
昨天折腾了一下把 rootfs 的文件上传到 dockerhub 上了,大家以后就可以直接去拉取镜像,还是挺方便的。不需要去网盘或者 Github 上面下这个 rootfs 版本的 CatWrt 了,具体这个 rootfs 我只是给一个安装的方法。
建议还是用我们这个 docker-compose 进行配置 CatWrt,如果你没有 1Panel 也是可以用的,宝塔什么的甚至不需要面板也可以。
root@Debian:~# neofetch
_,met$$$$$gg. root@Debian
,g$$$$$$$$$$$$$$$P. -----------
,g$$P" """Y$$.". OS: Debian GNU/Linux 12 (bookworm) x86_64
,$$P' `$$$. Host: KVM/QEMU (Standard PC (i440FX + PIIX, 1996) pc-i440fx-9.0)
',$$P ,ggs. `$$b: Kernel: 6.1.0-9-amd64
`d$$' ,$P"' . $$$ Uptime: 42 mins
$$P d$' , $$P Packages: 711 (dpkg)
$$: $$. - ,d$$' Shell: bash 5.2.15
$$; Y$b._ _,d$P' Resolution: 1280x800
Y$$. `.`"Y$$$$P"' Terminal: /dev/pts/0
`$$b "-.__ CPU: AMD Ryzen 5 1600 (8) @ 3.199GHz
`Y$$ GPU: 00:02.0 Vendor 1234 Device 1111
`Y$$. Memory: 507MiB / 1482MiB
`$$b.
`Y$$b.
`"Y$b._
`"""
网卡混杂模式
首先需要开启 Debian 上的网卡混杂模式,这里我的网卡是 ens18
root@Debian:~# ip addr
2: ens18: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 92:64:15:a8:91:63 brd ff:ff:ff:ff:ff:ff
altname enp0s18
inet 10.0.0.1/24 brd 10.0.0.255 scope global ens18
valid_lft forever preferred_lft forever
inet6 fd61:e296:244b:0:9064:15ff:fea8:9163/64 scope global dynamic mngtmpaddr
valid_lft forever preferred_lft forever
inet6 2408:8256:c84:9a4c:XXXX:XXXX::1/64 scope global dynamic mngtmpaddr
valid_lft 189872sec preferred_lft 103472sec
inet6 fe80::9064:15ff:fea8:9163/64 scope link
valid_lft forever preferred_lft forever
将 ens18 网卡设为混杂模式,可以让容器直接到局域网的步骤
sudo ip link set ens18 promisc on
创建网卡
这里创建网卡 subnet=10.0.0.0/24
和 gateway=10.0.0.4
需要按照自己的网络环境配置
如果你的网段是 192.168.1.4 就是对应的
subnet=192.168.1.0/24
子网掩码gateway=10.0.0.4
就是你的主路由器地址,设置为网关
docker network create -d macvlan --subnet=10.0.0.0/24 --gateway=10.0.0.4 -o parent=enp0s18 maclan
设置完查看一下 docker network ls
是不是配置好了
root@Debian:~# docker network ls
NETWORK ID NAME DRIVER SCOPE
d9dd5df71c88 1panel-network bridge local
70a316d0b976 host host local
779d06aebc6f maclan macvlan local
编排
在 1Panel 容器 - 编排 - 创建编排
文件夹填 CatWrt
,将以下内容填入编辑器里面,随后点击确认
这里用的 CatWrt-rootfs 是最新的 v24.9 版本,并且开启了加载 tun 模块
version: '3.8'
services:
catwrt:
image: miaoer/catwrt:latest
container_name: CatWrt
restart: always
privileged: true
volumes:
- /lib/modules:/lib/modules:ro
- /dev:/dev
command: /sbin/init
cap_add:
- NET_ADMIN
- SYS_MODULE
devices:
- /dev/net/tun
networks:
- maclan
networks:
maclan:
external: true
博主这里忘记了有没有主动加载 tun 模块,如果没有加载 tun 请 sudo modprobe tun
并且查看 lsmod | grep tun
有没有被成功加载
root@Debian:~# sudo modprobe tun
root@Debian:~# lsmod | grep tun
tun 61440 4
root@Debian:~#
设置 CatWrt
首先在 Debian 上连接 CatWrt 终端
docker exec -it CatWrt /bin/bash
进入 CatWrt 选择使用 Cattools 帮助我们修改 IP 地址当然你也可以使用网络向导正确填写你的信息
cattools
注:这里 CatWrt 没联网指定网关所以这里,会重试多次获取最新版本的 Cattools 千万不要手贱中断!
root@Debian:~# docker exec -it CatWrt /bin/bash
bash-5.2# cattools
Please wait for the script to be updated.
Attempt 1 failed. Retrying...
Attempt 2 failed. Retrying...
Attempt 3 failed. Retrying...
Unable to download the latest version, continue to use the current offline version.
----------------------------------------------------------
CatTools
https://github.com/miaoermua/cattools
----------------------------------------------------------
1. SetIP - 设置 IP
2. Network_Wizard - 网络向导
3. Apply_repo - 软件源配置
4. Diagnostics - 网络诊断
5. Debug - 抓取日志
6. Catwrt_update - 检查更新
7. Sysupgrade - 系统更新
8. Restore - 恢复软件包
9. Utilities(more) - 实用工具
0. Exit - 退出
----------------------------------------------------------
请输入数字并回车(Please enter your choice): 1
Please enter the IP Addr and press Enter /// 请输入 IP (默认为 192.168.1.4): 10.0.0.233
默认 IP 已设置为 10.0.0.233
如果你要安装插件也可以使用 Cattools 里面的 软件源配置
结束
CatWrt-rootfs 还是有很多插件或者软件需要特殊设置或者无法使用,我也是第一次搞这个 rootfs 还没用上,有什么问题可以在评论区交流一下
参考:博客园:双网口主机通过 docker 安装 openwrt 实现软路由功能