【阿里云】—— 云服务器 ECS搭建与使用

阿里云ECS主机从零配置指南:新手友好,避坑必看(含完整实操)

对于新手开发者、个人站长或初级运维来说,阿里云ECS主机的配置绝对是入门路上的"第一道坎"------买了ECS不知道怎么登录、初始化配置混乱、安全组没开导致无法访问、环境配置踩坑无数......这些问题几乎是每个新手都会遇到的。

今天这篇博客,就从零开始,手把手教你完成阿里云ECS主机的完整配置,从选购建议、初始化设置,到基础环境搭建、安全加固,再到常见问题排查,全程实操落地,无多余理论,新手跟着做就能搞定,同时整理了高频踩坑点,帮你少走弯路。

说明:本文以「阿里云ECS CentOS 8.x 系统」为例(最常用、最稳定,适合新手),同时兼顾Ubuntu系统的差异说明,覆盖个人站长、小型项目部署的核心配置需求,企业级配置后续单独分享。

一、前置准备:ECS选购建议(新手不踩坑)

配置ECS的前提是选对ECS,很多新手一开始盲目选购,导致配置时出现"性能过剩浪费钱""配置不足跑不动""系统选错无法适配环境"等问题。这里给新手3个核心选购建议,按需选择即可:

1. 实例规格(CPU+内存):按需选择,够用就好

  • 个人站长、测试环境、小型静态网站(如博客):推荐「1核2G」或「2核2G」,足够支撑日常访问,性价比最高(阿里云新手活动价每年几十块,非常划算);

  • 小型动态网站、简单后端服务(如Python/Java小项目):推荐「2核4G」,避免内存不足导致服务崩溃;

  • 企业级应用、高并发场景:按需升级「4核8G」及以上,同时搭配负载均衡和云数据库,这里不展开(新手先聚焦基础配置)。

2. 镜像选择:新手优先CentOS,熟悉Ubuntu可选Ubuntu

镜像就是ECS的操作系统,直接决定后续环境配置的难度,新手重点关注:

  • CentOS(推荐):开源、稳定、社区支持完善,命令行操作简单,适合新手和运维,目前最常用的是CentOS 8.x(注意:CentOS 7.x已停止维护,不建议选择);

  • Ubuntu:界面更友好,适合熟悉Debian系统的开发者,命令和CentOS有差异(比如安装软件用apt-get,CentOS用yum/dnf);

  • Windows Server:适合需要部署.NET项目、远程桌面操作的场景,新手不推荐(占用资源多,配置复杂)。

3. 其他配置:新手默认即可,重点关注存储和带宽

  • 云盘:新手选择「40G 高效云盘」即可,足够存放系统和基础应用,后续不够用可随时扩容;

  • 带宽:个人站长、测试环境选择「1M-2M」即可(按流量计费更划算,避免带宽浪费);高访问量场景按需升级;

  • 地域:优先选择离目标用户最近的地域(比如用户在南方,选杭州、深圳地域;北方选北京、青岛),降低访问延迟;

  • 安全组:选购时可先默认,后续初始化时重点配置(核心,避免端口暴露导致安全风险)。

选购总结:新手直接冲「1核2G/2核2G + CentOS 8.x + 40G高效云盘 + 1M按流量计费 + 就近地域」,性价比拉满,后续可按需扩容。

二、核心步骤:阿里云ECS主机从零配置(实操落地)

选购完成后,进入ECS控制台,开始初始化配置,全程分5步,每一步都有详细操作和命令,复制即可使用,新手也能轻松跟上。(注:所有操作均以CentOS 8.x为例,Ubuntu系统差异会单独标注)

第一步:ECS主机登录(两种方式,新手优先控制台登录)

登录ECS是配置的前提,推荐两种方式,新手优先用阿里云控制台登录(无需安装额外工具),熟悉后可用Xshell等工具远程登录。

