前言

最近我开始真正折腾一台属于自己的 Linux 云服务器。

以前对“服务器”的理解其实比较模糊。在我看来,它无非就是一台一直开着、可以拿来部署网站的电脑。真正开始使用之后才发现,服务器本身其实并没有那么神秘——它依然是一台计算机,只不过通常没有显示器,也不会直接坐在它面前操作,而是通过网络远程连接。

而相比单纯部署一个网站,我更感兴趣的是把它当成一个长期存在的 Linux 实验环境

毕竟静态博客已经可以免费放在 GitHub Pages 上,如果专门买一台服务器,却只是用来托管几个 HTML 页面,似乎有点浪费。

所以这几天,我开始尝试理解这台服务器真正能做些什么。


我的第一台 Linux 服务器

服务器安装的是 Ubuntu。

登录之后看到的不是 Windows 熟悉的桌面,而是一行简单的命令行:

1
evan@my-first-trail:~$

从这一刻开始,这台服务器的绝大部分操作都要通过终端完成。

刚开始其实会有一点不习惯,但用了一段时间之后反而发现,这种方式非常直接。

安装软件:

1
sudo apt install xxx

查看系统状态:

1
free -h

查看磁盘:

1
df -h

查看正在运行的服务:

1
systemctl status xxx

Linux 很多时候并不是“没有界面”,而是根本不需要界面。

对于服务器来说,这反而是一种优势。


第一件事:调整系统时区

服务器刚创建时,系统时间使用的并不是北京时间,因此我首先修改了时区:

1
sudo timedatectl set-timezone Asia/Shanghai

然后查看:

1
timedatectl

可以看到类似:

1
2
Local time: Fri 2026-09-11 10:04:46 CST
Universal time: Fri 2026-09-11 02:04:46 UTC

这里第一次让我比较直观地理解了 Linux 中“本地时间”和 UTC 时间之间的关系。

服务器内部通常很重视 UTC,而我们平时看到的时间只是根据设置的时区进行转换。

这看起来只是一个很小的设置,但如果以后要运行定时任务、日志系统或者自动化脚本,正确的系统时间其实非常重要。


Swap:把硬盘临时当成内存

因为这台服务器配置并不高,所以另一个比较值得关注的东西就是 Swap。

刚开始看到 Swap 时,我的理解非常直接:

Swap 是不是就是把磁盘当成内存用?

基本上可以这么理解。

当物理内存不足时,Linux 可以把暂时不用的一部分内存数据放到磁盘中的 Swap 区域。

比如一台只有 1 GB 或 2 GB 内存的小服务器,在某个程序突然占用大量 RAM 时,Swap 有时候可以避免程序直接因为内存不足被系统杀掉。

当然,磁盘速度远远比不上真正的内存。

所以:

1
RAM ≠ Swap

Swap 更像是一层保险,而不是内存的真正替代品。

这也让我开始理解为什么低配置 VPS 经常会建议创建一定大小的 Swap。


SSH:以后怎么进入这台服务器?

服务器最核心的使用方式之一就是 SSH。

简单来说,可以把 SSH 理解成:

通过网络打开另一台电脑的终端。

例如:

1
ssh evan@服务器IP

输入认证信息之后,我的电脑就可以直接控制远端 Linux 服务器。

这也是云服务器与普通电脑一个很大的区别。

平时我们使用电脑,是:

1
人 → 键盘鼠标 → 本地电脑

而使用服务器,则变成:

1
2
3
4
5
6
7
我的电脑

Internet

SSH

远程 Linux 服务器

服务器可能放在几百甚至几千公里之外,但操作起来就像在本地终端中打开了另一个系统。

之后如果长期使用,SSH Key 会比单纯密码登录更加方便,也更适合作为主要登录方式。


公网 IP 到底有什么用?

折腾服务器的过程中,我一直有一个问题:

公网 IP 到底有什么意义?

后来慢慢发现,这其实是理解服务器非常重要的一步。

假设我的服务器只有内网 IP,那么它可以主动连接互联网:

1
服务器 → Internet

但互联网上其他设备通常无法直接主动找到它。

而拥有公网 IP 之后:

1
2
3
4
5
6
7
我的电脑

Internet

公网 IP

服务器

服务器就真正成为了互联网中的一个可以被访问的节点。

于是就可以做很多事情:

  • SSH 远程登录
  • 部署 Web 服务
  • 提供 API
  • 搭建个人面板
  • 提供文件服务
  • 运行 Bot
  • 接收 Webhook
  • 部署自己的后台程序

所以公网 IP 最重要的意义,并不是“让服务器能够上网”。

服务器即使没有公网 IP,通常也可以访问互联网。

真正重要的是:

让互联网能够主动访问这台服务器。

理解这一点之后,很多网络相关的概念一下就清晰了很多。


端口又是什么?

有了 IP 之后,还有一个经常出现的概念:端口。

如果把公网 IP 看成一栋楼的地址,那么端口就有点像不同的房间。

比如常见的:

1
2
3
22    SSH
80 HTTP
443 HTTPS

访问:

1
服务器IP:22

实际上就是在寻找这台服务器上的 SSH 服务。

而访问:

1
服务器IP:80

通常就是寻找 Web 服务。

所以一个简单的端口检测脚本,本质上是在判断:

某台机器上的某一个网络服务是否正在等待连接。

而这种检测并不一定要求被检测目标拥有公网 IP。

如果两台设备处于同一个可以互相访问的网络中,那么内网 IP 一样可以检测。

这也是我以前容易混淆的一点:

1
2
IP 负责找到机器
端口负责找到机器上的服务

有了服务器,却突然不知道拿它做什么

服务器配置完成之后,很快又遇到了另一个问题:

我到底要拿它做什么?

部署个人博客?

但我的博客本身已经可以通过 GitHub Pages 免费托管。

单独用一台 VPS 做静态网页服务器,不仅没有明显优势,还要额外维护系统、安全更新和服务。

因此我逐渐觉得,与其把它当成“网站服务器”,不如把它当成:

一台 24 小时在线的个人 Linux 实验机。

这样思路一下就打开了。

比如可以尝试:

1
2
3
4
5
6
7
8
9
10
11
12
13
个人状态面板
服务器监控
Webhook 接收器
API 服务
自动化脚本
定时任务
文件同步
RSS 服务
Git 服务
Docker
数据库
日志系统
网络实验

很多东西本地电脑当然也能运行。

但本地电脑最大的问题是:

我会关机。

服务器则可以长期在线。

这意味着它特别适合处理:

1
2
3
4
5
持续运行
定时执行
远程访问
自动响应
长期记录

这类任务。


我的第一个小项目:个人服务器面板

相比再次搭建一个博客,我更想做一个真正只有服务器才比较有意义的小工具。

于是第一个想法就是:

个人服务器面板。

它不需要很复杂。

打开网页之后先登录,然后可以看到:

1
2
3
4
5
6
7
8
9
10
11
Server Status

CPU Usage
Memory Usage
Disk Usage
Uptime

Services
SSH
Web Server
Other Services

之后甚至可以加入一些自己的功能,例如:

1
2
3
4
5
6
7
常用命令
文件管理
脚本执行记录
定时任务
实验数据
服务状态
访问日志

整个网站可以非常轻量。

因为这台服务器的目的并不是支撑成千上万人的访问,而只是作为自己的工具。

这种“小而实用”的项目,我反而觉得比重新搭一个普通网站更有意思。


为什么我觉得服务器值得折腾

实际使用之后,我发现服务器真正有意思的地方并不是“拥有一个公网 IP”。

而是它把很多原来书本里的东西联系到了一起:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Linux

├── 文件系统
├── 用户权限
├── 进程
├── systemd

Networking

├── IP
├── Port
├── SSH
├── HTTP

Programming

├── Python
├── Shell
├── API

Deployment

├── Git
├── Nginx
├── Docker
└── Database

平时单独学习这些概念的时候,可能会觉得它们彼此之间没有太大联系。

但服务器正好提供了一个环境,让这些东西自然地组合起来。

比如只是为了部署一个很简单的 Python 网站,就可能一路接触:

1
2
3
4
5
6
7
8
Python
→ Linux 进程
→ 端口
→ 防火墙
→ Nginx
→ HTTP
→ 域名
→ HTTPS

这可能也是实践学习计算机知识比较有意思的地方。


关于 VPN 的一个认识

我之前还想到过一个问题:

如果服务器没有公网 IP,能不能把它做成 VPN?

后来发现,这个问题的关键仍然是“谁主动连接谁”。

传统 VPN 通常要求客户端能够找到 VPN 服务器。

也就是说:

1
2
3
电脑

VPN Server

如果 VPN Server 完全隐藏在 NAT 后面,同时没有端口映射或者其他中继机制,那么客户端自然很难直接连接过去。

但这并不代表没有公网 IP 的设备完全无法组成虚拟网络。

像基于打洞、中继或者 Overlay Network 的方案,本质上就是在解决:

两台无法直接被公网访问的设备,如何互相建立连接?

因此公网 IP 很方便,但并不是现代网络互联的唯一办法。

网络这部分我目前也只是刚刚开始接触,但已经感觉到它会是服务器学习中非常重要的一部分。


下一步

目前这台服务器还非常简单。

但我并不急着一次性部署一大堆服务。

相比“把网上推荐的 Docker 项目全部装一遍”,我更希望按照实际需求逐渐增加东西。

接下来可能会尝试:

  • 完善个人服务器面板
  • 学习 Nginx 的基本配置
  • 使用 SSH Key 替代密码登录
  • 尝试 systemd 管理自己的程序
  • 学习 Docker
  • 部署一个简单 API
  • 尝试自动化脚本与定时任务
  • 更深入理解 Linux 网络

等真正需要数据库时再安装数据库,需要 Docker 时再学 Docker。

这样每增加一个组件,我至少知道:

它为什么会出现在这台服务器上。


结语

这次折腾最大的收获,可能并不是成功运行了什么程序。

而是我终于开始理解:

服务器本质上并不是一种特殊的计算机,而是一台长期在线、可以通过网络被访问和控制的计算机。

公网 IP、SSH、端口、Swap、Linux……

这些以前零散的概念,在真正拥有一台服务器之后开始慢慢串了起来。

现在它还只是一台配置不高的小型云服务器。

不过对我来说,它更像是一个新的实验场。

以后 WYX LAB 除了记录我的学习和项目,也可以顺便记录:

这台服务器最终会被我折腾成什么样。