在阿里云上购买一台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密钥对进行认证是更安全的选择。
在本地计算机生成密钥对(如果还没有的话):
ssh-keygen -t rsa -b 4096
一路按回车即可,这会在您用户目录下的
.ssh
文件夹中生成id_rsa
(私钥)和id_rsa.pub
(公钥)两个文件。将公钥复制到服务器:
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端口?
解答:在云服务器上开放端口需要两个层面的设置:操作系统防火墙和云平台安全组。
- 操作系统防火墙:如果您的CentOS 7及以上版本启用了
firewalld
,需要执行以下命令:sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent sudo firewall-cmd --reload
- 阿里云安全组:登录阿里云ECS控制台,找到您的实例,在左侧导航栏中选择“本实例安全组”,点击“配置规则”,然后手动添加一条规则,允许TCP协议、端口范围为8080、授权对象为
0.0.0/0
(表示所有IP地址)的入方向流量,只有这两步都完成,8080端口才能被外部访问。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复