JV

jasonbitsmith/vps-first-steps

Deployment & DevOps
41 stars 품질 40 트렌드 40

A single, readable bash script that takes a fresh Ubuntu/Debian VPS from default install to a hardened, ready-to-use server.

개요

给刚买的 Ubuntu / Debian VPS 做基础初始化:安装常用工具、配置防火墙、登录防护、交换空间和自动安全更新。 已在一台 Ubuntu 26.04 LTS x86_64 机器上完成默认流程测试,并由用户确认新的 SSH 连接成功。该机器已有软件和 swap,不是全新系统;重启、高级选项及其他发行版仍待验证。详见 测试记录。 阅读 SKILL.md,帮我连接并初始化一台闲置 VPS,保留当前 SSH 登录方式,完成后自动检查结果。 Codex 会引导你提供连接信息、检查已有服务、上传脚本、执行初始化并验收。无需先手动安装 Skill;自动操作需要可用的 SSH 登录方式和运行权限。详见 Codex 使用指南。下面的三步教程适合手动操作。 只适合**。已有网站、Docker、数据库或其他服务的机器,应先单独检查端口和防火墙,不要照抄运行。 查看 国内连接优化 VPS 选购指南:搬瓦工、DMIT 共 7 款套餐,附配置、参考价格及购买链接。链接含推广推荐 ID,维护者可能获得佣金;购买自愿,不影响项目免费使用。核对日期:2026-09-28,价格与库存以商家结算页为准。 - Ubuntu 或 Debian,使用 apt 和 systemd;其他系统暂不支持。 - 能通过 SSH 登录服务器,使用 root 或能执行 sudo 的账号。 - 知道服务商网页控制台在哪里:SSH 出问题时可从那里操作。 - 磁盘至少为 2G swap 留出空间,外加软件更新所需空间;空间不足用 --no-swap。 就是你连接 VPS 后输入命令的窗口。下面命令运行在 VPS 上,不是在 Mac 或 Windows 的本地终端里直接运行。

README

VPS 起手式 · Jason 数字生活

给刚买的 Ubuntu / Debian VPS 做基础初始化:安装常用工具、配置防火墙、登录防护、交换空间和自动安全更新。

在你的 VPS 终端里运行。默认保留现有 SSH 登录方式和端口。

已在一台 Ubuntu 26.04 LTS x86_64 机器上完成默认流程测试,并由用户确认新的 SSH 连接成功。该机器已有软件和 swap,不是全新系统;重启、高级选项及其他发行版仍待验证。详见 测试记录。

推荐:让 Codex 帮你完成

在 Codex 打开本项目目录,发送这一句话:

阅读 SKILL.md,帮我连接并初始化一台闲置 VPS,保留当前 SSH 登录方式,完成后自动检查结果。

Codex 会引导你提供连接信息、检查已有服务、上传脚本、执行初始化并验收。无需先手动安装 Skill;自动操作需要可用的 SSH 登录方式和运行权限。详见 Codex 使用指南。下面的三步教程适合手动操作。

先弄清楚:这个项目做什么?

会做 不包含
更新系统和安装 curl、git、vim、htop 等工具 aaPanel、3x-ui、WARP 的部署
UFW 防火墙和 fail2ban 登录防护 建站、代理节点、域名和证书配置
默认 2G swap(磁盘上的备用内存) VPS 购买和自动连接服务器
自动安全更新 自动重启服务器

只适合刚创建、还没部署业务的 VPS。已有网站、Docker、数据库或其他服务的机器,应先单独检查端口和防火墙,不要照抄运行。

还没有 VPS?先看选购参考

还没有 VPS? 查看 国内连接优化 VPS 选购指南:搬瓦工、DMIT 共 7 款套餐,附配置、参考价格及购买链接。链接含推广推荐 ID,维护者可能获得佣金;购买自愿,不影响项目免费使用。核对日期:2026-09-28,价格与库存以商家结算页为准。

开始前准备

  • Ubuntu 或 Debian,使用 apt 和 systemd;其他系统暂不支持。
  • 能通过 SSH 登录服务器,使用 root 或能执行 sudo 的账号。
  • 知道服务商网页控制台在哪里:SSH 出问题时可从那里操作。
  • 磁盘至少为 2G swap 留出空间,外加软件更新所需空间;空间不足用 --no-swap。

