📖 学习 ✍️ 记录 🌐 分享

👋欢迎来到冇记!🎉 🎉

  • 本博客主人叫冇文化,故简称 冇记。
  • 这里没有高深理论,只有点滴的记录。
  • 愿路过的你,能在这里找到一点你需要的。
    🏡🌈🍉🌟📍🎆🎇🧨🧨👋✨ ✨

网络问题记录与解决方案

网址不可访问排查 nslookup nslookup 域名 DNS地址:通过这个命令可以看是否能解析到域名正确的ip地址,从而判断哪个DNS可以正常解析而非被污染

2026年4月22日 · 1 分钟 · 冇文化

基于sitebox前端Nginx增加托管Ariang

AriaNg 是一个纯静态的前端单页应用(HTML/CSS/JS),它本身不需要任何后端环境(PHP、Node 等),它只负责在浏览器里运行,然后通过 WebSocket/HTTP 请求去连接 aria2 服务端的 RPC 接口。 因此,用 Nginx 托起 AriaNg 非常简单,本质上就是多托管一个静态文件夹。 有两种常见的方式来实现: 子目录访问(推荐):比如通过 http://你的IP/ariang 访问。 新开一个端口:比如通过 http://你的IP:8080 访问。 方法一(子目录访问)是最完美且方便的。下面是修改好的配置: 修改后的 Nginx 配置(子目录方式) 假设你将 AriaNg 的网页文件解压到了 /usr/share/nginx/html/ariang 文件夹下。 server { listen 80; server_name localhost; # 监听域名,可以根据需要修改 root /usr/share/nginx/html; # 前端静态文件根目录 index index.html; # ======================================================= # 处理 favicon.ico 请求(直接提供文件) location = /favicon.ico { expires 30d; add_header Cache-Control "public, immutable"; } # ================= 新增:AriaNg 的配置 ================= # 访问 http://IP/ariang/ 就会打开 AriaNg location ^~ /ariang/ { # 这里复用外层的 root 目录,Nginx 会自动去寻找 /usr/share/nginx/html/ariang root /usr/share/nginx/html; index index.html; # AriaNg 是 hash 路由(带有 # 的 URL),所以不需要像主页那样重定向 /index.html try_files $uri $uri/ =404; } # ======================================================= # 个人导航主站 (必须放在特定的 location 后面) location / { try_files $uri $uri/ /index.html; # SPA 应用,处理路由问题 } location /api/ { # 直接代理到变量地址,完美支持 IP 或 域名 proxy_pass ${BACKEND_PROTO}://${BACKEND_ADDR}; # 强制设置 Host 头,对云服务/外部域名极其重要 proxy_set_header Host ${BACKEND_HOST}; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # 开启 SNI 支持:如果是 https 域名,这行保命;如果是 http IP,这行无副作用 proxy_ssl_server_name on; } } 具体操作步骤 下载并解压 AriaNg: 去 AriaNg Github Releases 下载最新版的 AriaNg-x.x.x.zip。 ...

2026年4月8日 · 2 分钟 · 冇文化

nsenterl与的挂载传播

nsenter 和“挂载传播”分别解决了**“如何进入容器环境”和“挂载点树结构如何同步”**这两个核心问题。 一、nsenter:Linux 命名空间的“任意门” nsenter (no-space enter) 是一个功能极其强大的系统级工具。它的作用是:进入一个或多个指定的 Linux 命名空间(Namespace)并执行命令。 1. 为什么需要它? LXC 容器之所以看起来像独立的系统,是因为它利用了内核的 Namespace 技术(包括 PID、网络、挂载、UTS、用户等)。 如果你想在宿主机上,像是在容器内部一样查看网络接口(ip addr)。 如果你想在容器内部运行一个宿主机才有的工具(比如容器里没装 tcpdump,但你想抓容器网卡的包)。 2. 基本用法 要使用它,你得先知道容器在宿主机上的 PID(进程 ID): # 获取容器 241 的 PID PID=$(lxc-info -n 241 -p -H) # 进入该 PID 的所有命名空间(挂载、网络、进程、主机名等) nsenter -t $PID -m -n -i -p -u /bin/sh 3. 与 pct exec 的区别 pct exec:是 PVE 封装好的命令,它会处理好权限映射、环境变量等,最稳妥。 nsenter:是原生的内核操作。它不经过 LXC 的管理层,直接把你的当前 Shell “瞬移”进那个环境。它常用于 pct exec 失效(比如容器 init 进程挂了但命名空间还在)时的“抢救”。 二、挂载传播 (Mount Propagation) 挂载传播定义了当你在宿主机或容器内进行挂载操作时,这个动作是否会“传播”给另一方。 ...

