#前言

拿到一台新的 VPS,第一件事不是马上部署应用,而是做好基础安全加固和环境配置。这篇文章记录我在 Ubuntu 服务器上的初始化流程,以及日常使用 1Panel 面板管理时的注意事项。

之前用过 aaPanel(宝塔),后来换到 1Panel,整体体验更现代,界面更清爽,且对容器支持更好。


#一、系统初始化

#1.1 更新系统

拿到服务器第一步,先把系统和软件包全部更新到最新:

BASH
1apt update && apt upgrade -y
2apt autoremove -y

#1.2 修改主机名(可选)

BASH
1hostnamectl set-hostname my-server

#1.3 设置时区

BASH
1timedatectl set-timezone Asia/Shanghai
2timedatectl status

#1.4 创建普通用户,禁用 root 直接登录

不要长期使用 root 操作,新建一个普通用户并赋予 sudo 权限:

BASH
1adduser ropean
2usermod -aG sudo ropean

#二、SSH 安全加固

#2.1 配置 SSH 密钥登录

在本地生成密钥对(如果还没有的话):

BASH
1ssh-keygen -t ed25519 -C "my-server"

将公钥上传到服务器:

BASH
1ssh-copy-id -i ~/.ssh/id_ed25519.pub ropean@<服务器IP>

#2.2 修改 SSH 配置

编辑 /etc/ssh/sshd_config,建议修改以下几项:

BASH
1# 禁止 root 直接登录
2PermitRootLogin no
3
4# 禁止密码登录(确认密钥登录正常后再改)
5PasswordAuthentication no
6
7# 修改默认端口(可选,能减少大量扫描噪音)
8Port 2222

修改完重启 SSH 服务:

BASH
1systemctl restart sshd

注意:修改端口后,先不要关闭当前终端,新开一个窗口用新端口测试能否登录,确认没问题再关。

#2.3 配置防火墙 UFW

BASH
1apt install ufw -y
2
3# 默认策略:拒绝入站,允许出站
4ufw default deny incoming
5ufw default allow outgoing
6
7# 放行 SSH(如果改了端口,把 22 换成你的端口)
8ufw allow 2222/tcp
9
10# 放行 HTTP / HTTPS
11ufw allow 80/tcp
12ufw allow 443/tcp
13
14# 启用防火墙
15ufw enable
16ufw status verbose

#三、安装 1Panel

#3.1 一键安装

1Panel 官方提供一键安装脚本,Ubuntu 下执行:

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

安装过程会提示设置:

  • 面板端口(建议改成非默认端口)
  • 初始用户名和密码

安装完成后,根据提示打开浏览器访问面板。

#3.2 放行面板端口

别忘了在 UFW 中放行面板端口:

BASH
1ufw allow <面板端口>/tcp

#3.3 更新 1Panel

1Panel 支持在面板内一键更新,也可以通过命令行:

BASH
11pctl update

#四、1Panel 日常使用

#4.1 网站管理

1Panel 内置 OpenResty(Nginx 增强版)作为 Web 服务器,支持:

  • 一键创建网站,自动配置反向代理
  • 自动申请/续签 Let's Encrypt SSL 证书
  • 伪静态规则管理
  • 访问日志查看

#4.2 容器管理

1Panel 集成了 Docker 管理,可以直接在面板里:

  • 启动、停止、重启容器
  • 查看容器日志和资源占用
  • 管理镜像和网络

对于我的站点(Astro 静态站 + Cloudflare Pages),服务器上主要用 Docker 跑一些自托管服务,1Panel 的容器管理比直接敲命令方便很多。

#4.3 数据库管理

支持 MySQL、MariaDB、PostgreSQL、Redis,可以在面板内:

  • 创建数据库和用户
  • 在线执行 SQL
  • 一键备份/恢复

#4.4 定时任务

面板内可以设置 Cron 任务,比如:

  • 定期清理日志
  • 数据库定时备份
  • 脚本定时执行

#五、日常维护注意事项

#5.1 定期更新系统

BASH
1apt update && apt upgrade -y
2apt autoremove -y

建议每月做一次,安全补丁及时跟上。不建议开启自动更新,有时候自动更新会带来意想不到的兼容性问题。

#5.2 检查磁盘空间

BASH
1df -h
2du -sh /var/log/*   # 检查日志占用

日志是最容易把磁盘撑满的东西,1Panel 面板里也可以直接看磁盘用量。

清理 Docker 无用资源:

BASH
1docker system prune -a

#5.3 检查异常登录

BASH
1# 查看最近登录记录
2last -n 20
3
4# 查看失败的登录尝试
5journalctl -u sshd | grep "Failed" | tail -20

如果 Failed 记录异常多,可以考虑安装 fail2ban:

BASH
1apt install fail2ban -y
2systemctl enable --now fail2ban

#5.4 备份策略

1Panel 内置了备份功能,支持备份到本地、对象存储(S3 兼容)、SFTP 等。

建议至少做到:

  • 网站文件:每周备份一次
  • 数据库:每天备份一次
  • 备份异地存储:不要只备在本机,存到对象存储或另一台机器

#5.5 监控资源

1Panel 面板首页有实时的 CPU、内存、网络、磁盘 IO 监控,平时重点关注:

  • 内存占用是否长期接近上限
  • CPU 是否有异常峰值
  • 出站流量是否有异常(可能被利用发包)

#六、从 aaPanel 迁移到 1Panel 的感受

之前用 aaPanel(宝塔)用了挺久,换到 1Panel 的主要原因:

对比项aaPanel1Panel
界面较老,略乱现代,清爽
容器支持插件形式,体验差原生集成,体验好
国际化主要面向国内面向国际,有英文版
开源情况闭源完全开源(Apache 2.0)
安全记录历史上有数据采集争议目前无相关问题

迁移过程整体顺利,主要是把 Nginx 配置和网站文件重新导入,数据库导出再导入。1Panel 的导入向导做得不错,大部分操作在面板里就能完成。


#小结

一台干净的 Ubuntu 服务器,初始化流程大概是:更新系统 → 创建普通用户 → 配置 SSH 密钥 → 禁用密码登录 → 开启 UFW → 安装 1Panel

日常维护重点:定期更新、关注磁盘、异常登录、定时备份

服务器这东西,配置好了基本不用管,出问题的时候往往是忘了备份或者磁盘悄悄满了。