如何在阿里云ECS上从零开始搭建CentOS服务器环境?

在阿里云上购买一台ECS(Elastic Compute Service)实例后,我们通常会获得一台裸露的、功能强大的CentOS服务器,要使其安全、稳定并可用于生产环境,还需要进行一系列的基础搭建与配置工作,本文将详细引导您完成从连接服务器到安装常用服务的全过程,旨在为初学者提供一个清晰、可靠的操作蓝图。

第一步:远程连接到您的CentOS服务器

连接是管理服务器的首要步骤,阿里云ECS提供了多种连接方式,但最常用、最核心的是通过SSH(Secure Shell)协议进行连接。

  • 获取连接信息:登录阿里云ECS控制台,在您的实例列表中找到目标实例,记录下它的公网IP地址,初始用户名通常是root,密码为您在创建实例时设置的。

  • 使用终端连接(macOS/Linux)
    打开终端应用程序,输入以下命令,然后按回车:

    ssh root@您的服务器公网IP地址

    系统会提示您输入密码,输入时屏幕不会显示任何字符,这是正常现象,输入完毕后按回车即可登录。

  • 使用SSH客户端连接(Windows)
    Windows用户可以下载并安装PuTTY或Xshell等工具,在主机名(或IP地址)栏填入服务器的公网IP,端口默认为22,连接协议选择SSH,点击打开后,按照提示输入用户名root和密码即可。

第二步:基础安全配置——为服务器筑起第一道防线

直接使用root用户进行日常操作存在巨大安全风险,我们的首要任务是进行安全加固。

1 更新系统软件包

登录后,第一件事应该是将系统所有已安装的软件包更新到最新版本,以修复已知的安全漏洞。

yum update -y

-y参数会自动回答所有提问为“是”,无需手动确认。

2 创建新用户并赋予sudo权限

创建一个普通用户用于日常管理,避免滥用root权限。

# 创建一个名为 'admin' 的新用户(您可以替换成自己喜欢的用户名)
adduser admin
# 为新用户设置密码
passwd admin

我们需要让这个新用户能够执行管理员命令,最简单的方法是将其加入wheel用户组,该组默认拥有sudo权限。

usermod -aG wheel admin

3 配置SSH密钥登录(强烈推荐)

密码登录容易被暴力破解,使用SSH密钥对进行认证是更安全的选择。

  1. 在本地计算机生成密钥对(如果还没有的话):

    ssh-keygen -t rsa -b 4096

    一路按回车即可,这会在您用户目录下的.ssh文件夹中生成id_rsa(私钥)和id_rsa.pub(公钥)两个文件。

  2. 将公钥复制到服务器

    ssh-copy-id admin@您的服务器公网IP地址

    输入一次admin用户的密码后,公钥就会被自动添加到服务器的~/.ssh/authorized_keys文件中。

4 禁用密码登录和Root登录

确保您能用新用户和SSH密钥成功登录后,就可以修改SSH配置文件,彻底关闭不安全的登录方式。

sudo vi /etc/ssh/sshd_config

使用vi编辑器找到以下几行,并修改为如下所示的值:

参数 原始值 修改后值 说明
PermitRootLogin yes no 禁止root用户直接登录
PasswordAuthentication yes no 禁止密码认证
PubkeyAuthentication yes yes 确保公钥认证是开启的

修改完成后,保存并退出,然后重启SSH服务使配置生效:

sudo systemctl restart sshd

重要提示:在断开当前root连接之前,请务必开启一个新的终端窗口,使用ssh admin@您的服务器公网IP地址测试新用户是否能通过密钥正常登录,成功后再关闭旧的连接。

第三步:安装LNMP/LAMP常用服务栈

一个基础的服务器通常需要Web服务器、数据库和脚本语言环境,这里以安装Nginx、MariaDB和PHP(即LNMP架构)为例。

1 安装Nginx

Nginx是一款高性能的Web和反向代理服务器。

sudo yum install nginx -y
# 启动Nginx并设置开机自启
sudo systemctl start nginx
sudo systemctl enable nginx

在浏览器中访问您的服务器公网IP地址,应该能看到Nginx的默认欢迎页面。

2 安装MariaDB

MariaDB是MySQL的一个流行分支,完全兼容。

sudo yum install mariadb-server mariadb -y
# 启动MariaDB并设置开机自启
sudo systemctl start mariadb
sudo systemctl enable mariadb
# 运行安全安装脚本,设置root密码,移除匿名用户等
sudo mysql_secure_installation

按照提示一步步操作即可,建议全部选择“Y”(是)。

3 安装PHP

PHP是处理动态网页的脚本语言。

sudo yum install php php-mysqlnd php-fpm -y
# 启动PHP-FPM并设置开机自启
sudo systemctl start php-fpm
sudo systemctl enable php-fpm

安装完成后,还需要配置Nginx使其能够处理PHP文件,这通常涉及修改Nginx的配置文件(如/etc/nginx/nginx.conf/etc/nginx/conf.d/default.conf),将请求传递给PHP-FPM处理,具体配置细节较为繁琐,但核心是配置location ~ \.php$块。

至此,您已经拥有一个基础安全、并搭载了核心Web服务的CentOS服务器,您可以根据具体需求部署网站、安装其他应用程序或进行更精细的性能优化。


相关问答FAQs

问题1:我按照步骤禁用了密码登录,现在无法连接服务器了,怎么办?
解答:请不要惊慌,这种情况通常是因为SSH密钥配置有误或未成功上传,您可以通过阿里云ECS控制台提供的“远程连接”功能(通常是Web界面的VNC或Workbench连接),直接进入服务器的命令行界面,无需密码或SSH密钥,登录后(默认是root用户),使用vi /etc/ssh/sshd_config命令,将PasswordAuthentication的值改回yes,然后重启SSH服务(systemctl restart sshd),这样就可以恢复密码登录,然后重新检查并配置SSH密钥。

问题2:如何开放服务器的端口,比如8080端口?
解答:在云服务器上开放端口需要两个层面的设置:操作系统防火墙和云平台安全组。

  1. 操作系统防火墙:如果您的CentOS 7及以上版本启用了firewalld,需要执行以下命令:
    sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
    sudo firewall-cmd --reload
  2. 阿里云安全组:登录阿里云ECS控制台,找到您的实例,在左侧导航栏中选择“本实例安全组”,点击“配置规则”,然后手动添加一条规则,允许TCP协议、端口范围为8080、授权对象为0.0.0/0(表示所有IP地址)的入方向流量,只有这两步都完成,8080端口才能被外部访问。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-03 16:09
下一篇 2025-10-03 16:11

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信