云服务器、远程部署入门与模块总结
4. 云服务器与远程部署入门
来源于李勃老师零到全栈课程内容
4.1 服务器与个人电脑有什么不同
之前说过服务器本质仍然是电脑,但典型使用方式与个人电脑不同。
服务器
通常:
-
长时间持续运行;
-
通过网络提供服务;
-
常常远程管理;
-
很多 Linux 服务器没有桌面环境;
-
需要能够被目标用户通过网络访问。
4.2 公网 IP 与内网 IP
家庭 / 学校局域网中的设备通常会得到私有地址,例如:
192.168.1.5
10.0.0.8
172.16.x.x
这些通常是内网 / 私有 IP。
例如:
互联网
│
│
路由器
公网 IP
│
├── 192.168.1.2 电脑
├── 192.168.1.3 手机
└── 192.168.1.4 平板
外部网络不能仅凭:
192.168.1.2
直接在整个互联网中唯一找到你家里的那台电脑。
公网 IP
公网 IP 能够在互联网路由体系中用于对外通信。
云服务器通常会分配一个可访问的公网地址,例如:
43.xx.xx.xx
总之云服务器之所以方便部署网站,其中一个关键原因是它通常能直接提供稳定的公网网络入口。
4.3 什么是云服务器
云服务器不是“飘在云里的电脑”。
可以理解为:
云厂商在数据中心准备了大量计算、存储和网络资源,再通过虚拟化等技术将其中一部分资源提供给用户使用。
你通常不需要:
-
自己购买物理服务器;
-
自己找机房;
-
自己拉公网线路;
-
自己维护硬盘和电源。
而是购买:
CPU
内存
磁盘
公网带宽
IP
操作系统环境
的使用权。
4.4 购买云服务器时目前关注什么
重点关注:
-
确认购买的是云服务器 / 轻量服务器之类的计算实例;
-
确认具有公网访问能力;
-
操作系统建议选择 Ubuntu LTS;
-
关注配置,续费价格等;
-
了解安全组 / 防火墙配置入口。
云平台控制台示例:


