2

让QB/TR拥有独立ip,使用macvlan网络创建docker容器

发表于:6 天前 攻略分享 51
本帖最后由 zhengbf 于 2024-10-15 09:23 编辑

使用macvlan网络模式创建docker,使容器拥有独立ip,便于分流适用场景:
家里主路由网关是192.168.8.1,旁路由网关是192.168.8.2,nas需要科学环境比如拉docker镜像、刮削等等,如何做到单独让qbtr不走科学网络?常见的方法是使用旁路由的分流规则,比如openclashpasswall等或者爱快主路由上根据协议、域名分流等等,但是这种方法还是难免有一些流量偷走科学流量,如果docker容器可以有独立的ip,单独设置网关是最保险的措施。
经常使用的docker网络有bridgehost,本文介绍另一种:macvlan本文可能不适用于小白,可以自己查看其他教程用web界面创建docker容器熟悉熟悉再来阅读本教程
准备工作:
1、飞牛1台,因飞牛不支持web界面创建,本文采用命令行创建
2、查看网卡名称,使用ifconfig命令:
记得先sudo -i切换到root用户,密码跟你nas密码一样!!

可以看到我有2张网卡,根据实际情况,记住你的网卡,我这边是ens7
3、查看内网网段,电脑网卡属性、主路由dhcp地址段都可以查看ipv4、ipv6网段,我家里主路由是爱快:

可以看到,我家V4:192.168.8.0/24 网关192.168.8.1  V6:****::1001/64 (V6涉及隐私,打马了)
创建macvlan命令:

docker network create -d macvlan --subnet=192.168.8.0/24 --gateway=192.168.8.1 --ipv6 --subnet=fd00:6666::/96 -o parent=ens7 macnet

命令注释:
--subnet=家里V4子网网段
--gateway=家里V4不走科学环境的网关
--ipv6 --subnet=家里V6子网网段 v6跟我一样就行,这是个内网段,创建容器时会向父网卡dhcp获取真实ip
-o parent=nas网卡,也是macvlan 的父网卡
macnet 这个随意,就是macvlan网络的网卡名称,可以跟我一样



出现一段很长的英文数字组合就表示创建成功了,可以通过命令docker network ls 确认,也可以在web界面docker-网络中查看





接下来创建容器,先创建个qb:
准备工作:
1、先创建好qb配置文件目录,我是在docker文件夹下新建了qb这个文件夹,右键-详细信息-复制原始路径,我的是:/vol1/1000/docker/qb

2、再创建qb下载目录,同样的方法复制真实路径 我的是:/vol2/1000/download

创建容器命令:

docker run --name qbittorrent --network macnet -v /vol1/1000/docker/qb:/config -v /vol2/1000/download:/downloads --ip=192.168.8.29 --restart=always --privileged=true -d linuxserver/qbittorrent:4.6.5

如报错拉不了镜像,请让你的nas走科学环境或者配置国内加速源,这个自行百度。
容器不需要额外配置ipv6地址,会自动获取
命令注释:
--name=容器名称,随意就好,通过这个名字可以分辨哪些容器就行
--net=macnet  macnet上一步创建的macvlan网卡名称
--ip=192.168.8.29 ip地址根据实际情况更改
-v ****:/config 映射nas目录给docker容器,前面是刚刚复制原始路径,冒号后面是docker内目录名称,/config不能修改
-v ****:/downloads qb下载目录,同理,downloads如果修改,到时候web界面里面也要修改,最好不改
-v ****:/**** 如果你有其他目录也需要映射,自行添加,没有就跳过
--privileged=true 赋予容器最高特权,最好不改
--restart=always 重启策略:跟随nas启动docker容器
linuxserver/qbittorrent:latst 镜像名称,如果需要指定qb版本,把latst替换成具体版本号,比如linuxserver/qbittorrent:4.6.5

创建成功后依旧是一堆英文和数字组合:

首次登陆可到docker容器日志里面查看密码,账号默认是admin
查看用户,有V6和V4用户链接



下面是进阶玩法!!!!

macvlan具有隔离特性,所以你所创建的macvlan容器是无法与其他docker容器或者nas本身进行通信的,比如你的Moviepilot无法关联qb/tr下载任务,你的iyuu无法通过qb辅助做种转种,如果不在意这个,下面的可以不用看了。


简单来说就是添加一张网卡做为路由中转
ip link add TTTTT link ens7 type macvlan mode bridge
###TTTTT为网卡名 随意就好,ens7网卡名称根据实际情况更改
ip addr add 192.168.8.222 dev TTTTT
###ip地址 设置一个你局域网其他不冲突的任何地址,不是QB也不是nas的!
ip link set TTTTT up
###启动网卡
ip route add 192.168.8.29 dev TTTTT
###添加路由,ip地址为qb地址,目的是使去往qb的流量网TTTTT这张网卡过


添加后就可以正常ping通QB了!!!

本文有个注意事项
1、创建容器时必须把所有目录设置好,创建好后不要去web界面更改设置,比如映射目录之类的,因为更改后qb的ip地址会变化且有可能跟你局域网其他地址冲突,如果需要修改目录,建议重新创建容器(此bug已反馈,等待修复,具体是:web页面编辑后,docker inspect的IPAMConfig信息丢失


收藏
送赞 2
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

发表回复