---
title: "14.2 VPS 初始化与安全配置"
---

# 14.2 VPS 初始化与安全配置

> **本节目标**：完成服务器的首次连接、系统更新、1Panel 面板安装和安全加固，让你的服务器既好用又安全。

小明打开终端，准备第一次连接自己的服务器。

## 第一步：连接服务器

购买服务器后，你会拿到三样东西：**公网 IP**、**用户名**（通常是 `root`）、**密码**。

::: tip 什么是 SSH？
SSH 就是远程遥控。你的电脑是遥控器，服务器是电视——SSH 是那根看不见的红外线，让你坐在家里操控远方的机器。在第 10 章你已经了解过 SSH 的原理和密钥配置，这里直接上手。
:::

### 方法一：云厂商控制台免密登录（推荐新手）

最简单的方式是直接用云厂商提供的 Web 终端：

1. 打开服务器控制台
2. 进入服务器概览页面
3. 在「远程登录」区域点击「免密登录 / 登录」
4. 浏览器将自动打开 Web 终端，即可输入命令操作

![腾讯云轻量服务器控制台概览](/images/Advanced/14-vps-ops-deploy/14-2-server-console-01.png)

![Web 终端入口](/images/Advanced/14-vps-ops-deploy/14-2-web-terminal-02.png)

小明点击"免密登录"，浏览器弹出一个黑色的终端窗口，命令提示符显示 `root@xxx:~#`——"我进来了！"他试着输入 `ls`，屏幕上什么都没有——空的。又输入 `pwd`，显示 `/root`。这就是他的服务器，一个干干净净的空系统，等着他往里面装东西。

### 方法二：本地终端 SSH 登录

如果你想在本地终端操作（后续会更方便），打开你电脑的终端（Windows 用 PowerShell，Mac 用 Terminal），输入：

```bash
ssh root@你的服务器IP
```

首次连接会看到一段指纹确认提示：

```
The authenticity of host '1.2.3.4' can't be established.
ED25519 key fingerprint is SHA256:xxxxx...
Are you sure you want to continue connecting (yes/no)?
```

输入 `yes` 回车，然后输入密码。看到命令提示符变成 `root@xxx:~#` 就成功了。



::: tip 密码输入看不见是正常的
在终端输入密码时，屏幕上不会显示任何字符（连星号都没有）。这是 Linux 的安全设计，放心输入然后回车就行。
:::

### 方法三：FinalShell（日常管理更方便）

如果你希望有更好用的终端界面 + 文件管理器，可以使用 FinalShell（官网：https://www.hostbuf.com/t/988.html）。

1. 打开 FinalShell → 新建连接
2. 主机：服务器公网 IP
3. 用户名：`root`
4. 密码：购买服务器时设置的密码
5. 点击确定，双击刚刚配置的服务器，连接即可

![FinalShell 连接界面](/images/Advanced/14-vps-ops-deploy/14-2-finalssh-03.png)

![SSH 连接成功界面](/images/Advanced/14-2-ssh-success-04.png)

## 第二步：系统更新

老师傅说："先别激动，先锁好门窗。裸奔的服务器在互联网上，平均几分钟就会被扫描到。"

登录后第一件事，更新系统软件包：

```bash
apt update && apt upgrade -y
```

小明回车后，屏幕开始刷刷地滚动——一行行软件包名飞速闪过。大概等了两三分钟，更新完成。

这就像给新电脑装完系统后先打补丁。`apt update` 刷新软件列表，`apt upgrade` 安装所有可用更新。

![apt update 过程](/images/Advanced/14-vps-ops-deploy/14-2-apt-update-05.png)

![apt upgrade 过程](/images/Advanced/14-vps-ops-deploy/14-2-apt-upgrade-06.png)

::: tip 更新过程中的配置提示
如果看到弹出一些配置页面，直接按回车保持默认就好。更新完成后，服务器可能会提示需要重启，这很正常。如果中途断开连接，重新连一次即可。
:::

## 第三步：安装常用工具

把这一条命令复制到终端内，会为你安装后续管理服务器会反复用到的小工具：

```bash
apt install vim git curl wget htop unzip rsync jq git-lfs lsof nload net-tools dnsutils -y
```

这些工具的作用：

