类别:Linux / 日期:2026-08-05 / 浏览:2479 / 评论:0
VPS 刚开出来,默认状态是裸奔的——root 密码录、防火墙没开(部分厂商会在平台有默认安全组平台级,不是VPS级,需自行查看是否开启)、没有任何防护。全世界的扫描器 24 小时在扫公网 IP,一台没加固的 VPS 平均几分钟就会被尝试爆破。
今天咱们不是"建议你做"的选读内容,是"必须做"的操作手册。所有命令在 Ubuntu 22.04 / Debian 12 上验证通过,可以直接复制粘贴。
连上去
云厂商会给你 IP 地址和 root 密码。Mac / Linux 打开终端:
ssh root@123.45.67.89Windows 推荐 Termius(界面好、跨平台)或 FinalShell(国产、免费、带文件管理)。输入 IP 和端口 22(默认SSH端口),用户名 root,密码填云厂商给的初始密码(购买开通既有)。(阿伟是懒人,用的Windows,操作简单,可视化面)
连上后看到 root@xxxxx:~# 就说明登录成功了。
第一步:更新系统
apt update && apt upgrade -y刚装好的系统有过期的包,可能包含已知安全漏洞,这一步把所有包更新到最新版本,堵掉已知漏洞。等它跑完。
第二步:改 root 密码
passwd云厂商给的初始密码不一定安全——你不确定有没有别人知道。改成你自己的强密码,至少 12 位,混合大小写字母、数字、符号。输入时不显示字符是正常的。(有些平台是可以直接在平台上更改的,怎么方便怎么来)
第三步:建普通用户
日常操作不要用 root。root 权限太大,一条 rm -rf / 就能把系统删没。建一个普通用户,需要的时候临时提权:
adduser deploy设置密码,其他信息回车跳过。然后给 sudo 权限:
usermod -aG sudo deploy以后日常用 deploy 登录,需要 root 权限时命令前加 sudo。这样即使误操作,系统也会要求你确认,多一道保险。
第四步:配 SSH 密钥登录
密码登录有两个问题:记不住,而且会被暴力破解。SSH 密钥更安全也更方便——用密钥对代替密码,机器帮你验证身份,暴力破解在数学上不可行。
在你本地电脑生成密钥对:
ssh-keygen -t ed25519 -C "your_email@example.com"一路回车,默认路径 ~/.ssh/id_ed25519。会生成两个文件:私钥(id_ed25519,不能给别人)和公钥(id_ed25519.pub,放服务器上)。
把公钥传到服务器:
ssh-copy-id deploy@123.45.67.89输入 deploy 的密码,公钥就自动传过去了。
测试一下: 开新终端,ssh deploy@123.45.67.89,不用输密码就进去了,说明密钥配好了。
下一步要禁用密码登录。确认密钥能登录了再继续,否则你会把自己锁在外面。
第五步:禁密码登录、禁 root 登录
sudo nano /etc/ssh/sshd_config找到这两行改掉(前面有 # 的删掉 #):
PermitRootLogin no
PasswordAuthentication no重启 SSH 服务:
sudo systemctl restart ssh从现在起 root 不能直接 SSH 登录,密码登录也关了,只有持有密钥的 deploy 用户能进来。暴力破解彻底失效。
第六步:开防火墙
# 先放行 SSH,否则防火墙一开你就断了
sudo ufw allow 22/tcp
# 放行 Web 服务
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# 开启防火墙
sudo ufw enable输入 y 确认。以后跑其他服务需要开端口,sudo ufw allow 端口号/tcp 就行。
第七步:装 fail2ban(需求可选)
sudo apt install fail2ban -y你已经关了密码登录,SSH 爆破对你无效了。但 fail2ban 还能保护其他服务(比如 Nginx、邮件),而且它几乎不占资源,装上没坏处。它会监控登录日志,有人反复尝试失败就自动封 IP。

基础环境配一下
安全加固做完了,顺手把环境配好。
时区改成北京时间(如果是海外VPS,默认时区不是国内,会有时间不一致情况):
sudo timedatectl set-timezone Asia/Shanghai加 swap—如果你只有 1G 内存,跑 MySQL 这类吃内存的服务容易触发 OOM 被杀。swap 文件拿硬盘当虚拟内存顶着:
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab装常用工具:
sudo apt install -y git wget curl vim htop unzip最后跑一遍检查
# SSH 配置是否生效
sudo sshd -T | grep -E "permitrootlogin|passwordauthentication"
# 应该输出 permitrootlogin no 和 passwordauthentication no
# 防火墙状态
sudo ufw status
# 应该是 active,22/80/443 端口开放
# fail2ban 在不在跑
sudo systemctl is-active fail2ban
# 应该输出 active
# swap 有没有
free -h | grep Swap
# 应该显示 swap 空间
# 时区对不对
date
# 应该是 CST全过,你的 VPS 从裸奔状态变成了安全可用的服务器。接下来就可以开始部署你的应用了。


