基于PVE-9.1版本lxc直接部署OCI容器sing-box

在 PVE 宿主机上编辑 /etc/pve/lxc/容器ID.conf,添加 lxc.cgroup2.devices.allow: c 10:200 rwm lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file 如果不开启,就会创建tun设备失败。 进入lxc执行ip转发设置 永久开启: echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf 实际情况,由于这个容器并没有启动标准的 Linux 初始化系统(没有运行 OpenRC 或 Systemd)。它开机后,内核直接把 PID 1 交给了 Entrypoint 里的命令。也就是说,它根本不会去读取 /etc/local.d 或者 /etc/init.d 里的任何自启动脚本。所以上面设置的开启转发并没有在启动的时候加载 为了加载转发设置,需要执行sysctl -p 在 PVE 网页端,双击Entrypoint那一行进行编辑 将原本的内容:sing-box 修改为(利用 shell 将两个命令串联):/bin/sh -c "sysctl -p; exec sing-box run -c /etc/sing-box/config.json" 补全缺失的config.json及my-direct.json和my-proxy.json lxcId对应的是lxc的Id,根据实际情况进行对应修改 挂载rootfs到PVE本地 pct mount lxcId 上传config.json mkdir -p /var/lib/lxc/lxcId/rootfs/etc/sing-box cp -a /config/path/config.json /var/lib/lxc/lxcId/rootfs/etc/sing-box/config.json cp -a /config/path/my-direct.json /var/lib/lxc/lxcId/rootfs/etc/sing-box/my-direct.json cp -a /config/path/my-proxy.json /var/lib/lxc/lxcId/rootfs/etc/sing-box/my-proxy.json 设置权限 权限处理参加 假设容器内是root,那在本地就是100000:100000 chown -R 100000:100000 /var/lib/lxc/lxcId/rootfs/etc/sing-box/ 卸载rootfs pct unmount lxcId 启动错误检查 前台运行调试 (推荐) 先确保容器是停止状态,然后在 PVE 宿主机上以前台模式启动这个容器,这样所有的报错都会直接打印在你的屏幕上: ...

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

sitebox前端部署与使用指南

1. 网站信息设置之图标设置 在当前后端项目中,网站图标(Favicon)的处理方式为“动态生成外部 URL 链接”。 以下是具体的处理逻辑: 1.1. 图标 URL 的生成逻辑 (utils/faviconUtils.js) 后端不再将图标下载到本地服务器,而是根据网站域名生成指向第三方图标服务的 URL: 优先使用 DuckDuckGo 服务:生成的格式为 https://icons.duckduckgo.com/ip3/{domain}.ico。 Google 服务兜底:如果 URL 解析出现异常,会退而使用 Google 的图标 API:https://www.google.com/s2/favicons?sz=64&domain_url={websiteUrl}。 支持自定义:如果用户手动提供了图标 URL,后端会优先采用用户提供的地址。 1.2. 业务层的处理流程 (services/websiteService.js) 创建网站时:系统会自动调用 fetchFavicon 方法,根据用户输入的网站地址生成对应的图标 URL,并将其存入数据库。 更新网站时: 如果用户修改了网站的 url(导致域名变化),或者当前记录中缺失图标,系统会重新生成图标 URL。 如果域名未发生变化,则继续沿用现有的图标 URL,避免不必要的更新。 删除网站时:由于不再存储本地物理文件,删除操作仅需清理数据库记录,无需处理文件删除逻辑(相关方法已变更为 no-op)。 1.3. 数据存储 图标信息直接以字符串形式存储在 SQLite 数据库 websites 表的 favicon_url 字段中。 1.4. 自定义设置技巧(可选操作,可以不填,自动获取) 1.4.1. 方式一:使用网络图片 URL GitHub 图片的正确地址格式: Raw 格式(推荐):https://raw.githubusercontent.com/你的用户名/仓库名/main/图片路径(main也可能是master,看仓库主支名字) jsDelivr CDN 格式(更快): https://cdn.jsdelivr.net/gh/你的用户名/仓库名@main/图片路 示例: 假设你的 GitHub 用户名是 zhangsan,仓库名是 my-icons,图片在仓库根目录叫 logo.png,那么填写:https://raw.githubusercontent.com/zhangsan/my-icons/main/logo.png 或者用 CDN 加速:https://cdn.jsdelivr.net/gh/zhangsan/my-icons@main/logo.png 在添加网站的表单中,找到"图标地址"或"Favicon"输入框,粘贴上述地址即可。 获取网站的真实favicon地址 1.4.2. 方式二:存放在项目后端服务中(仅仅对非cf部署情况有效) 在图标地址栏输入相对路径,如 /data/icons/custom.ico 要使用这个相对路径,需要确保,后端服务器/data目录下有相应的文件或者文件夹。可以在部署的时候将/data/incos/这个文件夹挂载到本地某个具有图片资源的文件夹 2. nginx配置模版 2.1. ✅ 优化后的完美模板 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"; } # ======================================================= # 个人导航主站 (必须放在特定的 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; } } 2.2. 💡 变量赋值示例(供参考验证) 当使用这个完美模板时,针对两种场景,环境变量应该这样传: ...

2026年3月20日 · 3 分钟 · 冇文化