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

推荐订阅源

T
Tenable Blog
H
Heimdal Security Blog
K
Kaspersky official blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
S
Schneier on Security
G
GRAHAM CLULEY
U
Unit 42
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
C
CERT Recently Published Vulnerability Notes
Google DeepMind News
Google DeepMind News
罗磊的独立博客
Stack Overflow Blog
Stack Overflow Blog
阮一峰的网络日志
阮一峰的网络日志
Simon Willison's Weblog
Simon Willison's Weblog
C
Cisco Blogs
Cyberwarzone
Cyberwarzone
T
The Exploit Database - CXSecurity.com
Project Zero
Project Zero
Security Archives - TechRepublic
Security Archives - TechRepublic
www.infosecurity-magazine.com
www.infosecurity-magazine.com
博客园 - 司徒正美
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
V
Visual Studio Blog
博客园 - Franky
Engineering at Meta
Engineering at Meta
WordPress大学
WordPress大学
Jina AI
Jina AI
P
Proofpoint News Feed
P
Proofpoint News Feed
有赞技术团队
有赞技术团队
L
LINUX DO - 最新话题
宝玉的分享
宝玉的分享
N
News and Events Feed by Topic
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
博客园 - 聂微东
T
The Blog of Author Tim Ferriss
Spread Privacy
Spread Privacy
Application and Cybersecurity Blog
Application and Cybersecurity Blog
IT之家
IT之家
S
Security Affairs
博客园 - 叶小钗
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
小众软件
小众软件
N
News | PayPal Newsroom
Cloudbric
Cloudbric
AWS News Blog
AWS News Blog
W
WeLiveSecurity
The Last Watchdog
The Last Watchdog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
NISL@THU
NISL@THU

有意

生活三两事(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