2026年4月6日 · 1 分钟 · 冇文化

PVE中Snippets的使用方法与实用场景

在 Proxmox VE (PVE) 的生态系统中,Snippets(片段) 是一个经常被忽视但极其强大的功能。它本质上是一个受 PVE 存储系统管理的“公共配置仓库”,专门用于存放脚本、配置文件、自定义模板等小文件。 结合你之前提到的“多容器共享配置文件(如 sing-box)”的需求,Snippets 是实现集群级统一管理的最佳方案。 语法与实用场景 一、 Snippets 的基础用法 1. 启用 Snippets 支持 默认情况下,PVE 的存储(如 local)并不一定会开启 Snippet 功能。 操作:进入 PVE Web UI -> 数据中心 -> 存储 -> 选择 local -> 编辑 -> 在“内容”下拉菜单中勾选 “代码段 (Snippets)”。 物理路径:默认存放位置在 /var/lib/vz/snippets/。 2. 上传/创建文件 你可以直接通过 SSH 将配置文件放入该目录: mkdir -p /var/lib/vz/snippets cp /root/sing-box-config.json /var/lib/vz/snippets/global-proxy.json 二、 核心实用场景与例子 场景 1:多容器共享“单文件”配置(解决你的痛点) 这是 Snippets 最实用的场景。mpX 只能挂载目录,而通过 Snippets 配合 lxc.mount.entry,你可以让多个容器读取宿主机上的同一个单文件。 配置方法:编辑 /etc/pve/lxc/100.conf: lxc.mount.entry: /var/lib/vz/snippets/global-proxy.json etc/sing-box/config.json none bind,ro,create=file 0 0 优势: ...

2026年4月6日 · 3 分钟 · 冇文化

lxc.mount.entry和mp的语法和参数

在 Proxmox VE (PVE) 环境下,理解这两种语法的细微差别是进阶 LXC 管理的关键。mpX 是 Proxmox 对存储的高级封装,而 lxc.mount.entry 是对底层内核挂载行为的直接控制。 具体的使用场景 以下是详细的语法与参数手册: 一、 mpX (Proxmox Mount Point) 语法详解 这是写在 /etc/pve/lxc/<ID>.conf 中的 PVE 特有语法。它被 PVE 的 API 解析,并在 Web UI 中可见。 1. 基础语法结构 mp[N]: [存储ID:卷名|宿主机绝对路径],mp=<容器内绝对路径>[,参数=值,...] N: 挂载点编号(0-255)。 2. 核心参数 参数 说明 示例/取值 mp 必填。容器内的挂载目标。必须是绝对路径。 mp=/mnt/data size 仅限 PVE 管理的卷。定义磁盘大小。 size=20G backup 是否包含在 PVE 的备份任务中。 backup=1 (开), backup=0 (关) ro 是否以只读方式挂载。 ro=1 quota 是否开启磁盘配额(需要底层文件系统支持)。 quota=1 shared 标记为集群共享存储,迁移时不检查本地路径。 shared=1 replicate 是否参与 ZFS 存储复制(需要 ZFS 环境)。 replicate=1 mountoptions 透传给底层 mount 命令的参数(用 ; 分隔)。 mountoptions=noexec;nodev acl 是否开启 ACL 支持。 acl=1 3. 示例 挂载 PVE 管理的虚拟磁盘: mp0: local-lvm:vm-100-disk-1,mp=/var/lib/mysql,size=50G,backup=1 挂载宿主机目录 (Bind Mount): mp1: /mnt/pve/nas_data,mp=/media,ro=1 二、 lxc.mount.entry (底层原生语法) 详解 这是原生的 LXC 配置语法,遵循 Linux /etc/fstab 的标准格式,但增加了针对容器的扩展参数。 ...

2026年4月6日 · 3 分钟 · 冇文化