群晖双网卡导致docker下的qBittorrent走代理了

CHD被误判为代刷,封禁原因也没有说明

群晖双网卡导致docker下的qBittorrent走代理了群晖双网卡导致docker下的qBittorrent走代理了

TG上找到管理说明情况,不愧是网友们说的金钱岛,没有任何解释。也罢。

 

群晖双网卡导致docker下的qBittorrent走代理了

 

原因还是要排查的,。因为QB是群晖上docker部署的。而群晖是双网口,可能会导致QB容器获取2个不同IPv6的地址。查看其他站点,有些站是显示多IP  有些站却是正常的。尝试在qb高级设置里面指定单个网卡,问题依旧。通过DeepSeek,指定单个网口后还需修改qb配置文件。

群晖双网卡导致docker下的qBittorrent走代理了

重新部署qbittorrent

version: "3.8"

services:
  qbittorrent:
    image: linuxserver/qbittorrent:5.1.0  # 保持您指定的版本
    container_name: qbittorrent
    environment:
      - PUID=0
      - PGID=0
      - TZ=Asia/Shanghai
      - WEBUI_PORT=8080
      - UMASK_SET=000
      - DNS_SERVERS=2400:3200::1,223.5.5.5  # 阿里云双栈DNS(IPv6+IPv4)
    volumes:
      - /volume3/docker/Qbittorrent/config:/config
      - /volume2/media:/media
      - /volume3/music:/music
    
    network_mode: host  # 使用主机网络模式
    ports:
      - 8080:8080              # ✅ 默认8080web访问端口
      - 33430:6881             # ✅ 大坑,很多以为有host模式就不用端口映射
      - 33430:6881/udp         # ✅ 大坑,不加会导致QB下载没反应

    cap_add:
      - NET_ADMIN  # 必须添加
    command: >
      sh -c "
        # 删除可能存在的代理路由(静默错误)
        ip route del default via 192.168.99.251 dev ovs_eth1 2>/dev/null || true;
        
        # 强制IPv4走ovs_eth0网关
        ip route add default via 192.168.99.1 dev ovs_eth0 metric 100;
        
        # 强制IPv6走ovs_eth0网关(保留IPv6但不走代理)
        ip -6 route del default 2>/dev/null || true;
        ip -6 route add default via fe80::1 dev ovs_eth0 metric 100;  # 使用链路本地网关
        
        # 启动
        exec qbittorrent-nox
      "
    restart: unless-stopped

 

修改配置文件 /volume3/docker/Qbittorrent/config/qBittorrent/qBittorrent.conf

[Preferences]
WebUI\Port=8080
Advanced\Interface=ovs_eth1
Advanced\InterfaceName=ovs_eth1
Session\Interface=ovs_eth1
Session\InterfaceName=ovs_eth1
Session\IgnoreLocalIPv6LinkLocal=true

 

✅ 验证方法

# 查看容器路由表
docker exec qbittorrent ip route
# 应显示:default via 192.168.99.1 dev ovs_eth1

docker exec qbittorrent ip -6 route
# 应显示:default via 240e:368:136b:8401::1 dev ovs_eth1

# 测试实际出口IP
docker exec qbittorrent curl -4 ifconfig.co
docker exec qbittorrent curl -6 ifconfig.co

方案优势

这个方案通过network_mode: host直接使用主机网络栈,然后通过启动命令强制删除默认路由并添加指向指定网关的路由,完美解决多网卡环境下的路由问题,同时确保只使用指定的IPv6地址。
群晖双网卡导致docker下的qBittorrent走代理了

 

 

 

 

如果解决代理问题,可使用以下原始配置。⚠️注意:还是需要在qbittorrent高级里面指定没有走代理网关的网卡地址

 

群晖双网卡导致docker下的qBittorrent走代理了

 

 

version: "3.8"  # 使用 Docker Compose 第3.8版本文法

services:
  qbittorrent:
    # 使用官方维护的镜像(保持您指定的5.1.0版本)
    image: linuxserver/qbittorrent:5.1.0
    
    # 容器命名(便于管理)
    container_name: qbittorrent
    
    # 环境变量配置区
    environment:
      - PUID=0                 # 以root用户运行(确保文件权限)
      - PGID=0                 # 以root用户组运行
      - TZ=Asia/Shanghai      # 设置容器时区为上海
      - WEBUI_PORT=8080       # Web管理界面端口
      - UMASK_SET=000         # 文件权限掩码(宽松权限)

    # 数据卷映射配置
    volumes:
      - /volume3/docker/Qbittorrent/config:/config  # 配置目录映射(持久化设置)
      - /volume2/media:/media                      # 媒体目录映射(保持您原有路径)
      - /volume3/music:/music                      # 音乐目录映射(保持您原有路径)

    # 网络模式配置
    network_mode: host  # 使用主机网络模式(直接共享宿主机网络栈)
                       # ⚠️ 优点:自动获得IPv6支持
                       # ⚠️ 注意:ports映射在此模式下实际无效

    # 端口映射声明(虽然host模式下无效,但保留以防兼容性问题)
    ports:
      - 8080:8080              # WebUI访问端口(TCP)
                               # ✅ 实际效果:直接暴露主机8080端口
                               # ? 大坑:即使host模式也建议保留声明

      - 33430:6881             # BT下载端口(TCP)
                               # ✅ 实际效果:直接暴露主机33430端口
                               # ? 大坑:许多教程错误认为host模式不需要此声明

      - 33430:6881/udp         # BT下载端口(UDP)
                               # ✅ 实际效果:直接暴露主机33430 UDP端口
                               # ? 大坑:缺少会导致DHT节点连接失败

    # 容器重启策略
    restart: unless-stopped    # 自动重启策略(除非手动停止)
                               # ? 推荐:避免意外退出导致服务中断

 

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容