| 工具 | 作用 | 使用场景举例 |
|------|------|-------------|
| vim | 终端文本编辑器 | 编辑配置文件 |
| git | 版本控制工具 | 拉取代码 / 推送代码 |
| curl / wget | 下载文件与测试接口 | API 调试、网络调试 |
| htop | 可视化查看系统占用 | 查看 CPU、内存使用情况 |
| unzip | 解压 zip 文件 | 上传压缩包后解压 |
| rsync | 高效同步与备份 | 一键打包站点搬迁 |
| jq | JSON 格式化工具 | 处理 API 或日志输出 |
| lsof | 查看端口占用 | 排查服务冲突 |
| nload | 监控实时网络流量 | 判断带宽是否被打爆 |
| net-tools | ifconfig / netstat 工具集 | 网络排障 |
| dnsutils | dig / nslookup | 域名解析检查 |

小明看着这一串命令，心想"这么多工具，我都用得上吗？"老师傅说："现在不一定用，但等你遇到问题时，这些工具能救命。"

## 第四步：安装 1Panel 面板

1Panel 是一个现代化的 Linux 服务器管理面板，能让你通过网页界面管理服务器，不用记一堆命令。你已经用过云厂商的网页控制台买服务器——1Panel 就是把类似的管理界面装到你自己的服务器上，在浏览器里点点就能管理，不用每件事都敲命令。

一行命令安装：

```bash
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && bash quick_start.sh
```

安装过程中会让你设置：

- **面板端口**：建议改成一个不常见的端口（如 `29876`），不要用默认的
- **面板用户名**：不要用 `admin`
- **面板密码**：设置一个强密码

安装完成后，终端会显示面板的访问地址：`http://你的IP:端口/安全入口`

![1Panel 安装过程](/images/Advanced/14-vps-ops-deploy/14-2-1panel-install-07.png)

![1Panel 安装完成](/images/Advanced/14-vps-ops-deploy/14-2-1panel-install-10.png)

::: tip 记住安全入口
1Panel 的访问地址包含一个随机的**安全入口路径**（如 `/abc123`）。别人即使知道你的 IP 和端口，没有这个路径也打不开面板。**务必记下来**。
:::

## 第五步：配置安全组（云厂商防火墙）

在浏览器访问 1Panel 之前，你需要在云厂商的控制台配置**安全组**。

::: tip 什么是安全组？
安全组就是云厂商在机房门口设的保安。默认只放行 SSH（22 号门），其他门全锁着。你装了新应用要用新端口，得先去跟保安说"把 XX 号门也打开"。
:::

必须开放的端口：

| 端口 | 用途 | 协议 |
|------|------|------|
| 22 | SSH 远程连接 | TCP |
| 80 | HTTP 网站访问 | TCP |
| 443 | HTTPS 网站访问 | TCP |
| 面板端口 | 1Panel 访问（安装时设置的端口） | TCP |

小明打开腾讯云控制台，找到「防火墙」页面（不同厂商叫法不同，阿里云叫「安全组」，腾讯云轻量叫「防火墙」）。他按照表格逐个添加规则，每加一条都要选协议、填端口号、选"允许"。操作不难，但第一次做会觉得有点繁琐——习惯了就好。

![腾讯云防火墙添加规则](/images/Advanced/14-vps-ops-deploy/14-2-security-group-14.png)

::: warning 安全组 vs 系统防火墙
云厂商的安全组和服务器系统内的防火墙（如 `ufw`）是**两道门**。两道都要开，流量才能进来。很多新手只开了一道，然后怎么都访问不了，排查半天。
:::

配置完安全组后，在浏览器里打开 1Panel 的访问地址，输入用户名和密码登录。

![1Panel 登录页面](/images/Advanced/14-vps-ops-deploy/14-2-1panel-login-11.png)

![1Panel 主界面](/images/Advanced/14-vps-ops-deploy/14-2-1panel-dashboard-12.png)

小明看到了一个网页版的控制台——"这比命令行友好多了。"面板首页显示着服务器的实时状态——CPU 使用率、内存占用、磁盘空间、网络流量，一目了然。左侧菜单有应用商店、容器管理、数据库、网站、计划任务……小明点了一圈，感觉像是给服务器装了一个操作系统的桌面。

![容器监控面板](/images/Advanced/14-3-1-monitor-10.png)

## 第六步：安装 Docker 和配置镜像加速

