一键导入
ray-vpsinit
新 VPS 开荒一条龙:连通盘点 → 系统加固(SSH/BBR/更新/时区/swap) → 代理栈部署(3x-ui + VLESS+Reality) → 防火墙 → 验证交接。带防锁死保护和实测过的版本坑位。触发:/ray-vpsinit 「ssh 别名或 user@host」。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
新 VPS 开荒一条龙:连通盘点 → 系统加固(SSH/BBR/更新/时区/swap) → 代理栈部署(3x-ui + VLESS+Reality) → 防火墙 → 验证交接。带防锁死保护和实测过的版本坑位。触发:/ray-vpsinit 「ssh 别名或 user@host」。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
把口播文稿、观点句或一个完整选题做成编辑隐喻拼贴风格的视频(黑白半调剪贴 + 平坦色场 + 从空场逐件组装的定格动画)。两种模式:单句 5 秒 B-roll(单条或批量),以及 beat map 驱动的 45–60 秒完整讲解片(含旁白 TTS、内容感知变速、字幕与拼装)。用户说“拼贴 b-roll”“纸拼贴视频”“vox 那种风格的视频”“半调拼贴动画”“给这句口播配画面”“把这个选题做成拼贴讲解视频”时使用;也承接 ray-writer / ray-cover 产出后的视频化下游需求。不用于:需要精确图层与时间线控制(转 HyperFrames)、只要提示词不要成片、真人口播或产品实拍广告。
把已经定稿的中文长文排成适合手机浏览的微信公众号富文本,生成可复制预览,在用户确认后创建或更新公众号草稿,并回读核对标题、封面、正文、空段落、署名和中文编码。用于“给公众号重新排版”“把这篇推到微信公众号草稿箱”“更新已有微信草稿”“公众号排版太单调或有多余空行”“恢复失败的草稿更新”时。优先更新文章 frontmatter 记录的原草稿,不制造同题重复草稿;未经明确授权只做到预览,不发布文章。
rayskills 工具箱的主入口与路由。当用户不确定该用哪个 ray-* skill、只是丢来一个真实任务/处境,或明确要求把一篇内容从 idea、调研、写作、封面一路送到公众号或 X Articles 草稿箱时,用本 skill 读取上下文,判断最该做的一步或执行已确认的内容生产链。也用于一轮工作完成后决定下一步。触发:/ray 或 /ray 后接任何真实任务描述。用户无需记住具体 skill 名。
把灵感、剪藏审核卡、调研包、长期知识或已有草稿装配成有事实、有情绪、有网感和传播力的中文长文,并接入用户本地 Obsidian 知识库的成稿包、调研、草稿、发布与复盘流程。用于用户说“把这个 idea 写成文章”“从这条资料发展成长文”“写一篇公众号或 X 长文”“检查或重写这篇文章”“把内容生产流水化”时;找不到兼容知识库时先转交 ray-obsidian 建立或适配。不得虚构用户经历、数据、现场或情绪,不自动发布,也不使用 WeWrite。
把已经确定核心判断的文章、成稿包或长文转成公众号、普通 X 分享图与 X Articles 后台封面。提炼一个可一眼读懂的视觉隐喻,在 Ray 的编辑视觉体系中选择复古现代主义、极简隐喻、安静油墨、编辑隐喻拼贴或工具桥接方向,先生成无字底图,再用确定性排版写入准确中文标题,并输出各平台文件、提示词和清单。用于“给这篇文章做封面”“公众号和 X 都要封面”“做 5:2 Article 封面”“用 Adrian 或 Vox 那类风格”“把内容生产接上封面管线”时;不用于正文写作、自动发布或完整解说视频。
在用户本地新建、检查或渐进适配一个面向长期知识与内容生产的 Obsidian 知识库,复用 Ray 的资料、知识、灵感、成稿包、调研、草稿、发布与回流分层。用于“帮我搭一个 Obsidian 知识库”“给 ray-writer 准备本地知识库”“把现有 vault 接入内容生产管线”“检查知识库结构是否完整”时;也在 ray-writer 找不到兼容知识库时使用。只补缺失结构,不覆盖、移动或删除用户已有笔记,不强制安装插件、同步服务或 Git。
| name | ray-vpsinit |
| description | 新 VPS 开荒一条龙:连通盘点 → 系统加固(SSH/BBR/更新/时区/swap) → 代理栈部署(3x-ui + VLESS+Reality) → 防火墙 → 验证交接。带防锁死保护和实测过的版本坑位。触发:/ray-vpsinit 「ssh 别名或 user@host」。 |
拿到一台裸机,到"加固完成、代理可用、信息归档"为止。所有步骤按序执行,每个破坏性动作前有闸。
/ray-vpsinit root@1.2.3.4 # 裸机全流程
/ray-vpsinit myhost --harden-only # 只做加固,不装代理栈
/ray-vpsinit myhost --proxy-only # 只装代理栈(机器已加固过)
开跑前问清三件事(有默认值,用户不答就用默认):
~/.ssh/id_ed25519.pub)ssh -o ConnectTimeout=10 <host> 'uname -m && cat /etc/os-release | head -2 && free -m | head -2 && df -h / | tail -1'
ssh <host> "ss -tlnp | awk 'NR>1{print \$4}'" # 已占端口清单
记录:架构(amd64/arm64)、发行版、内存、磁盘、已占端口集合。
端口冲突是部署失败的第一大原因。任何服务选端口前,先对照这份清单。
顺序固定,每步幂等(重跑无害):
1a. SSH 密钥登录
ssh-copy-id -i <pubkey> <host> # 或手动追加 authorized_keys
ssh -i <key> <host> 'echo ok' # 必须先验证密钥能登
1b. SSH 收紧(防锁死闸)
改 /etc/ssh/sshd_config(或 drop-in /etc/ssh/sshd_config.d/99-harden.conf):
PasswordAuthentication no
PermitRootLogin prohibit-password
铁律:
sshd -t 语法检查,过了才 reload1c. 内核与网络:BBR
cat >> /etc/sysctl.d/99-bbr.conf <<'EOF'
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
EOF
sysctl --system
sysctl net.ipv4.tcp_congestion_control # 确认输出 bbr
1d. 基础卫生
timedatectl set-timezone UTC # 或用户指定时区
apt-get update && apt-get install -y unattended-upgrades && dpkg-reconfigure -f noninteractive unattended-upgrades
内存 ≤1G 的小鸡加 swap:
fallocate -l 1G /swapfile && chmod 600 /swapfile && mkswap /swapfile && swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab
1e. 时间同步:确认 timedatectl 显示 NTP active(Reality 握手对时钟敏感)。
若你手上有自己的批量部署脚本(一条命令部署一台的那种),可直接用它走自动化,以下手动序列仅在没有现成脚本时用——但坑位清单两种路径都要核对。
2a. 选端口:从偏好序列 443 → 2083 → 8443 → 2053 → 2087 → 2096 里挑第一个不在已占清单里的。面板端口另选一个高位端口。
2b. 装 3x-ui(版本 pin)
echo 'y' | bash <(curl -Ls https://raw.githubusercontent.com/MHSanaei/3x-ui/v3.4.1/install.sh) v3.4.1
/usr/local/x-ui/x-ui setting -username <u> -password <p> -port <panel_port> -webBasePath /
systemctl restart x-ui
2c. 生成 Reality 密钥(版本坑)
xray x25519 的输出字段名随版本漂移,解析时按下表兼容:
| Xray 版本 | 私钥字段 | 公钥字段 |
|---|---|---|
| 旧版 | Private key: | Public key: |
| v26.x | PrivateKey: | Password (PublicKey): 或 Password: |
xray 二进制位置:/usr/local/x-ui/bin/xray-linux-*(glob 匹配,兼容 amd64/arm64)。
2d. 入站配置(三个实测坑)
www.microsoft.com 的证书已超限,在 xray-core 26.x 上握手失败——用 www.apple.com / www.cloudflare.com / www.bing.comclients: null、全部握手失败且无报错。命名建议 <remark>-<随机3字节hex>flow: xtls-rprx-vision、fingerprint: chrome、shortId 用 4 字节 hex、sniffing destOverride: [http, tls, quic, fakedns]探测式处理,别假设机器上有什么:
ufw status 含 active → ufw allow <每个端口>/tcp && ufw reload
否则 iptables INPUT 默认策略是 DROP/REJECT → iptables -A INPUT -p tcp --dport <p> -j ACCEPT
两者都不是 → 跳过(云厂商安全组在外层,提醒用户去控制台开)
要开的端口 = 代理端口 + 面板端口 + SSH 端口。开完立即从本地验证,别信面板里的绿灯。
4a. 端到端验证
curl -sk -o /dev/null -w '%{http_code}' --connect-timeout 10 https://<server>:<port>
返回 400 或 200 都算活——Reality 对非 VLESS 客户端返回 400,这是预期行为不是故障。
4b. 交接清单(输出给用户,敏感项只给存放位置不打印明文):
主机: <ip> (<架构>/<发行版>/<内存>)
SSH: 密钥登录,密码已关,root 仅密钥
BBR: ✅
面板: https://<ip>:<panel_port> 凭证 → <凭证档位置>
节点: vless+reality :<port> SNI=<sni>
防火墙: <ufw/iptables/云安全组> 已放行 <端口列表>
待办: [ ] 订阅同步 [ ] 加入巡检清单(/ray-nodecheck)
--insecure