内容提要
本文介绍如何在1Panel中通过Docker部署CatWrt旁路网关。步骤包括:开启宿主机网卡混杂模式,创建macvlan网络,使用docker-compose编排CatWrt镜像(需特权模式并加载tun模块),最后通过cattools设置IP地址。文章强调配置需匹配自身网络环境,并提及rootfs版本插件兼容性问题。
延伸解读
macvlan 网络模式要点
文中使用 macvlan 网络让容器直接接入局域网,但需注意:宿主机网卡需开启混杂模式,且创建网络时指定的 subnet 和 gateway 必须匹配实际网络环境。macvlan 模式下容器与宿主机默认无法直接通信,若需互访可能还需额外配置,部署前应确认网络拓扑。
特权模式与 tun 模块
CatWrt 容器需以 privileged 模式运行,并挂载 /lib/modules 和 /dev,同时加载 tun 模块以支持 VPN 等功能。若未加载 tun,可执行 sudo modprobe tun 并检查 lsmod | grep tun。特权模式会扩大容器权限,生产环境需评估安全风险。
rootfs 版本插件兼容性
作者指出 CatWrt-rootfs 版本中部分插件或软件需要特殊设置或无法直接使用,建议用户根据实际需求测试。若需安装插件,可借助 Cattools 的软件源配置功能,但需注意网络连通性,首次运行可能因无法联网而重试。
Q&A
如何在1Panel中通过Docker部署CatWrt旁路网关?
首先开启宿主机网卡的混杂模式,然后创建macvlan网络,接着使用docker-compose编排CatWrt镜像(需特权模式并加载tun模块),最后通过cattools设置IP地址。
为什么需要开启网卡混杂模式?如何开启?
开启混杂模式是为了让容器能够直接访问局域网。使用命令:sudo ip link set ens18 promisc on,其中ens18是网卡名称。
创建macvlan网络时,subnet和gateway参数如何设置?
subnet应设置为你的局域网网段,例如10.0.0.0/24;gateway应设置为主路由器的IP地址,例如10.0.0.4。需要根据实际网络环境调整。
docker-compose编排CatWrt时,为什么需要privileged: true和加载tun模块?
privileged: true提供容器所需的特权,以便进行网络配置;加载tun模块(sudo modprobe tun)是为了支持VPN等需要TUN设备的插件。
如何进入CatWrt容器并使用cattools设置IP?
使用命令docker exec -it CatWrt /bin/bash进入容器,然后运行cattools,选择SetIP选项,输入所需的IP地址即可。
CatWrt-rootfs版本存在哪些限制?
CatWrt-rootfs版本中很多插件或软件需要特殊设置或无法使用,作者也是第一次使用,遇到问题可在评论区交流。