首页 › 文章 › Ubuntu 入门设置

Ubuntu VPS 入门设置:15 分钟完成基础安全加固

更新于 2026 年 10 月 28 日 · 阅读约 8 分钟

VPS 一旦拥有公网 IP,各种机器人就会开始尝试通过 SSH 登录。在安装任何应用之前,先按以下步骤加固你的 Ubuntu 服务器。适用于任何服务商:Hostinger、Contabo、Hetzner、Vultr、DigitalOcean 或 Oracle。

开始之前:在另一个窗口测试修改时,保持当前的 SSH 会话不要关闭。这样即使 SSH 或防火墙配置出错,你仍然可以修正。大多数服务商的控制面板也提供应急控制台。

1. 登录 VPS 并更新系统

使用服务商发给你的 IP 和密码:

ssh root@VPS-IP
apt update && apt upgrade -y

如果内核有更新,用 reboot 重启后重新连接。

2. 创建自己的用户

一直用 root 操作很危险。创建一个有管理员权限的用户:

adduser yourname
usermod -aG sudo yourname

3. 配置 SSH 密钥登录

在你自己的电脑上(Windows PowerShell、macOS 或 Linux),如果还没有密钥对,先生成一个:

ssh-keygen -t ed25519

把公钥复制到 VPS。macOS 和 Linux:

ssh-copy-id yourname@VPS-IP

Windows 上,复制 C:\Users\你的用户名\.ssh\id_ed25519.pub 的内容,然后在 VPS 上粘贴到 /home/yourname/.ssh/authorized_keys 文件中:

sudo -u yourname mkdir -p /home/yourname/.ssh
sudo -u yourname nano /home/yourname/.ssh/authorized_keys
chmod 700 /home/yourname/.ssh
chmod 600 /home/yourname/.ssh/authorized_keys

在新窗口中测试:ssh yourname@VPS-IP 应该无需输入服务器密码就能登录。

4. 禁用 root 登录和密码登录

确认密钥可用之后再做这一步。创建一个配置文件:

sudo nano /etc/ssh/sshd_config.d/99-security.conf

内容如下:

PermitRootLogin no
PasswordAuthentication no

应用配置,并在另一个窗口测试登录:

sudo systemctl restart ssh

部分服务商的系统镜像会在 /etc/ssh/sshd_config.d/ 中自带配置文件,重新启用密码登录。如果密码登录仍然有效,用 sudo sshd -T | grep -i passwordauthentication 检查这些文件。

5. 启用防火墙(UFW)

只开放你用到的端口。以 Web 服务器为例:

sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status

部分服务商的面板里也有防火墙(Hostinger、Hetzner、Oracle)。例如在 Oracle Cloud 上,还需要在网络的 Security List 中开放端口。

注意 Docker:用 docker run -p 发布的端口会绕过 UFW。内部服务只发布到 127.0.0.1(例如 -p 127.0.0.1:5678:5678),再通过反向代理在 443 端口对外提供。

6. 安装 Fail2ban

它会封禁多次登录失败的 IP:

sudo apt install -y fail2ban
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd

7. 启用自动安全更新

sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

8. 创建 swap(建议 4 GB 及以下内存的 VPS 使用)

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

9. 设置时区

换成你自己的时区(可用 timedatectl list-timezones 查看列表):

sudo timedatectl set-timezone Asia/Shanghai

10. 配置备份

开启服务商的备份或快照功能;重要数据还要在服务器之外另存一份。没有备份,安全措施的意义就大打折扣。

完成了,接下来呢?

你的服务器已经具备基础安全防护。现在可以安装 Docker、CloudPanel 之类的面板,或者按照我们的指南在 VPS 上运行 n8n。

还没有 VPS? 查看以美元计价、标明数据中心位置的对比。
查看对比 →