OVEROUTESOVEROUTES
首页
阅读须知
  • 总览
  • 选购要点
  • 协议详解
  • 客户端使用
  • 概述
  • IP 与线路
  • 选型指南
  • 选购参考
  • 基础部署
  • 安全加固
主站
配置
首页
阅读须知
  • 总览
  • 选购要点
  • 协议详解
  • 客户端使用
  • 概述
  • IP 与线路
  • 选型指南
  • 选购参考
  • 基础部署
  • 安全加固
主站
配置
  • 知识基础

    • VPS 总览
    • IP 质量与线路入门
    • VPS 选型与线路
  • 选购参考

    • VPS 选购参考
    • DMIT
    • 搬瓦工 BandwagonHost
    • VMISS
    • BageVM
  • 实践操作

    • VPS 基础部署
    • VPS 安全加固

VPS 基础部署

拿到一台新的 VPS 后,不要急着部署服务。正确的做法是先完成系统初始化和安全加固,确保你的服务器在一个安全、可控的状态下运行。本文将一步步带你完成从系统初始化到基础运维的全流程。

前置准备

在开始之前,确保你已经具备:

  • 一台已购买的 VPS(推荐 Debian / Ubuntu 系统)
  • SSH 客户端(Windows 推荐 Termius 或 Windows Terminal + OpenSSH;macOS / Linux 直接使用终端)
  • 由服务商提供的 root 密码或 SSH Key

第一步:首次连接

通过 SSH 连接你的服务器:

ssh root@你的服务器IP

如果是首次连接,系统会提示你确认服务器指纹(fingerprint),输入 yes 确认。

安全提醒

首次连接时,建议记录服务器的 SSH 指纹。如果后续连接提示指纹变化,可能意味着服务器被重装或遭到中间人攻击。

第二步:系统初始化

2.1 更新系统

首次登录后,立即更新系统和软件包:

# Debian / Ubuntu
apt update && apt upgrade -y

# CentOS / RHEL
yum update -y

2.2 设置主机名

为你的服务器设置一个有意义的主机名:

hostnamectl set-hostname my-vps

2.3 设置时区

将时区设置为你偏好的时区(以 UTC 或上海为例):

# 设置为 UTC
timedatectl set-timezone UTC

# 或者设置为上海时区
timedatectl set-timezone Asia/Shanghai

2.4 安装基础工具

安装一些常用的工具:

# Debian / Ubuntu
apt install -y curl wget vim git htop ufw fail2ban unzip

# CentOS / RHEL
yum install -y curl wget vim git htop firewalld fail2ban unzip

第三步:创建普通用户

重要

不要长期使用 root 用户操作服务器。创建一个普通用户并赋予 sudo 权限,日常操作使用普通用户登录。

# 创建用户(替换 yourname 为你的用户名)
adduser yourname

# 将用户添加到 sudo 组
usermod -aG sudo yourname

# 切换到新用户测试
su - yourname
sudo whoami  # 应输出 root

第四步:配置 SSH Key 登录

密码登录既不方便也不安全。配置 SSH Key 登录后可以同时解决这两个问题。

4.1 在本地生成 SSH 密钥对

在你的本地电脑上执行:

# 生成 Ed25519 密钥对(推荐)
ssh-keygen -t ed25519 -C "your_email@example.com"

# 或者生成 RSA 密钥对
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

按提示操作,建议设置一个 passphrase(密码短语)来保护私钥。

4.2 将公钥上传到服务器

# 方法一:使用 ssh-copy-id(推荐)
ssh-copy-id -i ~/.ssh/id_ed25519.pub yourname@你的服务器IP

# 方法二:手动复制
cat ~/.ssh/id_ed25519.pub
# 复制输出内容,然后在服务器上:
mkdir -p ~/.ssh
echo "粘贴的公钥内容" >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

4.3 验证 Key 登录

ssh yourname@你的服务器IP
# 如果能直接登录(或只需输入 passphrase),说明配置成功

第五步:加固 SSH 配置

SSH Key 配置成功后,加固 SSH 服务配置:

sudo vim /etc/ssh/sshd_config

修改以下关键配置项:

# 禁用 root 远程登录
PermitRootLogin no

# 禁用密码登录(确保 Key 登录已经配置成功!)
PasswordAuthentication no

# 禁用空密码
PermitEmptyPasswords no

# 修改默认端口(可选,但建议修改为非 22 端口)
Port 2222

# 限制登录尝试次数
MaxAuthTries 3

# 设置登录超时
LoginGraceTime 30

# 仅允许特定用户登录
AllowUsers yourname

注意

在禁用密码登录之前,务必确认 SSH Key 登录已经可以正常工作!否则你可能被锁在服务器外面。建议保持当前 SSH 会话不要关闭,开一个新终端窗口测试 Key 登录。

重启 SSH 服务使配置生效:

sudo systemctl restart sshd

第六步:配置防火墙

使用 UFW(Debian / Ubuntu)

# 设置默认策略
sudo ufw default deny incoming
sudo ufw default allow outgoing

# 允许 SSH(如果修改了端口,替换为你的端口号)
sudo ufw allow 2222/tcp

# 允许 HTTP 和 HTTPS(如果需要)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# 启用防火墙
sudo ufw enable

# 查看状态
sudo ufw status verbose

使用 firewalld(CentOS)

# 启动 firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld

# 添加允许的端口
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

# 移除默认的 SSH 端口(如果已修改)
sudo firewall-cmd --permanent --remove-service=ssh

# 重新加载
sudo firewall-cmd --reload

第七步:配置 Fail2Ban

Fail2Ban 可以自动封禁暴力破解 SSH 的 IP:

sudo vim /etc/fail2ban/jail.local

添加以下内容:

[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 3

[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 86400

启动 Fail2Ban:

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

# 查看状态
sudo fail2ban-client status sshd

基础运维

服务器上线后,日常运维同样重要:

自动安全更新

配置自动安全更新,确保系统漏洞能及时修复:

# Debian / Ubuntu
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

监控与告警

  • htop:实时查看 CPU、内存、进程状态
  • df -h:检查磁盘使用情况
  • vnstat:监控网络流量
  • UptimeRobot / Uptime Kuma:外部监控服务,检测服务是否在线

推荐部署 Uptime Kuma 作为自托管的监控方案:

# 使用 Docker 快速部署
docker run -d --restart=always -p 3001:3001 \
  -v uptime-kuma:/app/data \
  --name uptime-kuma \
  louislam/uptime-kuma:1

定期备份

配置自动备份是防止数据丢失的最后一道防线:

  • 配置文件备份:将 /etc/ 下的重要配置文件定期备份到本地或对象存储
  • 数据备份:使用 rsync 或 rclone 将重要数据同步到异地存储
  • 快照备份:部分服务商提供 VPS 快照功能,建议在重大变更前创建快照
# 使用 rclone 同步到对象存储(示例)
rclone sync /path/to/backup remote:bucket-name/backup/

部署完成后的检查清单

  • [ ] 系统已更新到最新版本
  • [ ] 已创建普通用户并配置 sudo
  • [ ] SSH Key 登录已配置并正常工作
  • [ ] root 远程登录已禁用
  • [ ] 密码登录已禁用
  • [ ] SSH 端口已修改
  • [ ] 防火墙已启用并配置规则
  • [ ] Fail2Ban 已安装并运行
  • [ ] 自动安全更新已开启
  • [ ] 监控方案已部署
  • [ ] 备份策略已配置
最近更新: 2026/4/8 12:27
Next
VPS 安全加固