方式1:阿里云控制台登录(新手首选)
  1. 登录阿里云控制台,搜索「ECS」,进入「实例列表」,找到自己选购的ECS主机;

  2. 点击实例右侧的「远程连接」,选择「Workbench远程连接」(无需安装插件,直接在浏览器操作);

  3. 输入ECS的「用户名」和「密码」(选购时设置的,若忘记,可在实例列表右侧点击「重置实例密码」,重启ECS后生效);

  4. 登录成功后,进入命令行界面,即可开始后续配置(界面和Xshell一致,操作无差异)。

方式2:Xshell远程登录(推荐,操作更便捷)
  1. 安装Xshell(免费版即可),打开后点击「新建」,输入会话名称(任意,比如「阿里云ECS」);

  2. 「主机」填写ECS的「公网IP」(在实例列表中可查看),「端口」默认22(SSH端口,后续会优化安全);

  3. 点击「连接」,输入ECS用户名(CentOS默认root,Ubuntu默认ubuntu)和密码,即可登录成功。

避坑提醒:登录失败大概率是「安全组未开放22端口」,后续第二步会解决,先记住这个问题。

第二步:初始化基础配置(必做,避免后续踩坑)

登录成功后,首先做3个基础配置:更新系统软件、重置密码(可选)、配置主机名,确保后续环境配置稳定。

1. 更新系统软件(CentOS 8.x)

系统默认的软件包可能不是最新的,更新后可避免依赖冲突,执行以下命令(复制粘贴即可,等待执行完成):

bash 复制代码
# CentOS 8.x 更新命令(dnf是yum的升级版本,兼容yum命令)
dnf update -y

# 若提示"没有可用软件包",无需担心,说明系统已更新到最新版本
# Ubuntu系统更新命令(替换上面的命令)
# sudo apt-get update && sudo apt-get upgrade -y
2. 重置密码(可选,若忘记或想修改)

若登录时忘记密码,除了在控制台重置,也可在命令行重置(root用户登录后执行):

bash 复制代码
# 重置root用户密码,执行后输入新密码(输入时不显示,直接输入即可)
passwd root

# 重置后,后续登录需用新密码,建议设置复杂密码(字母+数字+符号),避免被暴力破解
3. 配置主机名(可选,便于识别)

默认主机名是随机的,可修改为自己容易识别的名称(比如aliyun-ecs-blog):

bash 复制代码
# 设置主机名(临时生效,重启后失效)
hostname aliyun-ecs-blog

# 设置主机名永久生效(CentOS 8.x)
echo "aliyun-ecs-blog" > /etc/hostname

# 重启生效(可选,不重启也不影响后续配置)
reboot

第三步:安全组配置(核心,避免安全风险)

安全组相当于ECS的"防火墙",控制ECS的端口开放和访问权限,新手最容易踩的坑就是"安全组未开放对应端口",导致服务无法访问(比如22端口未开无法登录,80端口未开无法访问网站)。

以下是新手必配的安全组规则,按需开放端口,避免开放所有端口(减少安全风险):

操作步骤(控制台配置)
  1. 进入ECS实例列表,找到对应实例,点击「安全组」→「配置规则」;

  2. 点击「添加安全组规则」,按以下要求添加(重点开放4个端口,其他端口按需添加);

必配安全组规则(4个核心端口)
规则方向 端口范围 授权对象 用途 备注
入方向 22/22 0.0.0.0/0(或自己的公网IP) SSH远程登录 推荐授权对象设为自己的公网IP,更安全
入方向 80/80 0.0.0.0/0 HTTP网站访问 部署网站必开
入方向 443/443 0.0.0.0/0 HTTPS网站访问 需要配置SSL证书时开
入方向 3389/3389 0.0.0.0/0(或自己的公网IP) Windows远程桌面 CentOS系统可忽略,Windows系统必开
避坑提醒:1. 授权对象尽量不要设为0.0.0.0/0(允许所有IP访问),尤其是22端口,建议设为自己的公网IP(百度搜索"我的IP"即可获取);2. 不需要的端口(比如3306 MySQL端口),暂时不要开放,后续需要时再添加。