4.5 为什么选择 Ubuntu
Linux 不是一个单一桌面操作系统产品,而存在许多发行版。
对于入门者,Ubuntu 的优势主要是:
-
使用广泛;
-
教程多;
-
软件包丰富;
-
云平台支持普遍;
-
很多教学资料容易直接复现。
通常优先选择:
Ubuntu LTS(Long Term Support,长期支持版本)
不需要为了学习追求最新的非 LTS 版本。
4.6 云服务器购买后通常会获得什么
通常至少需要掌握:
公网 IP
登录用户名
认证方式
认证方式可能是:
密码
或:
SSH 密钥
入门阶段主要使用:
用户名 + 密码
例如:
IP: 123.45.67.89
User: ubuntu
Password: ********
4.7 安全组 / 防火墙
即使服务器上的程序正在监听某个端口,也不一定意味着互联网用户可以访问它。
云平台通常还有一层:
安全组 / 云防火墙
例如:
互联网
↓
云平台安全组
↓
服务器操作系统
↓
服务器上的程序
因此需要至少关注:
| 端口 | 用途 |
|---|---|
22 |
SSH 远程登录 |
80 |
HTTP 网页访问 |
如需部署 HTTPS 时还会关注443端口
一个安全习惯
不要为了“省事”把所有端口全部向全世界开放。
应该遵循: 只开放当前确实需要的端口。
4.8 SSH 远程登录
SSH(Secure Shell)是一套安全远程登录协议和工具体系。
最基本命令:
ssh 用户名@公网IP
例如:
ssh ubuntu@123.45.67.89
默认情况下,SSH 服务常监听:
22
端口。
整个过程:
你的电脑
│
│ SSH
│ TCP 22
▼
公网 IP
│
▼
远程 Linux 服务器
第一次连接
第一次连接某台服务器时,可能看到类似:
Are you sure you want to continue connecting (yes/no/[fingerprint])?
确认服务器信息无误后输入:
yes
随后进行密码或密钥认证。
为什么输入 SSH 密码时屏幕没有任何显示
Linux 终端输入密码时经常:
没有 *
没有圆点
光标也似乎不动
这是正常的安全设计。
直接输入正确密码后按 Enter 即可。
4.9 登录服务器之后发生了什么
假设提示符变成:
ubuntu@your-server:~$
这意味着:
当前终端中的命令已经在远程服务器上执行,而不是在本地 Windows / WSL 中执行。
例如:
pwd
此时可能输出:
/home/ubuntu
执行:
cd /
ls
会看到典型 Linux 根目录:
bin
boot
dev
etc
home
lib
opt
proc
root
run
srv
sys
tmp
usr
var
...
这些文件属于远程服务器。
4.10 本地终端和远程终端不要混淆
例如:
SSH 登录前
huang@my-pc:~$
你控制的是本地环境。
SSH 登录后
ubuntu@cloud-server:~$
你控制的是服务器。
以后执行安装、删除、修改配置前,一定先看:
用户名@主机名
以及:
pwd
避免把命令执行错机器。
4.11 apt:Ubuntu 软件包管理
Ubuntu 常使用 APT 管理软件。
先更新软件包索引:
sudo apt update
再安装 Nginx:
sudo apt install nginx -y
apt update 主要是:更新本机记录的软件包仓库信息。
不是简单等于: “把所有软件升级到最新版”。
真正升级已安装软件通常还涉及:
sudo apt upgrade
sudo 可以粗略理解为:
临时以更高权限执行某个命令。
类似 Windows 中:
以管理员身份运行
但 Linux 权限体系比这个类比更完整。
4.12 Nginx 是什么
Nginx 是非常常见的 Web Server / 反向代理软件。
在当前课程中,只需要先理解它的一个最基本功能:
监听 Web 请求,并把网页内容发送给浏览器。
一个简化模型:
浏览器
│
│ HTTP Request
▼
服务器:80
│
▼
Nginx
│
│ 读取网页文件
▼
HTML
│
│ HTTP Response
▼
浏览器
Nginx 以后还可以用于:
-
反向代理;
-
HTTPS;
-
静态文件服务;
-
负载均衡;
-
请求转发;
-
日志记录;
-
限流等。
当前不需要全部掌握。
4.13 systemctl:查看服务状态
安装 Nginx 后可以:
systemctl status nginx
如果看到:
active (running)
说明 Nginx 服务正在运行。
如果没有运行,可以尝试:
sudo systemctl start nginx
常见操作还有:
sudo systemctl stop nginx
sudo systemctl restart nginx
分别表示:停止、重启
4.14 为什么 Nginx 运行了,浏览器仍然可能打不开
因为程序运行只是其中一个条件。
完整链路至少涉及:
浏览器
↓
公网 IP
↓
云平台安全组允许 80
↓
服务器网络
↓
Nginx 正在监听 80
↓
返回网页
如果安全组没有放行:
TCP 80
那么外部浏览器仍然无法访问。
4.15 用公网 IP 访问 Nginx
确认 Nginx 运行,并开放 TCP 80 后,在本地浏览器访问:
http://你的服务器公网IP
例如:
http://123.45.67.89
如果成功,会看到 Nginx 默认页面。
示例页面:

这意味着整条链路已经打通:
本地浏览器
↓
公网 IP
↓
云服务器
↓
TCP 80
↓
Nginx
↓
网页文件
↓
HTTP Response
↓
本地浏览器显示
4.16 Nginx 的网页文件在哪里
Ubuntu / Debian 系列中,Nginx 默认配置可以通过:
cat /etc/nginx/sites-available/default
查看。
其中可能看到:
root /var/www/html;
这表示当前站点的网页根目录为:
/var/www/html
进入:
cd /var/www/html
ls
通常能找到类似:
index.nginx-debian.html
这就是默认页面对应的 HTML 文件。
于是:
浏览器看到的网页
↑
Nginx 返回
↑
/var/www/html/...html
“网页”和“服务器上的文件”在这里真正连接起来。
4.17 使用 Vim 修改服务器网页
打开文件:
sudo vim /var/www/html/index.nginx-debian.html
然后:
i
↓
修改内容
↓
Esc
↓
:wq
↓
Enter
回到浏览器刷新。
如果网页内容改变,说明已经完成一次最简单的公网部署修改过程。
完整过程:
本地电脑
│
│ SSH
▼
远程服务器
│
│ Vim 修改
▼
HTML 文件
│
│ Nginx 读取
▼
HTTP 服务
│
│ 80 端口
▼
公网
│
▼
本地浏览器
4.18 常见故障排查
问题 1:SSH 连不上
按顺序检查:
服务器是否正在运行
↓
公网 IP 是否正确
↓
用户名是否正确
↓
22 端口是否在安全组中放行
↓
密码 / SSH 密钥是否正确
↓
SSH 服务是否正常
问题 2:浏览器打不开公网 IP
检查:
Nginx 是否 active (running)
↓
是否访问 http://公网IP
↓
云平台安全组是否开放 TCP 80
↓
服务器本机防火墙是否额外阻止
问题 3:修改 HTML 后页面没变化
检查:
修改的是不是正确服务器
↓
修改的是不是正确文件
↓
Vim 是否真正保存
↓
Nginx root 是否确实指向这个目录
↓
浏览器是否刷新 / 缓存
4.19 安全组与服务器本机防火墙的区别
二者并不是同一件事。
实际上可能存在两层:
互联网
↓
① 云平台安全组
↓
② Ubuntu 本机防火墙
↓
③ Nginx
因此“80 端口无法访问”不一定只有一个原因。
云安全组
在阿里云、腾讯云等控制台配置。
Linux 本机防火墙
Ubuntu 常见工具:
ufw
例如:
sudo ufw status
当前主要操作云平台安全组,知道这两个层次不同即可。
4.20 从本地电脑到云服务器的完整链路
这是整个模块的一张知识地图。
┌──────────────────────────────┐
│ 1. 本地文件系统 │
│ 文件 / 文件夹 / 路径 │
└──────────────┬───────────────┘
│
▼
┌──────────────────────────────┐
│ 2. 编辑器 │
│ VS Code 修改代码文件 │
└──────────────┬───────────────┘
│
▼
┌──────────────────────────────┐
│ 3. 终端 │
│ pwd / ls / cd / mkdir ... │
└──────────────┬───────────────┘
│
▼
┌──────────────────────────────┐
│ 4. Linux 环境 │
│ WSL / Ubuntu / Server │
└──────────────┬───────────────┘
│
▼
┌──────────────────────────────┐
│ 5. 网络定位 │
│ 域名 → DNS → IP │
└──────────────┬───────────────┘
│
▼
┌──────────────────────────────┐
│ 6. 网络服务 │
│ IP + Port │
└──────────────┬───────────────┘
│
▼
┌──────────────────────────────┐
│ 7. SSH │
│ 本地终端远程控制服务器 │
└──────────────┬───────────────┘
│
▼
┌──────────────────────────────┐
│ 8. Nginx │
│ 监听 80 端口并提供网页 │
└──────────────┬───────────────┘
│
▼
┌──────────────────────────────┐
│ 9. 浏览器 │
│ HTTP 请求 → 响应 → 显示网页 │
└──────────────────────────────┘
5. 总结一些概念
| 概念 | 一句话理解 | 示例 |
|---|---|---|
| 文件 | 保存具体内容 | index.html |
| 文件夹 / 目录 | 组织文件 | my-project/ |
| 路径 | 描述文件在哪里 | /var/www/html |
| 绝对路径 | 从固定根部完整描述位置 | /home/user/a.txt |
| 相对路径 | 从当前位置描述位置 | ./images/a.png |
| VS Code | 编辑代码文件的工具 | 打开项目目录 |
| Terminal | 使用命令与计算机交互的界面 | Windows Terminal |
| Shell | 解释命令的程序 | Bash / Zsh |
| Linux | 常见服务器操作系统内核与生态基础 | Ubuntu |
| WSL | Windows 中的 Linux 环境 | Ubuntu on WSL |
| Client | 发起请求的一方 | 浏览器 |
| Server | 提供服务的一方 | 云服务器 |
| IP | 网络中的通信地址 | 1.2.3.4 |
| Domain | 人类友好的网络名称 | github.com |
| DNS | 域名解析系统 | Domain → IP |
| Port | 主机上的服务通信端点 | 22、80、443 |
| HTTP | Web 请求 / 响应协议 | http://... |
| HTTPS | 加密的 HTTP 通信 | https://... |
| SSH | 远程安全登录 | ssh user@ip |
| Ubuntu | 常见 Linux 发行版 | Ubuntu 24.04 LTS |
| APT | Ubuntu 软件包管理工具 | apt install |
| sudo | 以更高权限执行命令 | sudo apt update |
| Nginx | 常见 Web Server / 反向代理 | 监听 80 |
| systemctl | 管理 systemd 服务 | systemctl status nginx |
| 安全组 | 云平台网络访问控制 | 放行 TCP 22 / 80 |
6. 命令总结
文件系统
pwd
ls
ls -la
cd ~
cd /
cd ..
cd path
mkdir test
mkdir -p a/b/c
touch hello.txt
cat hello.txt
rm hello.txt
rmdir empty-directory
Vim
vim hello.txt
i 进入插入模式
Esc 回到普通模式
:wq 保存并退出
:q! 不保存强制退出
SSH
ssh username@server_ip
例如:
ssh ubuntu@123.45.67.89
Ubuntu 软件安装
sudo apt update
sudo apt install nginx -y
Nginx 状态
systemctl status nginx
sudo systemctl start nginx
sudo systemctl restart nginx
查看 Nginx 配置
cat /etc/nginx/sites-available/default
查看默认网页目录
cd /var/www/html
ls
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐
所有评论(0)