前言:刚买的 VPS,就像没锁门的家?
恭喜!你拥有了自己的 VPS,一片可以在互联网上自由驰骋的“数字领土”!无论是搭建个人博客、跑个小应用,还是学习 Linux,都酷毙了! 但是,兴奋之余,一个现实问题摆在面前:这台 VPS 安全吗?
刚开通的 VPS,往往就像一个没锁门、窗户大开的家,暴露在互联网这个“大森林”里。无数自动化的扫描器正在网络上寻找这样的“软柿子”,尝试用默认的用户名(比如 root)和弱密码进行登录。一旦被入侵,你的数据可能丢失,服务器可能变成别人的“肉鸡”(被用来攻击别人或挖矿),甚至你的网站会被挂上乱七八糟的内容。想想都可怕!

别担心!我们这篇教程的目标不是让你成为顶级安全专家(那太难了!),而是教会你几招立竿见影的基础防御术。核心思想很简单:提高攻击者的作案成本。让那些自动扫描的“小毛贼”觉得你这块骨头“不好啃”,知难而退。我们要做的,就是给你的 VPS 穿上基础的“盔甲”,让它不再“裸奔”!
当然,如果你实在不喜欢敲命令,可以考虑安装像 1Panel 这样的现代化服务器运维面板,它们提供了图形化界面来完成很多安全设置。但了解一些基础命令总没错,这篇文章就带你走一遍命令行的加固之路。看看下面这张图,就是 Fail2Ban 拦下的部分恶意登录尝试记录,很有成就感吧!

⚠️ 重要提示: 接下来的操作会修改系统配置,虽然我们力求步骤清晰,但误操作仍有风险(比如把自己锁在门外)。强烈建议你在开始前,先去你的 VPS 提供商后台,给服务器创建一个快照(Snapshot)!这是你的后悔药,万一搞砸了,可以一键恢复到操作前的状态。切记!切记!切记!
🛠️ 准备工作:开工前的检查
确保你手头有这些“工具”和信息:
- 你的 VPS: 已经可以通过 IP 地址访问。
- 登录凭证: VPS 的 公网 IP 地址、初始用户名(通常是
root)和初始密码。这些信息一般在 VPS 开通后的邮件或服务商控制台里能找到。 - 终端工具:
- Windows 用户: 推荐使用 PuTTY, XShell, 或者 Windows 10/11 自带的 Windows Terminal (可以直接用 SSH 命令)。
- macOS / Linux 用户: 直接使用系统自带的终端 (Terminal) 就行。
- 网络: 确保你的电脑能上网,可以连接到 VPS。
- (可选) 对 Linux 命令行的初步认知: 知道
cd(切换目录),ls(列出文件) 就更好了。完全不懂?没关系,跟着复制粘贴命令就行,我会解释它们是干嘛的。 - 了解你的系统: 本教程主要以 Ubuntu 22.04 为例。如果你用的是 CentOS 或其他发行版,部分命令(特别是包管理和防火墙)会略有不同,需要注意甄别或自行搜索。你可以登录后通过
cat /etc/os-release命令查看系统信息。
核心步骤:给 VPS 穿上盔甲!
步骤一:换掉“万能钥匙”,加固登录大门!
root 用户是 Linux 系统里的“上帝”,拥有最高权限,也是攻击者最喜欢尝试登录的用户名。初始密码通常也比较简单。所以,第一步就是换掉这把“万能钥匙”,并创建一个我们日常使用的新“钥匙”。
(1) 首次登录:
- 打开你的终端工具。
- 使用 SSH 命令连接 VPS (将
你的VPS_IP地址换成实际的 IP):
ssh root@你的VPS_IP地址
- 按提示输入初始密码并登录成功。
(2) 修改 root 密码:
- 输入命令:
passwd
- 设置复杂的新密码并确认。
(3) 创建日常用户:
- 输入命令:
adduser myuser
- 按提示设置复杂密码并跳过其他信息。
(4) 赋予新用户管理员权限:
- 输入命令:
usermod -aG sudo myuser
(5) 测试新用户权限:
- 使用新用户登录并执行:
sudo apt update
- 确认命令成功执行。
(6) 禁止 root SSH 登录:
- 编辑 SSH 配置文件:
sudo nano /etc/ssh/sshd_config
- 将
PermitRootLogin设为no,保存后重启 SSH 服务。
步骤二:换个“门牌号”,躲开自动扫描!

(1) 选择新端口:
- 选定一个 1024-65535 的非默认端口号。
(2) 修改 SSH 配置:
- 编辑配置文件并更换端口号:
sudo nano /etc/ssh/sshd_config
(3) 防火墙放行新端口:
- 使用 UFW 命令放行:
sudo ufw allow 23456/tcp
(4) 重启 SSH 服务:
sudo systemctl restart sshd
步骤三:筑起“城墙”,只开必要的门!(防火墙 UFW)

(1) 设置默认规则:
sudo ufw default deny incoming
sudo ufw default allow outgoing
(2) 开放必要端口:
sudo ufw allow 23456/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
(3) 启用 UFW:
sudo ufw enable
步骤四:部署“哨兵”,自动驱赶“捣乱者”!(Fail2Ban)

(1) 安装 Fail2Ban:
sudo apt update && sudo apt install fail2ban -y
(2) 配置监控规则:
- 修改
/etc/fail2ban/jail.local:[DEFAULT] bantime = 1h findtime = 10m maxretry = 3 [sshd] enabled = true port = 23456
(3) 重启服务:
sudo systemctl restart fail2ban
步骤五:扔掉密码,用更安全的“钥匙”开门!(SSH 密钥登录)
(1) 生成密钥对:
ssh-keygen -t ed25519 -C "[email protected]"
(2) 上传公钥至 VPS:
ssh-copy-id -p 23456 myuser@你的VPS_IP地址
(3) 禁用密码登录:
- 修改 SSH 配置并重启服务:
PasswordAuthentication no
常见问题与自救指南 (FAQ)
问题 1:改了 SSH 端口/禁用密码后,连不上 VPS 了!怎么办?
- 通过 VPS 控制台的 VNC 或救援模式检查配置和防火墙规则。
- 必要时使用快照恢复。
问题 2:设置了 UFW 防火墙后,网站打不开了?
- 确保允许 HTTP/HTTPS 端口:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
问题 3:Fail2Ban 生效异常或误封 IP?
- 检查日志和规则配置,手动解封 IP 并添加白名单。
进阶技巧:让你的盔甲更坚固!
- 保持系统更新:
sudo apt update && sudo apt upgrade -y
- 禁用不必要的服务:
sudo systemctl stop <服务名>
- 定期检查日志和安全审计。







