惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 叶小钗
云风的 BLOG
云风的 BLOG
G
Google Developers Blog
S
SegmentFault 最新的问题
罗磊的独立博客
Hugging Face - Blog
Hugging Face - Blog
美团技术团队
爱范儿
爱范儿
博客园 - 三生石上(FineUI控件)
H
Hackread – Cybersecurity News, Data Breaches, AI and More
D
DataBreaches.Net
F
Fortinet All Blogs
TaoSecurity Blog
TaoSecurity Blog
D
Docker
C
Cybersecurity and Infrastructure Security Agency CISA
K
Kaspersky official blog
宝玉的分享
宝玉的分享
腾讯CDC
Google Online Security Blog
Google Online Security Blog
Recorded Future
Recorded Future
T
The Exploit Database - CXSecurity.com
T
The Blog of Author Tim Ferriss
V
V2EX
S
Securelist
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
C
CERT Recently Published Vulnerability Notes
A
Arctic Wolf
Scott Helme
Scott Helme
L
LINUX DO - 热门话题
Y
Y Combinator Blog
P
Proofpoint News Feed
T
Tor Project blog
AWS News Blog
AWS News Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
The Last Watchdog
The Last Watchdog
博客园 - 聂微东
T
Threat Research - Cisco Blogs
B
Blog
Attack and Defense Labs
Attack and Defense Labs
L
Lohrmann on Cybersecurity
C
CXSECURITY Database RSS Feed - CXSecurity.com
阮一峰的网络日志
阮一峰的网络日志
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
IT之家
IT之家
N
News and Events Feed by Topic
博客园 - 司徒正美
H
Help Net Security
C
Cisco Blogs
C
Check Point Blog
S
Secure Thoughts

有意

生活三两事(3) Openwrt的一些小折腾(5) 基于 PVE 的折腾之路(4)之 影音库云盘自动化 基于 PVE 的折腾之路(3)之 影音库自动化 基于 PVE 的折腾之路(2)之 安装群晖 基于 PVE 的折腾之路(1)之 Proxmox VE 的安装配置 折腾nas ——TimeMachine(修改) 日常吐槽(1) 初次自己全责的交通事故
Docker 部署 macvlan 网络下的 qBittorrent
痞子鱼 · 2021-11-08 · via 有意

前言

之前 nas 里的 qBittorrent 都是直接部署在 Host 网络模式下,因为可以直接分配到 ipv6,下载很多资源也能看到有 ipv6 用户连接。

不过不知是不是一直使用的“机场”更改了审查规则,还是路由上的 passwall 有问题(passwall一直都是设置成只转发常用端口),导致一些流量被“机场”审查为 BT,账户隔半个小时左右就被中断半个小时。但看“机场”的流量使用情况,也基本符合自己日常看视频的使用量,应该不会有 BT 流量走了代理,猜测是 Tracker 列表问题或者近期更新了 passwall 的原因。

所以干脆把重新部署 qBittorrent 为 macvlan 网络模式,有独立的 mac 地址和 IP,然后 passwall 设置成全部直连。

安装部署

macvlan 网络模式

使用 macvlan 网络模式的好处是容器相当于是一个独立的设备,可以拥有一个独立且固定的 IP 和 MAC 地址,不需要理会任何端口的状态,所有端口都可以使用默认的,兼容性更好。

创建 macvlan 网络(根据实际情况替换参数,并删除注释)

docker network create \
    -d macvlan \ # 使用 macvlan 网络驱动
    --subnet=10.0.0.0/24 \ # 指定网段
    --gateway=10.0.0.1 \ # 指定网关 IP
    -o parent=eth0 \ # 指定网卡
macvlan # 网络名称,随意,自己记得就行

准备服务描述文件 docker-compose.yml:

version: "2.0"
services:
    qbittorrent:
    image: superng6/qbittorrent:latest
    container_name: qbittorrent
    restart: always
    tty: true
    networks: 
        macvlan: #上 面创建的 macvlan 网络名称
    ipv4_address: 10.0.0.99 # 你想设置的ip
    aliases:
        - qbittorrent
    dns:
        - 223.5.5.5
        - 119.29.29.29
    hostname: qbitorrent
    environment:
        - TZ=Asia/Shanghai
        - WEBUI_PORT=8080 # 将此处修改成你欲使用的 WEB 管理平台端口
    volumes:
    - ./data:/data
    restart: unless-stopped 

networks: 
    macvlan: #上 面创建的 macvlan 网络名称
    external: true

与宿主机互通

在 macvlan 网络模式下同网段的其他机器可以和容器互通,但宿主不能和容器互通,这是在macvlan模式设计的时候为了安全而禁止了宿主机和容器直接通信。

如果想要实现互通,有个曲线救国的方法,就是macvlan与macvlan之间可以互通,只需要在宿主机再创建一个 macvlan 网络,然后修改路由,让数据经过这个 macvlan 达到互通的目的。

Hyper-V 设置

nas 主系统是 windows server 2016, Hyper-V 安装 centos,最后 docker 容器都是运行在 centos 下,所以需要在 Hyper-V 把网络适配器的 MAC 地址欺骗打开。

假设现有网段为 10.0.0.0/24 的网络:

名字ip接口
宿主机10.0.0.88eth0
容器10.0.0.99macvlan

建立一个名为 macvlan2 的 macvlan 接口,并分配一个ip:

名字ip接口
macvlan210.0.0.77eth0
ip link add macvlan2 link eth0 type macvlan mode bridge
ip addr add 10.0.0.77 dev macvlan2 
ip link set macvlan2 up

修改路由,让宿主机到容器的数据经过 macvlan2:

ip route add 10.0.0.99 dev macvlan2

访问 ip

宿主机 访问 qBittorrent 容器的 ip:10.0.0.99

qBittorrent 容器访问宿主机ip:10.0.0.77

启动 qBittorrent

docker-compose up -d

重启失效问题

# step1 首先切换到/etc/init.d目录下
cd /etc/init.d

# step 2 vi macvlan.sh 输入要运行的脚本

#!/bin/bash
#chkconfig:  2345 81 96
#description: Starttomcat

ip link add macvlan2 link eth0 type macvlan mode bridge
ip addr add 10.0.0.77 dev macvlan2
ip link set macvlan2 up
ip route add 10.0.0.99 dev macvlan2

# step 3 可执行权限
chmod +x macvlan.sh

# step 4 加入 chkconfig 命令进行管理
chkconfig --add macvlan.sh

# step 5 设置为开机自运行
chkconfig macvlan.sh on

总结

设置完成后,passwall 也设置了 qBittorrent 容器直连,但最后还是在“机场”的审查记录那里查看到偶尔会有 BT 的记录,不过隔很久才会出现一次,对账户也不会中断连接,所以就先忽视吧。

centos Nas Docker qBittorrent