更新

本文已经停止维护,请跳转最新地址

Maktub_Wiki/服务搭建

环境

  • Raspberry Pi OS Lite

配置

开机自启动

  • auto.sh文件
#开启混杂模式
ip link set eth0 promisc on


#docker macvlan互通
ip link add macvlan_br link eth0 type macvlan mode bridge
ip addr add 192.168.3.5 dev macvlan_br
ip link set macvlan_br up
ip link set macvlan_br promisc on
ip route add 192.168.3.9 dev macvlan_br

#zerotier转发
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o ztr2qvners -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i ztr2qvners -o eth0 -j ACCEPT

iptables -t nat -A POSTROUTING -o macvlan_br -j MASQUERADE
iptables -A FORWARD -i macvlan_br -o ztr2qvners -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i ztr2qvners -o macvlan_br -j ACCEPT

  • 编辑 /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
printf "My IP address is %s\n" "$_IP"
fi

#挂载硬盘
mount -t ext4 /dev/sda1 /mnt/disk

# 延迟启动
(
sleep 30
/bin/bash /root/.auto/auto.sh
) &
exit 0

解决树莓派断开网络连接后,路由消失,为树莓派添加静态路由
编辑文件/lib/dhcpcd/dhcpcd-hooks/40-route

ip route add 192.168.3.9 dev macvlan_br

docker管理工具

https://github.com/jesseduffield/lazydocker

#快捷命令
alias lazydocker='/root/.tool/lazydocker'

wireguard管理工具

https://github.com/ngoduykhanh/wireguard-ui

flare标签页管理

docker run -d --name flare --restart=always  -p 5005:5005 -v /mnt/disk/docker/flare:/app soulteary/flare

zerotier异地组网

docker run -d --name zerotier --restart=always --device=/dev/net/tun --net=host --cap-add=NET_ADMIN --cap-add=SYS_ADMIN -v /mnt/disk/docker/zerotier-one:/var/lib/zerotier-one  -v /etc/gai.conf:/etc/gai.conf zerotier/zerotier:latest

# 开启转发
cho "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p

# 配置防火墙
ip link set eth0 promisc on
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o ztr2qvners -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i ztr2qvners -o eth0 -j ACCEPT

plex影音库

version: "3"
services:
plex:
image: plexinc/pms-docker
restart: always
network_mode: host
hostname: moviepilot
volumes:
- ./config:/config
- ./transcode:/transcode
- /mnt/down/download/Plex:/data
environment:
- UMASK=000

music_tag_web音乐信息修改

docker run -d --name music_tag  -p 8001:8001 -v /mnt/down/Plex/Music:/app/media -v /mnt/disk/docker/music_tag_web:/app/data --restart=always xhongc/music_tag_web:latest

filebrowser文件管理

docker run -d --name filebrowser --restart=always  -v /mnt:/srv  -v /mnt/disk/docker/filebrowser/filebrowser.db:/database.db  -u $(id -u):$(id -g)  -p 8082:80  filebrowser/filebrowser

迅雷离线下载工具

邀请码 我不是矿神IMNKS

docker run -d --name=xunlei --hostname=mynas --net=host -v /mnt/disk/docker/xunlei:/xunlei/data -v /mnt/down/xunleidownloads:/xunlei/downloads --restart=unless-stopped --privileged cnk3x/xunlei:latest

qbittorrent 下载工具

docker run -d  --name=qbittorrent --network=host  -e PUID=1000  -e PGID=1000   -e WEBUI_PORT=8081 -v /mnt/disk/docker/qbittorrent/config:/config  -v /mnt/disk/download:/downloads  --restart unless-stopped linuxserver/qbittorrent

home-assistants智能家居中心

docker run -d --name home-assistants --restart=always -v /mnt/disk/docker/hassio:/config --network=host homeassistant/home-assistant

smb共享

vim  /etc/samba/smb.conf
[smb]
path = /mnt/disk
writeable=Yes
create mask=0777
directory mask=0777
public=yes
browseable=yes
valid users = root
guest ok = no

alist 网盘挂载

docker run -d --restart=always -v /mnt/disk/docker/alist:/opt/alist/data -v /mnt/down/alistdown/:/download  -p 5244:5244 --name="alist" xhofe/alist:latest

moviepilot 媒体搜索

