核心内容摘要
神秘葫芦,藏着不可思议的惊喜!
阿里云ECS主机从零配置指南新手友好避坑必看含完整实操对于新手开发者、个人站长或初级运维来说阿里云ECS主机的配置绝对是入门路上的“第一道坎”——买了ECS不知道怎么登录、初始化配置混乱、安全组没开导致无法访问、环境配置踩坑无数……这些问题几乎是每个新手都会遇到的。
今天这篇博客就从零开始手把手教你完成阿里云ECS主机的完整配置从选购建议、初始化设置到基础环境搭建、安全加固再到
常见问题排查全程实操落地无多余理论新手跟着做就能搞定同时整理了高频踩坑点帮你少走弯路。
说明本文以「阿里云ECS CentOS
x 系统」为例最常用、最稳定适合新手同时兼顾Ubuntu系统的差异说明覆盖个人站长、小型项目部署的核心配置需求企业级配置后续单独分享。
前置准备ECS选购建议新手不踩坑配置ECS的前提是选对ECS很多新手一开始盲目选购导致配置时出现“性能过剩浪费钱”“配置不足跑不动”“系统选错无法适配环境”等问题。
这里给新手3个核心选购建议按需选择即可
实例规格CPU内存按需选择够用就好个人站长、测试环境、小型静态网站如博客推荐「1核2G」或「2核2G」足够支撑日常访问性价比最高阿里云新手活动价每年几十块非常划算小型动态网站、简单后端服务如Python/Java小项目推荐「2核4G」避免内存不足导致服务崩溃企业级应用、高并发场景按需升级「4核8G」及以上同时搭配负载均衡和云数据库这里不展开新手先聚焦基础配置。
镜像选择新手优先CentOS熟悉Ubuntu可选Ubuntu镜像就是ECS的操作系统直接决定后续环境配置的难度新手重点关注CentOS推荐开源、稳定、社区支持完善命令行操作简单适合新手和运维目前最常用的是CentOS
x注意CentOS
x已停止维护不建议选择Ubuntu界面更友好适合熟悉Debian系统的开发者命令和CentOS有差异比如安装软件用apt-getCentOS用yum/dnfWindows Server适合需要部署.NET项目、远程桌面操作的场景新手不推荐占用资源多配置复杂。
其他配置新手默认即可重点关注存储和带宽云盘新手选择「40G 高效云盘」即可足够存放系统和基础应用后续不够用可随时扩容带宽个人站长、测试环境选择「1M-2M」即可按流量计费更划算避免带宽浪费高访问量场景按需升级地域优先选择离目标用户最近的地域比如用户在南方选杭州、深圳地域北方选北京、青岛降低访问延迟安全组选购时可先默认后续初始化时重点配置核心避免端口暴露导致安全风险。
选购
总结新手直接冲「1核2G/2核2G CentOS
x 40G高效云盘 1M按流量计费 就近地域」性价比拉满后续可按需扩容。
核心步骤阿里云ECS主机从零配置实操落地选购完成后进入ECS控制台开始初始化配置全程分5步每一步都有详细操作和命令复制即可使用新手也能轻松跟上。
注所有操作均以CentOS
x为例Ubuntu系统差异会单独标注第一步ECS主机登录两种方式新手优先控制台登录登录ECS是配置的前提推荐两种方式新手优先用阿里云控制台登录无需安装额外工具熟悉后可用Xshell等工具远程登录。
方式1阿里云控制台登录新手首选登录阿里云控制台搜索「ECS」进入「实例列表」找到自己选购的ECS主机点击实例右侧的「远程连接」选择「Workbench远程连接」无需安装插件直接在浏览器操作输入ECS的「用户名」和「密码」选购时设置的若忘记可在实例列表右侧点击「重置实例密码」重启ECS后生效登录成功后进入命令行界面即可开始后续配置界面和Xshell一致操作无差异。
方式2Xshell远程登录推荐操作更便捷安装Xshell免费版即可打开后点击「新建」输入会话名称任意比如「阿里云ECS」「主机」填写ECS的「公网IP」在实例列表中可查看「端口」默认22SSH端口后续会优化安全点击「连接」输入ECS用户名CentOS默认rootUbuntu默认ubuntu和密码即可登录成功。
避坑提醒登录失败大概率是「安全组未开放22端口」后续第二步会解决先记住这个问题。
第二步初始化基础配置必做避免后续踩坑登录成功后首先做3个基础配置更新系统软件、重置密码可选、配置主机名确保后续环境配置稳定。
更新系统软件CentOS
x系统默认的软件包可能不是最新的更新后可避免依赖冲突执行以下命令复制粘贴即可等待执行完成# CentOS
x 更新命令dnf是yum的升级版本兼容yum命令dnf update -y# 若提示“没有可用软件包”无需担心说明系统已更新到最新版本# Ubuntu系统更新命令替换上面的命令# sudo apt-get update sudo apt-get upgrade -y
重置密码可选若忘记或想修改若登录时忘记密码除了在控制台重置也可在命令行重置root用户登录后执行# 重置root用户密码执行后输入新密码输入时不显示直接输入即可passwdroot# 重置后后续登录需用新密码建议设置复杂密码字母数字符号避免被暴力破解
配置主机名可选便于识别默认主机名是随机的可修改为自己容易识别的名称比如aliyun-ecs-blog# 设置主机名临时生效重启后失效hostnamealiyun-ecs-blog# 设置主机名永久生效CentOS
xechoaliyun-ecs-blog/etc/hostname# 重启生效可选不重启也不影响后续配置reboot第三步安全组配置核心避免安全风险安全组相当于ECS的“防火墙”控制ECS的端口开放和访问权限新手最容易踩的坑就是“安全组未开放对应端口”导致服务无法访问比如22端口未开无法登录80端口未开无法访问网站。
以下是新手必配的安全组规则按需开放端口避免开放所有端口减少安全风险操作步骤控制台配置进入ECS实例列表找到对应实例点击「安全组」→「配置规则」点击「添加安全组规则」按以下要求添加重点开放4个端口其他端口按需添加必配安全组规则4个核心端口规则方向端口范围授权对象用途备注入方向22/
220.
0.
0/0或自己的公网IPSSH远程登录推荐授权对象设为自己的公网IP更安全入方向80/
800.
0.
0/0HTTP网站访问部署网站必开入方向443/
4430.
0.
0/0HTTPS网站访问需要配置SSL证书时开入方向3389/
33890.
0.
0/0或自己的公网IPWindows远程桌面CentOS系统可忽略Windows系统必开避坑提醒
授权对象尽量不要设为
0.
0.
0/0允许所有IP访问尤其是22端口建议设为自己的公网IP百度搜索“我的IP”即可获取
不需要的端口比如3306 MySQL端口暂时不要开放后续需要时再添加。
第四步常用环境配置按需选择覆盖主流场景基础配置和安全组搞定后开始配置常用环境新手最常用的场景是「部署网站」「运行后端服务」以下是3个高频环境的实操配置按需选择。
场景1配置Web环境Nginx PHP MySQL部署PHP网站适合部署WordPress博客、PHP小程序后端等全程命令行操作复制即可#
安装NginxWeb服务器处理HTTP请求dnfinstallnginx -y#
启动Nginx并设置开机自启避免重启ECS后服务停止systemctl start nginx systemctlenablenginx#
安装PHP处理PHP代码这里安装PHP
4稳定兼容dnfinstallphp php-fpm php-mysqlnd -y#
启动PHP-FPM并设置开机自启systemctl start php-fpm systemctlenablephp-fpm#
安装MySQL数据库存储网站数据这里安装MariaDB兼容MySQLdnfinstallmariadb-server mariadb -y#
启动MariaDB并设置开机自启systemctl start mariadb systemctlenablemariadb#
初始化MySQL设置root密码删除空用户提升安全mysql_secure_installation# 执行上一条命令后按提示操作#
输入当前root密码默认空直接回车#
输入新密码设置复杂密码记住后续用#
确认新密码#
询问是否删除匿名用户输入y是#
询问是否禁止root远程登录输入n否方便后续远程管理数据库#
询问是否删除test数据库输入y是#
询问是否刷新权限表输入y是#
验证环境是否正常# 新建一个测试PHP文件echo?php phpinfo(); ?/usr/share/nginx/html/test.php# 访问测试浏览器输入 http://ECS公网IP/test.php能看到PHP信息即配置成功场景2配置Python环境运行Python后端服务适合运行Django、Flask等Python项目CentOS
x默认自带Python
6可升级并配置虚拟环境#
升级Python到
8默认
6部分项目不兼容dnfinstallpython38 -y#
设置Python
8为默认版本alternatives --set python3 /usr/bin/python
8#
安装pipPython包管理工具dnfinstallpython3-pip -y#
升级pip到最新版本pip3install--upgrade pip#
安装虚拟环境避免项目依赖冲突推荐pip3installvirtualenv#
创建虚拟环境比如创建名为venv的虚拟环境virtualenv venv#
激活虚拟环境激活后后续安装的包只在该环境生效sourcevenv/bin/activate# 激活成功后命令行前面会出现(venv)此时可安装项目依赖比如# pip install django flask#
退出虚拟环境如需deactivate场景3配置Java环境运行Java后端服务适合运行Spring Boot、SSM等Java项目这里安装JDK
8最稳定兼容大部分项目#
安装JDK
8通过yum安装无需手动配置环境变量dnfinstalljava-
1.
0-openjdk-devel -y#
验证JDK是否安装成功java -version javac -version# 若出现版本信息比如java version
1.
0_xxx即安装成功#
可选配置环境变量若默认未配置echoexport JAVA_HOME/usr/lib/jvm/java-
1.
0-openjdk/etc/profileechoexport PATH\$JAVA_HOME/bin:\$PATH/etc/profile#
使环境变量生效source/etc/profile#
验证环境变量echo$JAVA_HOME# 出现JDK安装路径即配置成功避坑提醒
安装环境时若提示“没有可用软件包”可先执行dnf update -y更新系统软件包
启动服务后一定要设置开机自启systemctl enable 服务名避免ECS重启后服务停止。
第五步安全加固必做避免被攻击ECS配置完成后必须做安全加固尤其是公网可访问的ECS否则容易被暴力破解、植入木马以下是5个核心安全加固操作修改SSH端口可选提升22端口安全性执行以下命令编辑SSH配置文件# 编辑SSH配置文件vim/etc/ssh/sshd_config在配置文件中找到“Port 22”这一行将其修改为其他端口比如2222端口范围需在
之间修改后该行内容为Port2222注意修改端口后需在ECS安全组中开放2222端口否则无法登录服务器。
完成编辑后保存退出vim操作方式按i键进入编辑模式编辑完成后按Esc键输入:wq并按回车键。
执行以下命令重启SSH服务使配置生效systemctl restart sshd后续登录服务器时需将端口改为2222Xshell、控制台登录均需修改。
禁止root用户远程登录推荐提升安全首先执行命令编辑SSH配置文件# 编辑SSH配置文件vim/etc/ssh/sshd_config在配置文件中找到“PermitRootLogin yes”这一行将其修改为PermitRootLogin no保存退出配置文件后执行以下命令重启SSH服务systemctl restart sshd注意修改该配置前需先创建一个普通用户避免修改后无法登录服务器后续可通过普通用户登录再执行su - root切换到root用户。
创建普通用户示例用户名为testuseraddtest为该普通用户设置密码passwdtest开启防火墙CentOS
x默认使用firewalld执行以下命令启动firewalld并设置开机自启# 启动firewalld并设置开机自启systemctl start firewalld systemctlenablefirewalld开放核心端口需与ECS安全组配置一致避免冲突firewall-cmd --permanent --add-port22/tcp# SSH端口若修改过则替换为新端口firewall-cmd --permanent --add-port80/tcp# HTTP端口firewall-cmd --permanent --add-port443/tcp# HTTPS端口执行以下命令重新加载防火墙使配置生效firewall-cmd --reload执行以下命令查看已开放的端口firewall-cmd --list-ports定期备份ECS快照避免数据丢失快照是ECS的“备份副本”配置完成后、修改重要设置前一定要创建快照避免误操作导致数据丢失操作步骤如下进入ECS实例列表点击「快照」→「创建快照」输入快照名称比如“
基础配置完成”点击「创建」快照创建完成后若后续ECS出现问题可通过快照回滚到正常状态。
定期更新系统和软件修复安全漏洞建议每月执行一次系统更新命令修复系统和软件的安全漏洞避免被攻击。
Ubuntu系统的更新命令如下sudoapt-getupdatesudoapt-getupgrade -y
总结所有操作均为ECS公网访问场景下的核心安全加固措施优先执行“禁止root远程登录”“开启防火墙”“定期更新”代码块可直接复制到服务器终端执行修改端口、开放端口时需确保安全组与防火墙配置一致定期备份快照可有效规避误操作、攻击导致的数据丢失风险。
三、
常见问题排查新手必看解决90%的配置问题配置过程中新手容易遇到各种问题以下是4个高频问题的排查方法快速解决不用走弯路**问题1远程登录失败SSH/控制台登录不了**排查步骤
检查ECS是否处于「运行中」状态实例列表可查看若已停止点击启动
检查安全组是否开放22端口或修改后的SSH端口
检查密码是否正确可重置实例密码重启ECS后重试
检查防火墙是否开放SSH端口firewall-cmd --list-ports 查看。
**问题2浏览器无法访问网站输入公网IP无法打开**排查步骤
检查安全组是否开放80/443端口
检查Nginx服务是否正常运行systemctl status nginx若未运行执行systemctl start nginx
检查测试文件test.php是否存在路径是否正确
检查防火墙是否开放80/443端口。
**问题3服务启动失败比如Nginx、PHP-FPM启动不了**排查步骤
执行systemctl status 服务名比如systemctl status nginx查看失败原因
大概率是端口被占用执行netstat -tlnp | grep 端口号比如grep 80查看哪个进程占用了端口杀死该进程kill -9 进程ID再重启服务
若提示依赖缺失执行dnf install 依赖包根据提示补充。
**问题4数据库无法连接比如PHP无法连接MySQL**排查步骤
检查MariaDB服务是否正常运行systemctl status mariadb
检查数据库密码是否正确重新执行mysql_secure_installation 重置密码
检查数据库授权登录MySQL执行grant all privileges on.to ‘root’‘%’ identified by ‘密码’; 开放远程连接
检查安全组是否开放3306端口若需要远程连接数据库。
四、
总结阿里云ECS主机的配置核心是「先搞定基础配置和安全组再按需搭建环境最后做好安全加固」对于新手来说不用追求复杂的配置先掌握本文的核心步骤就能完成大部分场景的配置个人博客、测试环境、小型项目部署。
重点记住3个核心点
安全组是第一道防线按需开放端口避免暴露风险
服务启动后一定要设置开机自启避免重启ECS后服务停止
定期备份快照避免数据丢失。
后续会继续分享阿里云ECS的进阶配置比如ECS扩容、负载均衡配置、数据迁移、Docker环境搭建等感兴趣的可以持续关注