登录 1Panel 面板后，系统会引导你安装 Docker。点击一键安装即可。

安装完 Docker 后，**配置镜像加速**非常重要。和你给 npm 配淘宝镜像是一回事——Docker Hub 是国外的应用仓库，不配加速源的话下载速度感人。安装 Docker 时 1Panel 会提示你是否自动配置镜像加速（按 y 即可），之后也可以在「容器 > 配置」中手动修改。

小明配置好加速后试着装了个应用，几秒就好了——之前不配加速的时候等了十分钟都没动静。

::: warning 镜像加速是国内必做项
不配置镜像加速，你在安装应用时大概率会卡在"拉取镜像"这一步，等半天然后超时失败。配置好加速后，几秒钟就能拉完。
:::

## 第七步：服务器安全加固

老师傅说："以下几步不是可选项，是**必做项**。"

小明有点不理解："我的服务器上又没什么重要数据，谁会来攻击我？"老师傅打开了 1Panel 的日志页面，指着一堆来自世界各地的 SSH 登录失败记录："看到了吗？你的服务器上线不到一小时，已经有几百次暴力破解尝试了。这些是自动化的扫描脚本，不管你是谁，只要端口开着就会来试。"

小明看了一眼那些 IP 地址，来自俄罗斯、巴西、越南……"好吧，锁门窗确实有必要。"

<SecurityHardening />

<ServerSetupChecklist />

### 7.1 启用 1Panel 防火墙

在 1Panel 中打开：`系统 → 防火墙`

- 开启防火墙，并添加规则，放行刚刚在云厂商那里开放的端口（80、443、面板端口等）

<FirewallRuleBuilder />

![1Panel 防火墙配置](/images/Advanced/14-vps-ops-deploy/14-2-firewall-21.png)

![1Panel 防火墙规则列表](/images/Advanced/14-vps-ops-deploy/14-2-firewall-rules-22.png)

### 7.2 修改 SSH 默认端口

默认的 22 端口是黑客扫描的重点目标。在 1Panel 里就能改：

1. 进入「系统 > SSH 管理」
2. 找到「连接端口」，点击旁边的「设置」按钮，在弹窗中改成一个不常见的端口（如 `24324`）

![1Panel SSH 管理页面](/images/Advanced/14-vps-ops-deploy/14-2-ssh-port-19.png)

改完之后，记得在云厂商安全组和 1Panel「系统 > 防火墙」里都**开放新端口**，然后用新端口连接测试：

```bash
ssh -p 24324 root@你的服务器IP
```

小明打开一个新的终端窗口，用新端口连接——成功了。他松了口气，然后回到云厂商控制台把旧的 22 端口规则删掉。

::: warning 先测试再关旧端口
修改 SSH 端口后，**不要急着关闭 22 端口**。先用新端口连接成功了，再回去关 22。否则一旦新端口配置有误，你就把自己锁在门外了。
:::

### 7.3 开启 Fail2Ban

::: tip 什么是 Fail2Ban？
Fail2Ban 就是自动拉黑。有人连续输错密码 5 次，直接把他的 IP 封掉——就像银行卡连续输错密码会被锁定一样。
:::

进入 1Panel「工具箱 > Fail2Ban」，如果显示红色的"未安装"，点击旁边的「立即安装」按钮，1Panel 会自动帮你装好。安装完成后就能在面板里可视化管理封禁规则了。默认配置已经够用——SSH 连续失败 5 次就封禁 IP。

![Fail2ban 安装](/images/Advanced/14-vps-ops-deploy/14-2-fail2ban-24.png)

记得把监听端口改成你之前设置的端口。

![Fail2ban 配置](/images/Advanced/14-vps-ops-deploy/14-2-fail2ban-25.png)

装完 Fail2Ban 后，小明再看日志，发现那些暴力破解的 IP 已经被自动封禁了。"就像给门口装了个自动锁——试错太多次，直接不让你进。"

### 7.4 配置 SSH 密钥登录（代替密码）

密码再复杂也有被暴力破解的风险。SSH 密钥登录是更安全的方式——只有拥有私钥的设备才能登录，密码暴力破解完全失效。

#### 在本地电脑生成 SSH 密钥

Windows 用户打开 PowerShell，Mac/Linux 用户打开终端，执行：