第四步:常用环境配置(按需选择,覆盖主流场景)

基础配置和安全组搞定后,开始配置常用环境,新手最常用的场景是「部署网站」「运行后端服务」,以下是3个高频环境的实操配置,按需选择。

场景1:配置Web环境(Nginx + PHP + MySQL,部署PHP网站)

适合部署WordPress博客、PHP小程序后端等,全程命令行操作,复制即可:

bash 复制代码
# 1. 安装Nginx(Web服务器,处理HTTP请求)
dnf install nginx -y

# 2. 启动Nginx并设置开机自启(避免重启ECS后服务停止)
systemctl start nginx
systemctl enable nginx

# 3. 安装PHP(处理PHP代码,这里安装PHP 7.4,稳定兼容)
dnf install php php-fpm php-mysqlnd -y

# 4. 启动PHP-FPM并设置开机自启
systemctl start php-fpm
systemctl enable php-fpm

# 5. 安装MySQL(数据库,存储网站数据,这里安装MariaDB,兼容MySQL)
dnf install mariadb-server mariadb -y

# 6. 启动MariaDB并设置开机自启
systemctl start mariadb
systemctl enable mariadb

# 7. 初始化MySQL(设置root密码,删除空用户,提升安全)
mysql_secure_installation

# 执行上一条命令后,按提示操作:
# 1. 输入当前root密码(默认空,直接回车)
# 2. 输入新密码(设置复杂密码,记住,后续用)
# 3. 确认新密码
# 4. 询问是否删除匿名用户,输入y(是)
# 5. 询问是否禁止root远程登录,输入n(否,方便后续远程管理数据库)
# 6. 询问是否删除test数据库,输入y(是)
# 7. 询问是否刷新权限表,输入y(是)

# 8. 验证环境是否正常
# 新建一个测试PHP文件
echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/test.php

# 访问测试:浏览器输入 http://ECS公网IP/test.php,能看到PHP信息即配置成功
场景2:配置Python环境(运行Python后端服务)

适合运行Django、Flask等Python项目,CentOS 8.x默认自带Python 3.6,可升级并配置虚拟环境:

bash 复制代码
# 1. 升级Python到3.8(默认3.6,部分项目不兼容)
dnf install python38 -y

# 2. 设置Python 3.8为默认版本
alternatives --set python3 /usr/bin/python3.8

# 3. 安装pip(Python包管理工具)
dnf install python3-pip -y

# 4. 升级pip到最新版本
pip3 install --upgrade pip

# 5. 安装虚拟环境(避免项目依赖冲突,推荐)
pip3 install virtualenv

# 6. 创建虚拟环境(比如创建名为venv的虚拟环境)
virtualenv venv

# 7. 激活虚拟环境(激活后,后续安装的包只在该环境生效)
source venv/bin/activate

# 激活成功后,命令行前面会出现(venv),此时可安装项目依赖,比如:
# pip install django flask

# 8. 退出虚拟环境(如需)
deactivate
场景3:配置Java环境(运行Java后端服务)

适合运行Spring Boot、SSM等Java项目,这里安装JDK 1.8(最稳定,兼容大部分项目):

bash 复制代码
# 1. 安装JDK 1.8(通过yum安装,无需手动配置环境变量)
dnf install java-1.8.0-openjdk-devel -y

# 2. 验证JDK是否安装成功
java -version
javac -version

# 若出现版本信息(比如java version "1.8.0_xxx"),即安装成功

# 3. (可选)配置环境变量(若默认未配置)
echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk" >> /etc/profile
echo "export PATH=\$JAVA_HOME/bin:\$PATH" >> /etc/profile

# 4. 使环境变量生效
source /etc/profile

