云服务器 Linux 安装与配置全流程指南
本指南将以最流行的 Ubuntu Server 22.04 LTS 为例进行讲解,但核心步骤和命令同样适用于 CentOS/Rocky Linux 8/9 等其他发行版。

第一部分:准备工作与基础安装
购买并创建云服务器
在阿里云、腾讯云、AWS、华为云等平台购买云服务器实例时,请进行如下选择:
- 镜像:
- 新手推荐: 选择
Ubuntu Server 22.04 LTS或CentOS 8/9,LTS (Long Term Support) 版本提供长期支持,更稳定。 - 镜像市场: 如果您需要特定的环境(如宝塔面板、Docker、LNMP),可以直接选择预装好的镜像,可以跳过部分安装步骤。
- 新手推荐: 选择
- 实例规格: 根据您的需求选择(如 1核2G, 2核4G),初期建议选择较低配置,后期可随时升级。
- 存储: 选择 SSD 云硬盘,I/O 性能更好。
- 网络: 默认即可,确保有公网 IP。
- 安全组: 极其重要! 创建实例时,会自动创建一个安全组,这是服务器的防火墙,默认只允许 22 (SSH) 端口入站,请根据需要添加其他端口,
80(HTTP)443(HTTPS)3306(MySQL)6379(Redis)
连接到服务器
服务器创建成功后,您会获得一个公网 IP 地址,使用 SSH 客户端连接到服务器。
-
Windows 用户:
-
macOS / Linux 用户:
- 打开终端,直接使用
ssh命令:ssh root@<你的公网IP地址>
- 打开终端,直接使用
提示:
root用户是 Linux 的超级管理员,拥有最高权限,出于安全考虑,我们将在后续步骤中创建一个普通用户并禁用root远程登录。
第二部分:初始系统配置
登录后,您会看到命令行界面,这是您接下来所有操作的地方。
更新系统包
这是第一步,也是最关键的一步,确保系统软件包都是最新的。
# 对于 Ubuntu/Debian sudo apt update && sudo apt upgrade -y # 对于 CentOS/Rocky Linux sudo dnf update -y
设置主机名
为服务器设置一个易于识别的主机名。
# 设置主机名,my-web-server sudo hostnamectl set-hostname my-web-server # 验证设置 hostname
配置网络(可选但推荐)
云服务器的网络通常是自动配置的,但为了管理方便,可以编辑 /etc/hosts 文件,将本地 IP 和主机名绑定。
sudo nano /etc/hosts
在文件中添加或修改如下内容(将 <你的公网IP地址> 和 <你的主机名> 替换为实际值):
0.0.1 localhost
<你的公网IP地址> my-web-server
按 Ctrl + X,然后按 Y,最后按 Enter 保存并退出。
创建新用户并授权(安全最佳实践)
永远不要直接使用 root 用户进行日常操作!
-
创建一个新用户(
deploy):sudo adduser deploy
-
为新用户设置密码:
sudo passwd deploy
-
将新用户添加到
sudo组,使其拥有管理员权限:# Ubuntu/Debian sudo usermod -aG sudo deploy # CentOS/Rocky Linux sudo usermod -aG wheel deploy
-
退出当前 SSH 会话,然后用新用户重新登录:
exit ssh deploy@<你的公网IP地址>
配置 SSH 密钥登录(更安全)
使用密码登录容易受到暴力破解攻击,使用 SSH 密钥是更安全的方式。
-
在您的本地电脑上生成 SSH 密钥对(如果还没有的话):
- Windows (MobaXterm/Xshell): 通常有图形化界面生成。
- macOS/Linux: 在终端中运行:
# 一路回车即可,不需要设置密码 ssh-keygen -t ed25519 -C "your_email@example.com"
- 公钥默认保存在
~/.ssh/id_ed25519.pub。
-
将公钥复制到服务器:
# 将 <你的公钥内容> 替换为 id_ed25519.pub 文件中的内容 ssh-copy-id deploy@<你的公网IP地址>
系统会提示您输入
deploy用户的密码,成功后,您就可以免密码登录了。 -
(可选但强烈推荐)禁用 root 密码登录:
-
以
deploy用户登录后,编辑 SSH 配置文件:sudo nano /etc/ssh/sshd_config
-
找到并修改以下两行:
# 将 PermitRootLogin yes 改为 PermitRootLogin prohibit-password # 找到 PasswordAuthentication,确保是 PasswordAuthentication no -
保存文件 (
Ctrl+X,Y,Enter),然后重启 SSH 服务:sudo systemctl restart sshd
-
第三部分:安装常用软件
安装 Nginx (Web 服务器)
Nginx 是一款高性能的 Web 服务器和反向代理。
# Ubuntu/Debian sudo apt install nginx -y # CentOS/Rocky Linux sudo dnf install nginx -y # 启动并设置开机自启 sudo systemctl start nginx sudo systemctl enable nginx
在浏览器中访问您的公网 IP,应该能看到 Nginx 的欢迎页面。
安装 MySQL/MariaDB (数据库)
# Ubuntu/Debian sudo apt install mysql-server -y # CentOS/Rocky Linux sudo dnf install mariadb-server -y # 启动并设置开机自启 sudo systemctl start mysql sudo systemctl enable mysql # 运行安全脚本 sudo mysql_secure_installation
mysql_secure_installation 会引导您进行一系列安全设置,包括:
- 设置 root 密码(建议设置)
- 移除匿名用户
- 禁止 root 远程登录(推荐)
- 移除测试数据库
- 重新加载权限表
- 全部选择
Y(Yes) 是最安全的选择。
安装 PHP (后端语言)
如果您需要运行 WordPress、Laravel 等应用,需要安装 PHP。
# Ubuntu/Debian sudo apt install php php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-zip php-intl -y # CentOS/Rocky Linux sudo dnf install php php-fpm php-mysqlnd php-curl php-gd php-mbstring php-xml php-xmlrpc php-zip php-intl -y # 启动并设置开机自启 sudo systemctl start php-fpm sudo systemctl enable php-fpm
第四部分:安全加固
配置防火墙 (UFW / Firewalld)
-
对于 Ubuntu/Debian (使用 UFW):
# 允许 SSH 连接 (如果之前没开) sudo ufw allow OpenSSH # 允许 HTTP (80) 和 HTTPS (443) sudo ufw allow 'Nginx Full' # 启用防火墙 sudo ufw enable # 查看状态 sudo ufw status
-
对于 CentOS/Rocky Linux (使用 Firewalld):
# 启动并设置开机自启 sudo systemctl start firewalld sudo systemctl enable firewalld # 添加永久规则 sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https # 重新加载防火墙使规则生效 sudo firewall-cmd --reload # 查看状态 sudo firewall-cmd --list-all
使用 Fail2ban 防止暴力破解
Fail2ban 可以监控系统日志,并自动封禁恶意 IP 地址。
# Ubuntu/Debian sudo apt install fail2ban -y # CentOS/Rocky Linux sudo dnf install fail2ban -y
- 配置 Fail2ban:
- 复制一份配置文件作为自定义模板:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
- 编辑
jail.local文件:sudo nano /etc/fail2ban/jail.local
- 找到
[DEFAULT]部分,设置bantime(封禁时间),findtime(发现时间窗口),maxretry(最大重试次数)。 - 确保
[sshd]部分是启用的 (enabled = true)。 - 保存并退出,然后重启 Fail2ban 服务:
sudo systemctl restart fail2ban
- 复制一份配置文件作为自定义模板:
第五部分:部署一个简单的网站
创建网站目录
假设我们的网站域名是 example.com。
# 创建网站根目录 sudo mkdir -p /var/www/example.com/html # 设置目录所有者为当前用户 sudo chown -R $USER:$USER /var/www/example.com/html # 设置正确的权限 sudo chmod -R 755 /var/www/example.com
创建一个测试页面
nano /var/www/example.com/html/index.html
<!DOCTYPE html>
<html>
<head>Welcome to example.com!</title>
</head>
<body>
<h1>Hello, World!</h1>
<p>Your Nginx server is working.</p>
</body>
</html>
保存并退出 (Ctrl+X, Y, Enter)。
创建 Nginx 服务器块配置文件
sudo nano /etc/nginx/sites-available/example.com
```并替换 `<你的公网IP地址>`:
```nginx
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com/html;
index index.html index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ =404;
}
}
启用配置
创建一个符号链接来启用这个站点配置。
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
测试并重启 Nginx
# 测试配置文件语法是否正确 sudo nginx -t # 如果显示 successful,则重启 Nginx sudo systemctl restart nginx
在浏览器中访问 http://<你的公网IP地址>,您应该能看到 "Hello, World!" 页面了。
总结与后续
至此,您已经拥有一个基础配置良好、安全加固的 Linux 云服务器。
后续可以做的事情:
- 配置域名解析: 将您的域名(如
example.com)的 A 记录指向服务器的公网 IP。 - 配置 HTTPS: 使用 Let's Encrypt 免费签发 SSL 证书,并通过 Nginx 配置 HTTPS,可以使用 Certbot 工具自动完成。
- 部署应用: 部署 WordPress, Docker, Node.js 应用等。
- 监控: 使用 Prometheus + Grafana 或云服务商自带的监控工具来监控服务器状态。
- 备份: 设置定期的自动备份策略,备份数据库和网站文件。
这份指南为您提供了一个坚实的基础,祝您使用愉快!

