2025-05-06 20:41:10
还在为网盘限速、空间不足而焦虑?想要一个安全、快速、完全掌控的私人网盘?今天带你一步步用 Alist 结合 MinIO,快速搭建一个高性能的私人云存储,文件管理从此自由无忧!
部署非常简单,也很适合内网私有化部署。另外这也是一个开源项目,社区灵活度特别高,对接的存储类型非常丰富,但是本文还是着重写写对接 minio。今天的音频调了几版,目前这版相关好点
通过 Alist + MinIO 的组合,你可以轻松打造一个私有网盘,享受无限存储空间和极速访问体验!
以下以 Docker 部署为例,带你快速搭建 Alist 和 MinIO 的组合。这里就跳过 MinIO 部署相关了,之前也讲过,可以查看我之前写的文章:
根据实际情况来,默认 aio 镜像已经包含本地存储缩略图
ffmpeg
和离线下载aria2
, 后面需要用的上
ccr.ccs.tencentyun.com/k7scn/alist:main-aio
services:
alist:
image: xhofe/alist:main-aio
# image: ccr.ccs.tencentyun.com/k7scn/alist:main-aio
container_name: alist
ports:
- "5244:5244"
volumes:
- /data/alist:/opt/alist/data # 应用程序持久化数据
- /data/share:/opt/share # 本地存储,可选
environment:
- TZ=Asia/Shanghai
- ALIST_ADMIN_PASSWORD=goxee7dieXeihu9uochoo6iquaighail
restart: always
ALIST_ADMIN_PASSWORD
支持自定义密码,很早之前我提交的 PR😂,估计也就我一个人这么用。
docker compose up -d
caddy 配置比较简单
alist.ysicing.eu.org {
reverse_proxy 100.90.80.2:5244
}
访问 Alist:在浏览器输入 http://你的服务器IP:5244
或者 caddy域名
,进入 Alist 界面。
默认用户名是 admin
, 密码是你配置的 ALIST_ADMIN_PASSWORD
值信息
登录 Alist,点击 管理 > 存储 > 添加。
选择存储类型为对象存储
填写以下信息:
保存配置后,返回 Alist 主页,即可看到挂载的 MinIO 存储
可以上面的操作后就可以通过 Alist 浏览、分享 MinIO 中的文件,支持在线预览、下载等功能。
通过 Alist 和 MinIO 的组合,你可以轻松搭建一个功能强大、安全可靠的私人网盘,告别存储焦虑!无论是个人文件管理还是团队协作,这个方案都能满足你的需求。快动手试试吧!
2025-05-05 19:52:49
部署非常简单,非常适合收藏,内网私有化部署。另外这是一个开源项目,灵活度比较高。
https://github.com/libnoname/noname
可以根据自己的网络情况选择对应的镜像下载,镜像比较大, 大概 3.5G 左右。
hsiaoshun/noname
ccr.ccs.tencentyun.com/k7scn/noname
services:
noname:
image: hsiaoshun/noname
# image: ccr.ccs.tencentyun.com/k7scn/noname
container_name: noname
ports:
- '6080:80'
restart: always
示例,不建议公网跑,对带宽有点要求
sgs.ysicing.eu.org {
reverse_proxy 100.90.80.2:6080
}
目前只支持 windows 和安卓
注意: 结尾的/不能省略, 如果没有证书就是 ws,有证书就是 wss
如果有更多兴趣的话,可以看看无名杀懒人包。
2025-05-05 14:50:47
在搭建 k3s 轻量级 Kubernetes 集群时,Debian 系统因其稳定性和灵活性成为首选。然而,Debian 默认配置可能无法满足 k3s 的需求,需要通过初始化优化系统设置。本文将分享一套针对 k3s 环境的 Debian 初始化方案,涵盖基础包安装、系统配置和防火墙规则,仅供参考。
以下命令安装 k3s 集群所需的基础工具,保持系统轻量:
export DEBIAN_FRONTEND=noninteractive
apt update -qq
apt remove -y -qq ufw lxd lxd-client lxcfs lxc-common
apt install --no-install-recommends --no-install-suggests -y -qq nfs-common iptables conntrack jq socat bash-completion open-iscsi rsync ipset ipvsadm htop net-tools wget psmisc git curl nload ebtables ethtool procps
修改 ssh 端口,设置密钥登录,禁用密码登录。这些比较常见,这里就不细说了。
之前好像也写过,通常我都是使用最新内核,仅供参考.(通常也会踩坑比较多)
curl https://c.ysicing.net/oss/scripts/debian-upcore.sh | bash
# 或者
apt install -t bookworm-backports linux-image-amd64 -y
调整 Systemd 的资源限制和日志设置
mkdir -pv /etc/systemd/system.conf.d
cat > /etc/systemd/system.conf.d/30-k8s-ulimits.conf <<EOF
[Manager]
DefaultLimitCORE=infinity
DefaultLimitNOFILE=100000
DefaultLimitNPROC=100000
EOF
mkdir -pv /etc/systemd/journald.conf.d /var/log/journal
cat > /etc/systemd/journald.conf.d/95-k3s-journald.conf <<EOF
[Journal]
# 持久化保存到磁盘
Storage=persistent
# 最大占用空间 2G
SystemMaxUse=2G
# 单日志文件最大 100M
SystemMaxFileSize=100M
# 日志保存时间 1 周
MaxRetentionSec=1week
# 禁止转发
ForwardToSyslog=no
ForwardToWall=no
EOF
systemctl daemon-reload
systemctl restart systemd-journald
cat > /etc/modules-load.d/10-k3s-modules.conf <<EOF
br_netfilter
ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntrack
EOF
systemctl daemon-reload
systemctl restart systemd-modules-load
提示:8.8.8.8 为示例白名单 IP,请替换为实际 IP,搭配rc.local
#!/bin/bash
iptables -I INPUT -s 8.8.8.8 -j ACCEPT
iptables -I INPUT -p udp -j ACCEPT
iptables -I INPUT -i lo -j ACCEPT
iptables -I INPUT -i tailscale0 -j ACCEPT
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -I INPUT -s 10.0.0.0/8 -j ACCEPT
iptables -I INPUT -s 172.16.0.0/12 -j ACCEPT
iptables -I INPUT -s 192.168.0.0/16 -j ACCEPT
iptables -I INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
iptables -A INPUT -p icmp -j DROP
iptables -A OUTPUT -j ACCEPT
iptables -A INPUT -j DROP
防火墙规则没考虑使用 iptables-save
等保存恢复,而是每次开启时重新配置。
通过以上步骤,我们完成了一套针对 k3s 环境的 Debian 系统初始化,优化了网络、资源限制和安全性。你可以直接使用以下脚本一键初始化
curl https://c.ysicing.net/oss/scripts/init.sh
2025-05-03 23:32:25
PS: 用 AI 生成的图老是不合法微信封面的比例,放到文尾。本文也提供音频版, 欢迎订阅我的微信公众号。
在如今的网络世界,IPv6 正在逐渐普及,但 IPv4 依然是许多场景的“老大哥”。如果你用的是 Debian 系统,并且身处 IPv4 和 IPv6 共存的双栈网络环境,可能会发现系统默认优先使用 IPv6——这在某些情况下并不理想,比如某些服务只支持 IPv4,或者 IPv6 连接不稳定。今天,我们就来聊聊如何在 Debian 上实现 IPv4 优先,甚至在需要时完全禁用 IPv6。跟着这篇教程,轻松搞定网络配置!
先来点背景知识:双栈网络指的是设备同时支持 IPv4 和 IPv6 协议栈。现代操作系统(如 Debian)和浏览器通常默认优先使用 IPv6,只有当 IPv6 连接失败时才会“退而求其次”用 IPv4。这听起来很智能,但在实际场景中可能会遇到问题:
所以学会调整 IPv4 和 IPv6 的优先级,或者在极端情况下禁用 IPv6,是每个 Debian 用户的“进阶技能”。下面,我们一步步教你搞定!
Debian 系统中,/etc/gai.conf
文件控制了 getaddrinfo 函数的行为,这个函数决定了系统如何选择 IPv4 或 IPv6 地址。默认情况下,IPv6 优先,但我们可以通过简单修改让 IPv4 站到“C 位”。
打开终端,输入以下命令编辑 /etc/gai.conf
#precedence ::ffff:0:0/96 100
去掉 # 号,修改为:
precedence ::ffff:0:0/96 100
保存并退出。
懒人福利:如果你不想手动编辑,可以直接用这条命令一键搞定:
bash
sed -i 's/#precedence ::ffff:0:0\/96 100/precedence ::ffff:0:0\/96 100/' /etc/gai.conf
配置完成后,用 curl 命令测试一下:
curl ip.sb
也可以使用
# 查询本机外网IPv4地址
curl 4.ipw.cn
# 查询本机外网IPv6地址
curl 6.ipw.cn
# 测试网络是IPv4还是IPv6访问优先(访问IPv4/IPv6双栈站点,如果返回IPv6地址,则IPv6访问优先)
curl test.ipw.cn
如果返回的是类似 6.6.6.6 的 IPv4 地址,恭喜你,IPv4 优先已生效!如果返回的是类似 2001:db8::2 的 IPv6 地址,检查是否正确保存了配置。
::ffff:0:0/96 是 IPv4 地址在 IPv6 协议中的映射范围,设置其优先级为 100(高于默认 IPv6 的优先级),系统就会优先选择 IPv4 地址。
有些朋友可能有“奇特”需求,比如测试 IPv6 环境或某些服务明确要求 IPv6 优先。别担心,我们也可以反向操作!
同样编辑 /etc/gai.conf
, 在文件末尾添加以下两行:
label 2002::/16 1
label 2001:0::/32 1
保存退出,或者用命令一键添加:
bash
echo -e "label 2002::/16 1\nlabel 2001:0::/32 1" | sudo tee -a /etc/gai.conf
2002::/16
和 2001:0::/32
是常见的 IPv6 地址段,设置它们的 label 优先级为 1,确保系统优先选择这些 IPv6 地址。IANA 目前分配的公网 IPv6 地址还未覆盖到 3000:0000::/4
,所以这招基本万无一失
(这个未测试过,仅供参考)
如果你的网络环境压根不需要 IPv6,或者 IPv6 总给你添乱,可以直接禁用它。以下是禁用 IPv6 的方法,适合“断舍离”爱好者。
编辑 /etc/sysctl.conf
文件:
net.ipv6.conf.all.disable_ipv6 = 1
# 禁用eth0的ipv6
net.ipv6.conf.eth0.disable_ipv6 = 1
通过简单的配置文件调整,你就可以在 Debian 双栈网络中自由掌控 IPv4 和 IPv6 的优先级,甚至彻底禁用 IPv6。无论是提升网络兼容性、优化性能,还是满足特定需求,这些技巧都能让你事半功倍!
2025-05-03 06:57:15
在 Debian 12(以及 Debian 9 及以上版本)中,/etc/rc.local 是配置开机自启动脚本的传统方式,但默认未启用,导致自定义脚本无法自动运行。本文将详细指导你在 Debian 12 上启用和配置 /etc/rc.local,步骤同样适用于 Debian 9 Stretch、10 Buster 和 11 Bullseye
Debian 9 起采用 systemd 作为初始化系统,传统的 /etc/rc.local
默认不生效。尽管系统内置了 rc-local
,但默认处于禁用状态:
root@debian:~$ systemctl status rc-local.service
○ rc-local.service - /etc/rc.local Compatibility
Loaded: loaded (/lib/systemd/system/rc-local.service; static)
Drop-In: /usr/lib/systemd/system/rc-local.service.d
└─debian.conf
Active: inactive (dead)
Docs: man:systemd-rc-local-generator(8)
以下是默认的 rc-local.service 配置,表明它会在 /etc/rc.local
可执行时自动拉起:
root@docker:~$ systemctl cat rc-local.service
# /lib/systemd/system/rc-local.service
# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
# This unit gets pulled automatically into multi-user.target by
# systemd-rc-local-generator if /etc/rc.local is executable.
[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.local
After=network.target
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no
# /usr/lib/systemd/system/rc-local.service.d/debian.conf
[Unit]
# not specified by LSB, but has been behaving that way in Debian under SysV
# init and upstart
After=network-online.target
# Often contains status messages which users expect to see on the console
# during boot
[Service]
StandardOutput=journal+console
StandardError=journal+console
以下步骤助你快速启用 /etc/rc.local,实现开机脚本自动运行
默认没有 /etc/rc.local,我们需要手工添加一个 /etc/rc.local 文件:
cat <<EOF >/etc/rc.local
#!/bin/bash
# 这是一个示例 rc.local 文件
# 在这里添加你的开机执行命令
# 示例:启动一个自定义脚本
# /path/to/your/script.sh
exit 0
EOF
确保文件具有可执行权限
chmod +x /etc/rc.local
启动 rc-local 服务,此时可能会弹出警告,可直接忽略
systemctl enable --now rc-local
检查服务状态, 状态显示 active (exited)
表示服务已运行
root@docker:~$ systemctl status rc-local.service
● rc-local.service - /etc/rc.local Compatibility
Loaded: loaded (/lib/systemd/system/rc-local.service; static)
Drop-In: /usr/lib/systemd/system/rc-local.service.d
└─debian.conf
Active: active (exited) since Fri 2025-05-02 18:21:26 EDT; 3s ago
Docs: man:systemd-rc-local-generator(8)
Process: 333116 ExecStart=/etc/rc.local start (code=exited, status=0/SUCCESS)
CPU: 4ms
May 02 18:21:26 docker systemd[1]: Starting rc-local.service - /etc/rc.local Compatibility...
May 02 18:21:26 docker systemd[1]: Started rc-local.service - /etc/rc.local Compatibility.
在 /etc/rc.local 的 exit 0 前添加命令。例如:
#!/bin/sh -e
#
# rc.local
#
# By default this script does nothing.
/data/scripts/ip.sh || true
exit 0
注意:使用绝对路径(如
/data/scripts/ip.sh
),确保脚本有执行权限。|| true
可防止脚本失败影响。
重启系统
通过以上步骤,你可以在 Debian 9 及以上版本快速启用 /etc/rc.local
,实现开机自动运行脚本。尽管 systemd 提供更现代的方案,rc.local 仍适合简单任务。