# 5. 验证环境变量
echo $JAVA_HOME
# 出现JDK安装路径即配置成功

避坑提醒:1. 安装环境时,若提示"没有可用软件包",可先执行dnf update -y更新系统软件包;2. 启动服务后,一定要设置开机自启(systemctl enable 服务名),避免ECS重启后服务停止。

第五步:安全加固(必做,避免被攻击)

ECS配置完成后,必须做安全加固,尤其是公网可访问的ECS,否则容易被暴力破解、植入木马,以下是5个核心安全加固操作:

  1. 修改SSH端口(可选,提升22端口安全性)

执行以下命令编辑SSH配置文件:

bash 复制代码
# 编辑SSH配置文件
vim /etc/ssh/sshd_config

在配置文件中找到"Port 22"这一行,将其修改为其他端口(比如2222,端口范围需在1024-65535之间),修改后该行内容为:

bash 复制代码
Port 2222

注意:修改端口后,需在ECS安全组中开放2222端口,否则无法登录服务器。

完成编辑后保存退出vim(操作方式:按i键进入编辑模式,编辑完成后按Esc键,输入:wq并按回车键)。

执行以下命令重启SSH服务,使配置生效:

bash 复制代码
systemctl restart sshd

后续登录服务器时,需将端口改为2222(Xshell、控制台登录均需修改)。

  1. 禁止root用户远程登录(推荐,提升安全)

首先执行命令编辑SSH配置文件:

bash 复制代码
# 编辑SSH配置文件
vim /etc/ssh/sshd_config

在配置文件中找到"PermitRootLogin yes"这一行,将其修改为:

bash 复制代码
PermitRootLogin no

保存退出配置文件后,执行以下命令重启SSH服务:

bash 复制代码
systemctl restart sshd

注意:修改该配置前,需先创建一个普通用户,避免修改后无法登录服务器(后续可通过普通用户登录,再执行su - root切换到root用户)。

创建普通用户(示例用户名为test):

bash 复制代码
useradd test

为该普通用户设置密码:

bash 复制代码
passwd test
  1. 开启防火墙(CentOS 8.x默认使用firewalld)

执行以下命令启动firewalld并设置开机自启:

bash 复制代码
# 启动firewalld并设置开机自启
systemctl start firewalld
systemctl enable firewalld

开放核心端口(需与ECS安全组配置一致,避免冲突):

bash 复制代码
firewall-cmd --permanent --add-port=22/tcp  # SSH端口,若修改过则替换为新端口
firewall-cmd --permanent --add-port=80/tcp  # HTTP端口
firewall-cmd --permanent --add-port=443/tcp # HTTPS端口

执行以下命令重新加载防火墙,使配置生效:

bash 复制代码
firewall-cmd --reload

执行以下命令查看已开放的端口:

bash 复制代码
firewall-cmd --list-ports
  1. 定期备份ECS快照(避免数据丢失)

快照是ECS的"备份副本",配置完成后、修改重要设置前,一定要创建快照,避免误操作导致数据丢失,操作步骤如下:

  1. 进入ECS实例列表,点击「快照」→「创建快照」;

  2. 输入快照名称(比如"2024-05-20 基础配置完成"),点击「创建」;

  3. 快照创建完成后,若后续ECS出现问题,可通过快照回滚到正常状态。

  4. 定期更新系统和软件(修复安全漏洞)

建议每月执行一次系统更新命令,修复系统和软件的安全漏洞,避免被攻击。Ubuntu系统的更新命令如下:

bash 复制代码
sudo apt-get update && sudo apt-get upgrade -y

总结

  • 所有操作均为ECS公网访问场景下的核心安全加固措施,优先执行"禁止root远程登录""开启防火墙""定期更新";
  • 代码块可直接复制到服务器终端执行,修改端口、开放端口时需确保安全组与防火墙配置一致;
  • 定期备份快照可有效规避误操作、攻击导致的数据丢失风险。

