家里的网络一直是openwrt+passwall+unraid+qbittorrent做下载管理,在m-team和zmpt的网页上,每次看到接入ip有时候是本地网络,有时候又是代理,一直也没太关注,直到突然最近m-team判定为盒子,于是仔细设置一下网络。

问题在哪

1、 qbittorrent 的Host网络。unraid上通过docker安装的qbittorrent,容器开通的是host网络,因为host可以直接使用upnp,虽然网上对安全性差一点,不过Host有更好的网络效率。这就导致qbittorrent 的设置页面有很多的网络接口和Ip地址,服务端识别到很多的IP,可能某次调整网络的时候,直接走了代理,就判定盒子了。

2、Tracker服务器很多。以前因为手动在m-team上下载过种子,有时候ipv4,有时候ipv6,有时候m-team 访问不了还换过域名,导致Tracker地址五花八门。如果passwall没有逐一配置过所有的域名,可能就一不小心,部分种子上报就走了代理。

处理方式-Bridge

1、Tracker 服务器统一,这里可以先用工具,把所有Tracker替换成一个同一地址。qB_WebUI_标签批量替换tracker

2、修改docker的网络接入,从Host改为Bridge。改完之后,qbittorrent的设置页面,应该只有本地IP了,虽然性能可能差一点,不过这种绝对安全,愿意折腾的可以试用macvlan。

3、qbittorrent 固定一个端口,docker开放这个端口,然后openwrt上配置这个固定端口的转发,内外网统一就好了,因为upnp用不上了。

4、passwall配置的直连列表,把可能的域名都加进去

1
2
3
4
5
6
m-team.cc
m-team.io
tracker.m-team.io
tracker.m-team.cc
v6tracker.m-team.io
zmpt.cc

5、规则管理里面,Sing-Box/Xray 分流规则,添加一条QB的规则,协议勾选 bittorrent ,优先级放到最高。


基本做完上面的操作,就可以确保qb所有相关访问都不会走代理了,馒头后台就只有1个IP了。

处理方式-macvlan

使用 Bridge 的好处就是简单,但是会存在一个问题,就是qb上,访问的请求很多会变成路由器的内网地址,例如:192.168.11.1,因为端口转发过来,qb识别不到链接用户的真实ip了。所以改成macvlan,会更合适一些

1、先确定一下自己的 网卡是否支持混杂模式,一般不是太旧的机器,太旧的内核,大概率是支持的,具体可以自行按照自己的网卡型号搜索

2、在unraid的docker设置中,自定义网络类型改为macvlan

3、进入unraid的命令行,创建一个macvlan网络,如下图:

1
docker network create -d macvlan --subnet=192.168.11.0/24 --gateway=192.168.11.1 --ipv6 --subnet=fe80::/64 --gateway=fe80::8859:f2ff:fe3e:dec8 -o parent=br0 qbnet

4、修改qb的网络,为qbnet。

5、至此,再开启UPnP,基本就可以了。


20240505 更新

使用一段时间后,还是会有未知流量导致识别错误问题,将passwall 替换成 passwall2 就正常了。具体设置如下:

添加BT规则

首先添加BT的分流规则,只勾选 bittorrent 即可。

添加白名单

在China规则里,添加几个PT站点的域名。

1
2
3
domain:m-team.cc
domain:m-team.io
domain:zmpt.cc

更新Tracker上报

qbittorrent中,修改端口号,选择所有种子全部上报一次,至此,两个站都正常了。