version: "3"
services:
moviepilot:
image: jxxghp/moviepilot:latest
ports:
- 3000:3000 # web 接口
restart: always
network_mode: bridge
hostname: moviepilot
volumes:
- ./moviepilot:/moviepilot #程序主目录,必选
- ./config:/config #config 配置文件,必选
- /mnt/down/download:/downloads
environment:
# 基础设置
- UMASK=000
- SUPERUSER=xxxxxx #登录账号
- TMDB_API_DOMAIN=api.tmdb.org
# 下载目录设置
- DOWNLOAD_PATH=/downloads/moviepilot # 下载保存目录
- DOWNLOAD_MOVIE_PATH=/downloads/moviepilot/Movie
- DOWNLOAD_TV_PATH=/downloads/moviepilot/TVShow
- DOWNLOAD_ANIME_PATH=/downloads/moviepilot/Anime
- DOWNLOAD_CATEGORY=false #下载二级分类开关
# 媒体库功能设置
- TRANSFER_TYPE=link #转移方式,支持link/copy/move/softlink
- LIBRARY_PATH=/downloads/Plex
- LIBRARY_MOVIE_NAME=Movie
- LIBRARY_TV_NAME=TVShow
- LIBRARY_ANIME_NAME=Anime
- LIBRARY_CATEGORY=false
- SCRAP_METADATA=false
# 下载器设置
##qbittorrent设置项
- DOWNLOADER=qbittorrent
- QB_HOST=http://xxxxxx:xxxxx # qbittorrent地址
- QB_USER=xxxxxxx
- QB_PASSWORD=xxxxxxx
# 媒体服务器
- MEDIASERVER=plex
- PLEX_HOST=http://xxxx:xxxxx
- PLEX_TOKEN=xxxxxxxx
- MEDIASERVER_SYNC_BLACKLIST:音乐

- BIG_MEMORY_MODE=true
# 用户认证
- AUTH_SITE=wintersakura #认证站点
- WINTERSAKURA_UID=xxxxxxx # 观众 ID
- WINTERSAKURA_PASSKEY=xxxxxxxx # 观众 passkey

- COOKIECLOUD_INTERVAL=10000000

calibre-web 图书管理

docker run -d \
--name=calibre-web \
-e PUID=0 \
-e PGID=0 \
-e TZ=Asia/Chongqing \
-p 8083:8083 \
-v /mnt/disk/docker/calibre/config:/config \
-v /mnt/disk/docker/calibre/books:/books \
--restart unless-stopped \
linuxserver/calibre-web:latest

已经废弃,不使用

nas-tools 媒体搜索

docker run -d --name nas-tools --restart=always --hostname nas-tools -p 3000:3000 -v /mnt/disk/docker/nastools/config:/config --network host  -v /mnt/down:/disk  -e PUID=1000 -e PGID=1000 -e UMASK=000 -e NASTOOL_AUTO_UPDATE=false nastool/nas-tools

openwrt

  • 创建虚拟网络
ip link set eth0 promisc on
docker network create -d macvlan --subnet=192.168.3.1/24 --gateway=192.168.3.8 -o parent=eth0 macnet

  • 配置防火墙
ip link set eth0 promisc on
# docker value
ip link add link eth0 brnet type macvlan mode bridge
ip link set dev brnet up
//192.168.3.9 容器ip
ip route add 192.168.3.9 dev brnet
  • 导入镜像
docker import https://downloads.openwrt.org/releases/22.03.2/targets/armvirt/64/openwrt-22.03.2-armvirt-64-default-rootfs.tar.gz openwrt-22.03.2
# 或
docker pull openwrtorg/rootfs:armvirt-64-22.03.2
  • 创建容器
docker run --restart always --name openwrt -d --network macnet --privileged openwrtorg/rootfs:armvirt-64-22.03.2 /sbin/init

V2rayA透明代理

docker run -d --restart=always --cpu-shares 3072 --privileged --network=macnet --ip 192.168.3.9 --name v2raya -e V2RAYA_LOG_FILE=/tmp/v2raya.log -v /lib/modules:/lib/modules:ro -v /etc/resolv.conf:/etc/resolv.conf -v /mnt/disk/docker/v2raya/config:/etc/v2raya mzz2017/v2raya

clash透明代理

  1. 安装
docker run -d  --name clash  --restart unless-stopped --device=/dev/net/tun --log-opt max-size=1m  --network host --privileged  -v /mnt/disk/docker/clash:/root/.config/clash  dreamacro/clash-premium
  1. 配置文件
mixed-port: 7890
socks-port: 7891
redir-port: 7892
# Transparent proxy server port for Linux (TProxy TCP and TProxy UDP)
tproxy-port: 7893
allow-lan: true
mode: Rule
log-level: info #info #debug
external-ui: clash-dashboard
external-controller: 0.0.0.0:9090
secret: ""
experimental:
ignore-resolve-fail: true # ignore dns reslove fail, default value is true
dns:
enable: true
listen: 0.0.0.0:53
ipv6: false
enhanced-mode: redir-host #redir-host #fake-ip
fake-ip-range: 198.18.0.1/16
fake-ip-filter: # fake ip white domain list
- '*.lan'
nameserver:
- 114.114.114.114
- 8.8.8.8
fallback:
- 114.114.114.114
- 8.8.8.8
interface-name: eth0
auto-redir:
enable: true
auto-route: true
tun:
enable: true
stack: system
dns-hijack:
- any:53
- tcp://any:53
auto-route: true
#ebpf和zerotier和wirguard冲突
#ebpf:
#redirect-to-tun:
#- eth0
#直连端口
rules:
- DST-PORT,9993,DIRECT
- SRC-PORT,9993,DIRECT
- DST-PORT,18721,DIRECT
- SRC-PORT,18721,DIRECT