三、常见问题排查(新手必看,解决90%的配置问题)

配置过程中,新手容易遇到各种问题,以下是4个高频问题的排查方法,快速解决,不用走弯路:

  1. **问题1:远程登录失败(SSH/控制台登录不了)**排查步骤:1. 检查ECS是否处于「运行中」状态(实例列表可查看,若已停止,点击启动);2. 检查安全组是否开放22端口(或修改后的SSH端口);3. 检查密码是否正确(可重置实例密码,重启ECS后重试);4. 检查防火墙是否开放SSH端口(firewall-cmd --list-ports 查看)。

  2. **问题2:浏览器无法访问网站(输入公网IP无法打开)**排查步骤:1. 检查安全组是否开放80/443端口;2. 检查Nginx服务是否正常运行(systemctl status nginx,若未运行,执行systemctl start nginx);3. 检查测试文件(test.php)是否存在,路径是否正确;4. 检查防火墙是否开放80/443端口。

  3. **问题3:服务启动失败(比如Nginx、PHP-FPM启动不了)**排查步骤:1. 执行systemctl status 服务名(比如systemctl status nginx),查看失败原因;2. 大概率是端口被占用,执行netstat -tlnp | grep 端口号(比如grep 80),查看哪个进程占用了端口,杀死该进程(kill -9 进程ID),再重启服务;3. 若提示依赖缺失,执行dnf install 依赖包(根据提示补充)。

  4. **问题4:数据库无法连接(比如PHP无法连接MySQL)**排查步骤:1. 检查MariaDB服务是否正常运行(systemctl status mariadb);2. 检查数据库密码是否正确(重新执行mysql_secure_installation 重置密码);3. 检查数据库授权(登录MySQL,执行grant all privileges on . to 'root'@'%' identified by '密码'; 开放远程连接);4. 检查安全组是否开放3306端口(若需要远程连接数据库)。

四、总结

阿里云ECS主机的配置,核心是「先搞定基础配置和安全组,再按需搭建环境,最后做好安全加固」,对于新手来说,不用追求复杂的配置,先掌握本文的核心步骤,就能完成大部分场景的配置(个人博客、测试环境、小型项目部署)。

重点记住3个核心点:1. 安全组是第一道防线,按需开放端口,避免暴露风险;2. 服务启动后,一定要设置开机自启,避免重启ECS后服务停止;3. 定期备份快照,避免数据丢失。

后续会继续分享阿里云ECS的进阶配置,比如ECS扩容、负载均衡配置、数据迁移、Docker环境搭建等,感兴趣的可以持续关注~

相关推荐
Genie cloud2 小时前
在 Mac 上使用 Docker 安装宝塔并部署 LNMP 环境
macos·docker·容器·云计算
i建模2 小时前
在 Rocky Linux 上安装轻量级的 XFCE 桌面
linux·运维·服务器
FIT2CLOUD飞致云3 小时前
赛道第一!1Panel成功入选Gitee 2025年度开源项目
服务器·ai·开源·1panel
php_kevlin3 小时前
阿里云AI接口接口
阿里云·云计算
yanlou2333 小时前
[C++/Linux HTTP项目] HTTP服务器基于muduo高性能服务器搭载【深入详解】
运维·服务器·http·muduo库·http高性能服务器
天空属于哈夫克34 小时前
企微第三方 RPA API:非官方接口与官方接口的差异解析及选型建议
运维·服务器
niceffking4 小时前
linux 信号内核模型
linux·运维·服务器
残梦53144 小时前
Qt6.9.1起一个图片服务器(支持前端跨域请求,不支持上传,可扩展)
运维·服务器·开发语言·c++·qt
醒过来摸鱼4 小时前
Redis 服务器线程与事件循环解析
服务器·数据库·redis
hweiyu004 小时前
Linux 命令:paste
linux·运维·服务器