---
title: "14.2 VPS 初始化与安全配置"
---
# 14.2 VPS 初始化与安全配置
> **本节目标**:完成服务器的首次连接、系统更新、1Panel 面板安装和安全加固,让你的服务器既好用又安全。
小明打开终端,准备第一次连接自己的服务器。
## 第一步:连接服务器
购买服务器后,你会拿到三样东西:**公网 IP**、**用户名**(通常是 `root`)、**密码**。
::: tip 什么是 SSH?
SSH 就是远程遥控。你的电脑是遥控器,服务器是电视——SSH 是那根看不见的红外线,让你坐在家里操控远方的机器。在第 10 章你已经了解过 SSH 的原理和密钥配置,这里直接上手。
:::
### 方法一:云厂商控制台免密登录(推荐新手)
最简单的方式是直接用云厂商提供的 Web 终端:
1. 打开服务器控制台
2. 进入服务器概览页面
3. 在「远程登录」区域点击「免密登录 / 登录」
4. 浏览器将自动打开 Web 终端,即可输入命令操作


小明点击"免密登录",浏览器弹出一个黑色的终端窗口,命令提示符显示 `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. 点击确定,双击刚刚配置的服务器,连接即可


## 第二步:系统更新
老师傅说:"先别激动,先锁好门窗。裸奔的服务器在互联网上,平均几分钟就会被扫描到。"
登录后第一件事,更新系统软件包:
```bash
apt update && apt upgrade -y
```
小明回车后,屏幕开始刷刷地滚动——一行行软件包名飞速闪过。大概等了两三分钟,更新完成。
这就像给新电脑装完系统后先打补丁。`apt update` 刷新软件列表,`apt upgrade` 安装所有可用更新。


::: 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:端口/安全入口`


::: tip 记住安全入口
1Panel 的访问地址包含一个随机的**安全入口路径**(如 `/abc123`)。别人即使知道你的 IP 和端口,没有这个路径也打不开面板。**务必记下来**。
:::
## 第五步:配置安全组(云厂商防火墙)
在浏览器访问 1Panel 之前,你需要在云厂商的控制台配置**安全组**。
::: tip 什么是安全组?
安全组就是云厂商在机房门口设的保安。默认只放行 SSH(22 号门),其他门全锁着。你装了新应用要用新端口,得先去跟保安说"把 XX 号门也打开"。
:::
必须开放的端口:
| 端口 | 用途 | 协议 |
|------|------|------|
| 22 | SSH 远程连接 | TCP |
| 80 | HTTP 网站访问 | TCP |
| 443 | HTTPS 网站访问 | TCP |
| 面板端口 | 1Panel 访问(安装时设置的端口) | TCP |
小明打开腾讯云控制台,找到「防火墙」页面(不同厂商叫法不同,阿里云叫「安全组」,腾讯云轻量叫「防火墙」)。他按照表格逐个添加规则,每加一条都要选协议、填端口号、选"允许"。操作不难,但第一次做会觉得有点繁琐——习惯了就好。

::: warning 安全组 vs 系统防火墙
云厂商的安全组和服务器系统内的防火墙(如 `ufw`)是**两道门**。两道都要开,流量才能进来。很多新手只开了一道,然后怎么都访问不了,排查半天。
:::
配置完安全组后,在浏览器里打开 1Panel 的访问地址,输入用户名和密码登录。


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

## 第六步:安装 Docker 和配置镜像加速
登录 1Panel 面板后,系统会引导你安装 Docker。点击一键安装即可。
安装完 Docker 后,**配置镜像加速**非常重要。和你给 npm 配淘宝镜像是一回事——Docker Hub 是国外的应用仓库,不配加速源的话下载速度感人。安装 Docker 时 1Panel 会提示你是否自动配置镜像加速(按 y 即可),之后也可以在「容器 > 配置」中手动修改。
小明配置好加速后试着装了个应用,几秒就好了——之前不配加速的时候等了十分钟都没动静。
::: warning 镜像加速是国内必做项
不配置镜像加速,你在安装应用时大概率会卡在"拉取镜像"这一步,等半天然后超时失败。配置好加速后,几秒钟就能拉完。
:::
## 第七步:服务器安全加固
老师傅说:"以下几步不是可选项,是**必做项**。"
小明有点不理解:"我的服务器上又没什么重要数据,谁会来攻击我?"老师傅打开了 1Panel 的日志页面,指着一堆来自世界各地的 SSH 登录失败记录:"看到了吗?你的服务器上线不到一小时,已经有几百次暴力破解尝试了。这些是自动化的扫描脚本,不管你是谁,只要端口开着就会来试。"
小明看了一眼那些 IP 地址,来自俄罗斯、巴西、越南……"好吧,锁门窗确实有必要。"
### 7.1 启用 1Panel 防火墙
在 1Panel 中打开:`系统 → 防火墙`
- 开启防火墙,并添加规则,放行刚刚在云厂商那里开放的端口(80、443、面板端口等)


### 7.2 修改 SSH 默认端口
默认的 22 端口是黑客扫描的重点目标。在 1Panel 里就能改:
1. 进入「系统 > SSH 管理」
2. 找到「连接端口」,点击旁边的「设置」按钮,在弹窗中改成一个不常见的端口(如 `24324`)

改完之后,记得在云厂商安全组和 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 后,小明再看日志,发现那些暴力破解的 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...
```

::: tip 公钥 vs 私钥
- **公钥**(`id_rsa.pub`)可以公开,上传到服务器
- **私钥**(`id_rsa`)必须妥善保存,不可泄露。私钥就是你的"钥匙",丢了就等于把家门钥匙丢了
:::
#### 将公钥上传到服务器
在 1Panel 中打开:`系统 → SSH 管理`
设置:
| 项 | 设置 |
|----|------|
| 密钥认证 | ✅ 开启 |
| 授权密钥 | 点击「授权密钥」按钮,将刚复制的公钥粘贴进去 |
| 密码认证 | ❌ 关闭(先确认密钥登录成功再关) |

保存后,**先不要关闭当前的 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. 保存即可

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 一键安装各种应用。
:::