终端是什么? 就是你连接 VPS 后输入命令的窗口。下面命令运行在 VPS 上,不是在 Mac 或 Windows 的本地终端里直接运行。

新手只需三步

1. 下载脚本

在 VPS 终端粘贴:

curl -fsSL https://raw.githubusercontent.com/jasonbitsmith/vps-first-steps/main/vps-init.sh -o vps-init.sh

如果提示找不到 curl,先执行 sudo apt-get update && sudo apt-get install -y curl,再下载。

可以先用 less vps-init.sh 查看脚本,按 q 退出。无需设置可执行权限。

2. 检查环境(不会修改系统)

sudo bash vps-init.sh --check

看到 Checks passed 后再继续;看到红色错误就先处理,不要跳过。

3. 开始初始化

sudo bash vps-init.sh

阅读提示,输入 y 并回车。等到出现 VPS initialization complete。

运行期间保留窗口。完成后另开一个终端,用原来的用户名、密钥或密码、端口再次登录,确认成功后再关闭旧窗口。

上述下载地址指向 main 分支的最新版本;完整测试范围见测试记录。

完成后检查什么?

sudo bash vps-init.sh --status
  • 防火墙应显示 active,并放行你的 SSH 端口。
  • fail2ban 应显示 active。
  • 未跳过 swap 时,应能看到交换空间;已有 swap 会保留。
  • 系统升级可能要求重启。先验证新连接,再自行安排重启。

常见问题

网页打不开了? 默认只新增 SSH 放行规则,其他服务端口不会自动放行。部署网站时,需要根据实际服务另行允许 80/443;服务商安全组也要允许对应端口。

SSH 是不是只能用 22? 不是。脚本检测当前配置的端口。若连接实际端口与配置不一致(例如 socket activation),会停止,避免错误配置防火墙。此版本不提供改端口功能。

执行一半报错怎么办? 保留窗口,记录最后的错误,先判断已执行步骤。系统更新没有整体回滚功能;不要认为重跑必然安全。SSH 配置修改失败会恢复本次修改前的配置文件。

GitHub 用户名能直接用来登录 VPS 吗? 不能。GitHub 账号也不一定有 SSH 公钥。只有你持有对应私钥的公钥才能用于登录,切勿使用别人的 .keys 地址。

能多次运行吗? 已有用户、已有 swap 和相同公钥会被检查;但系统升级、UFW 和配置写入仍会执行。现有业务机器需要人工评估。

可选参数

参数 用途
--status 只读汇总防火墙、fail2ban、SSH 防护和实际 swap
--check 只读检查,不执行初始化
--timezone Asia/Shanghai 设置时区;默认不改
--no-swap / --swap 1G 不创建 swap / 修改大小
--no-firewall 跳过 UFW 配置
--no-fail2ban 跳过 fail2ban
--no-auto-updates 不配置自动更新
--no-basic-tools 跳过常用工具;必要依赖仍安装
--user deploy --ssh-key "公钥全文" 创建密钥账号,并授予免密码 sudo 管理权限
--ssh-key-url https://github.com/你的用户名.keys 从 HTTPS 地址读取自己的公钥
--disable-root-login 验证新账号后关闭 root SSH 登录
--disable-password-auth 验证新账号后关闭 SSH 密码登录
--keep-root-login 保留原有 root 登录配置(默认)
--ssh-port 22 仅校验现有端口,不能用于改端口
-y 跳过普通确认;禁止与关闭登录入口的参数组合使用
--help 查看帮助

关闭 root 或密码登录需同时提供 --user 及自己的公钥。不要把私钥粘贴到命令里。脚本会要求你在第二个终端成功登录并运行 sudo -n true,然后输入 VERIFIED 才会更改 SSH 登录限制。

让 AI 帮你操作

把仓库目录交给 AI 助手,告诉它:

阅读 SKILL.md,先检查我的全新 VPS 环境。用默认设置做基础初始化,保留现在的 SSH 登录方式。遇到错误先说明原因。

AI 需要你另外授权连接目标服务器;此仓库不会自己获取账号和密码。

项目与反馈

维护:Jason 数字生活 · 𝕏 · Telegram

提交问题:请附系统版本、运行参数(去掉敏感值)及错误信息。不要上传密码、私钥、Token 或完整服务器日志。

使用 MIT 许可证。

View this README on GitHub

추천 도구

다른 키워드를 입력하거나 필터를 제거해 보세요.

설치

npx skillfish add jasonbitsmith/vps-first-steps