所有文章
发布于 2026 年 5 月 9 日· 10 分钟阅读

新 VPS 到手第一件事:一键初始化脚本

VPSLinux安全ShellzshtmuxDocker

买完 VPS 登上去,你面对的是一台空白的机器。

不做任何配置,它每分钟都在被互联网上的机器人扫描和尝试登录。我们的服务器开放不到三天,SSH 暴力破解记录就超过了 28,000 次,单个 IP 打了 14,000 次以上。

这篇文章提供一个一键初始化脚本,涵盖安全加固、现代 CLI 工具、开发环境配置,适配主流 Linux 发行版。


一键运行

curl -fsSL https://raw.githubusercontent.com/baiye-morty/baiye-scripts/main/vps-init.sh | bash

脚本需要 root 权限。运行前会要求你粘贴 SSH 公钥,留空跳过(前提是已有其他方式登录)。

源码:github.com/baiye-morty/baiye-scripts


脚本做了什么

安全加固

禁用 SSH 密码登录

默认情况下服务器允许用密码 SSH 登录,这是暴力破解的入口。脚本会将其关闭,只允许密钥登录:

PasswordAuthentication no
PermitRootLogin prohibit-password

fail2ban — 自动封禁暴力破解

安装后,10 分钟内 SSH 登录失败 5 次,该 IP 自动封禁 1 小时:

fail2ban-client status sshd
# 查看已封禁的 IP 列表

防火墙

只开放必要端口:SSH(22)、HTTP(80)、HTTPS(443),其余全部拒绝。Ubuntu/Debian 用 UFW,RHEL/Fedora 用 firewalld。


系统配置

时区:设置为 Asia/Shanghai,让日志时间可读。

Swap:内存不足 2GB 时自动创建 2GB swap 文件,避免 OOM 杀掉进程。swappiness=10 让系统尽量用内存而不是 swap。


基础工具

工具 用途
htop 交互式进程监控,比 top 好用
ncdu 磁盘使用分析,找大文件神器
mtr 网络路由追踪,比 traceroute 直观
jq 命令行 JSON 处理,调试 API 必备
tree 目录结构可视化

现代 CLI 工具

这些是对传统命令的现代替代,用过就回不去:

工具 替代 亮点
bat cat 语法高亮、行号、Git 变更显示
fd find 语法简单,速度快,默认忽略 .git
rg(ripgrep) grep 极速全文搜索,自动忽略 .gitignore
fzf 模糊搜索,Ctrl+R 搜历史命令神器
zoxide cd 记录访问历史,z proj 直接跳到常用目录
duf df 磁盘使用一览,颜色区分、单位自动换算
tldr man 命令速查手册,只看常用例子
lazydocker docker 命令 Docker TUI,不用记命令就能管容器

几个常用例子:

# 搜索当前目录所有包含 "error" 的文件
rg "error"

# 找所有 .go 文件
fd -e go

# 查看磁盘使用
duf

# 跳到之前去过的目录(不用记完整路径)
z baiye

# tldr 查命令用法
tldr tar
tldr docker

Docker

使用官方安装脚本,支持所有主流发行版:

curl -fsSL https://get.docker.com | sh

zsh + oh-my-zsh

脚本安装 zsh 并配置:

  • zsh-autosuggestions:根据历史记录自动补全,按 采纳
  • zsh-syntax-highlighting:命令正确时高亮绿色,错误时红色
  • fzf 集成Ctrl+R 模糊搜索历史,Ctrl+T 搜索文件

SSH 登录时自动进入 tmux,断线后 session 保持,重连直接 attach。


tmux 配置

主要改动:

快捷键 功能
Ctrl+A 前缀键(替代默认的 Ctrl+B,更顺手)
`Ctrl+A + `
Ctrl+A + - 上下分屏
鼠标 可以点击切换 pane,滚轮翻历史

vim 配置

基础但够用:相对行号、语法高亮、4 空格缩进、鼠标支持、搜索高亮。


脚本支持的发行版

发行版 版本
Ubuntu 20.04 / 22.04 / 24.04
Debian 11 / 12
CentOS / Rocky / AlmaLinux 8 / 9
Fedora 36+
Arch Linux 滚动更新

运行之后

重新 SSH 登录,你会看到:

  • shell 变成 zsh,命令有颜色和自动补全
  • 自动进入 tmux session
  • zbatfdrg 等命令直接可用

查看 fail2ban 状态:

fail2ban-client status sshd

查看防火墙规则:

ufw status          # Ubuntu/Debian
firewall-cmd --list-all  # RHEL/Fedora

延伸阅读