```bash
ssh-keygen -t rsa -b 4096
```

连续按几次回车即可（使用默认路径和空密码）。

生成成功后，查看公钥内容：

```bash
cat ~/.ssh/id_rsa.pub
```

你会看到类似这样的内容（这就是「公钥」）：

```
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...
```

![Windows PowerShell 生成 SSH 密钥](/images/Advanced/14-vps-ops-deploy/14-2-ssh-keygen-15.png)

::: tip 公钥 vs 私钥
- **公钥**（`id_rsa.pub`）可以公开，上传到服务器
- **私钥**（`id_rsa`）必须妥善保存，不可泄露。私钥就是你的"钥匙"，丢了就等于把家门钥匙丢了
:::

#### 将公钥上传到服务器

在 1Panel 中打开：`系统 → SSH 管理`

设置：

| 项 | 设置 |
|----|------|
| 密钥认证 | ✅ 开启 |
| 授权密钥 | 点击「授权密钥」按钮，将刚复制的公钥粘贴进去 |
| 密码认证 | ❌ 关闭（先确认密钥登录成功再关） |

![1Panel SSH 密钥管理](/images/Advanced/14-vps-ops-deploy/14-2-ssh-key-mgr-16.png)

保存后，**先不要关闭当前的 SSH 连接**。打开一个新的终端窗口，用密钥登录测试：

```bash
ssh -p 24324 root@你的服务器IP
```

如果能直接登录（不需要输入密码），说明密钥配置成功。这时再回到 1Panel 关闭「密码认证」，点击「重启 SSH 服务」。

小明先确认密钥登录正常，然后关掉密码认证。他用新终端窗口测试了一下——密钥登录成功，密码登录被拒绝。"这下暴力破解密码完全没用了。"

::: warning 先测试再禁用密码
禁用密码登录前，**务必先确认密钥登录成功**。否则一旦配置有误，你就把自己锁在门外了，只能通过云厂商的 Web 终端进去修复。
:::

### 7.5 启用 WAF（可选，但强烈推荐）

如果后续为网站绑定了域名，可以直接在 1Panel 高级功能免费开启 **WAF（Web 应用防火墙）**。它的主要作用是帮助网站自动拦截常见的恶意请求，例如扫描、爆破、SQL 注入等，属于"默认加一层锁"的操作。

启用方式：

1. 在 1Panel 中进入：`高级功能 → WAF`
2. 切换到「全局设置」
3. 启用「访问频率限制」（防止恶意刷新、CC 攻击）
4. 保存即可

![1Panel WAF 配置](/images/Advanced/14-vps-ops-deploy/14-2-waf-28.png)

WAF 不会影响正常访问，即便你不做额外安全配置，也能显著减少恶意流量。

## 日常维护清单

服务器不是装好就不管了。好消息是，大部分维护操作在 1Panel 面板里都能完成：

| 操作 | 在 1Panel 里怎么做 | 命令行替代 |
|------|-------------------|-----------|
| 查看系统负载 | 面板首页仪表盘，或「系统 > 监控」查看详细趋势图 | `htop` |
| 检查磁盘空间 | 面板首页底部的磁盘用量 | `df -h` |
| 清理 Docker 垃圾 | 面板终端里执行清理命令 | `docker system prune -f` |
| 系统更新 | 面板终端里执行 | `apt update && apt upgrade -y` |

---

## 本节总结

| 已完成 | 意义 |
|--------|------|
| 连接服务器 | 可以远程操作服务器 |
| 系统更新 | 安全性和兼容性更高 |
| 安装常用工具 | 具备基本开发和排错能力 |
| 安装 1Panel | 可视化管理服务器 |
| 配置安全组 | 开放必要端口，阻挡其他流量 |
| 启用防火墙 + Fail2Ban | 阻挡恶意访问 |
| 修改 SSH 端口 | 减少暴力破解风险 |
| 启用密钥登录 | 从根源上杜绝密码爆破 |
| 启用 WAF | 减少恶意流量 |

> **安全不是复杂，是该做的几步必须做。做到这一章，你的服务器就不再是「裸奔」状态。**

::: info 下一步
服务器准备好了，安全也加固了。接下来进入正题——[14.3.1 应用商店与 Docker 基础](./03-1-docker-apps.md)，学习如何用 1Panel 一键安装各种应用。
:::
