嘿,朋友。既然你点开了这篇文章,说明你可能刚入手了一台云服务器,或者正准备把现有的服务器从 CentOS 迁移过来,又或者只是单纯想试试这个被寄予厚望的“CentOS 继任者”——AlmaLinux。
别担心,我知道那种面对黑漆漆的终端窗口时的紧张感。尤其是当你满怀期待地点击“创建实例”,结果发现 SSH 连不上,或者进去后 yum 命令报错说找不到源的时候,那种挫败感真的很搞心态。
今天,我不跟你扯那些枯燥的官方文档定义。咱们就把它当成一次探险。我会带你一步步走完从拿到 IP 地址到系统跑得飞起的全过程。我们会遇到坑,也会一起填平它们。准备好了吗?让我们开始吧。
第一步:连接你的“新大陆”
首先,你得连上去。大多数云服务商(阿里云、腾讯云、AWS、DigitalOcean 等)都会给你两个关键信息:公网 IP 和 初始密码(或者密钥文件)。
1. 使用密钥登录(推荐,更安全)
如果你下载了 .pem 或 .ppk 文件,这是最稳妥的方式。
在 Linux/macOS 终端中:
# 确保权限正确,否则会被拒绝
chmod 400 your-key.pem
# 登录,默认用户通常是 root 或 ec2-user/alma
ssh -i "your-key.pem" root@<你的公网IP>
在 Windows 上使用 PuTTY 的话,记得把 .pem 转换成 .ppk,或者直接使用 Windows 自带的 OpenSSH(Windows 10⁄11 通常自带):
ssh -i "C:\path\to\your-key.pem" root@<你的公网IP>
2. 使用密码登录
如果服务商给了你密码,那就简单多了:
ssh root@<你的公网IP>
# 系统会提示你输入密码,输入时屏幕不会显示字符,这是正常的,输完回车即可
💡 专家提示: 第一次登录后,系统可能会问你 Are you sure you want to continue connecting (yes/no/[fingerprint])?,直接输入 yes 并回车。
第二步:初始化与基础配置(避坑指南)
连上去了?恭喜!但这只是开始。很多新手在这里就会踩雷。
1. 更新系统
AlmaLinux 基于 RHEL(Red Hat Enterprise Linux),包管理器是 dnf(兼容 yum)。先把手头的软件包更新到最新,防止有已知漏洞。
sudo dnf update -y
这里有个常见报错:如果你看到类似 Failed to download metadata for repo 'appstream' 的错误。
原因: 这通常是因为 DNS 解析问题,或者默认的镜像源在国内访问速度慢甚至被阻断。
解决方案: 更换为国内镜像源(如阿里云或腾讯云镜像)。
# 备份原始配置
sudo cp /etc/yum.repos.d/AlmaLinux.repo /etc/yum.repos.d/AlmaLinux.repo.bak
# 编辑配置文件
sudo vi /etc/yum.repos.d/AlmaLinux.repo
# 将 baseurl 中的 mirror.almalinux.org 替换为 mirrors.aliyun.com/almalinux
# 例如:
# 原: baseurl=http://mirror.almalinux.org/software/$releasever/baseos/$basearch/
# 改: baseurl=https://mirrors.aliyun.com/almalinux/$releasever/BaseOS/$basearch/os/
# 保存退出后,清理缓存并重新生成
sudo dnf clean all
sudo dnf makecache
注:如果你不熟悉 vi 编辑器,可以按 i 进入插入模式,修改完后按 Esc,然后输入 :wq 回车保存。
2. 设置主机名
给服务器起个名字,方便管理。
sudo hostnamectl set-hostname my-server-01
# 检查是否生效
hostname
3. 配置防火墙(Firewalld)
AlmaLinux 默认启用 firewalld。很多新手部署 Web 服务后,浏览器打不开,90% 的原因是忘了开端口。
# 查看当前状态
sudo firewall-cmd --state
# 开放常用端口:SSH(22), HTTP(80), HTTPS(443)
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
⚠️ 重要提醒: 如果你还需要运行其他服务(比如 MySQL 的 3306,Redis 的 6379),记得在这里加上:
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload
第三步:安全加固(别让你的服务器成肉鸡)
公网 IP 就像你家大门敞开在大街上。黑客脚本每秒钟都在扫描这些 IP。我们必须做几件事来保护它。
1. 创建新用户并赋予 sudo 权限
永远不要用 root 账号直接日常操作!万一输错命令删库了,或者被暴力破解了,后果不堪设想。
# 创建新用户,比如叫 'admin'
sudo adduser admin
# 设置密码
sudo passwd admin
# 将用户加入 wheel 组(在 CentOS/AlmaLinux 中,wheel 组拥有 sudo 权限)
sudo usermod -aG wheel admin
2. 禁用 Root 远程登录 & 修改 SSH 端口
这是提升安全性最有效的手段之一。
编辑 SSH 配置文件:
sudo vi /etc/ssh/sshd_config
找到以下几行并进行修改:
# 1. 禁止 root 直接登录
PermitRootLogin no
# 2. 修改 SSH 默认端口(例如改为 2222,避免被大量扫描)
Port 2222
# 3. 禁止空密码登录
PermitEmptyPasswords no
# 4. 建议使用密钥登录,禁用密码登录(可选,但强烈推荐)
PasswordAuthentication no
修改完成后,必须重启 SSH 服务:
sudo systemctl restart sshd
🚨 高能预警: 如果你改了端口,下一次登录你必须指定端口!
ssh -p 2222 admin@<你的公网IP>
如果你改成了 PasswordAuthentication no,请确保你已经配置好了 SSH 密钥登录,否则你会把自己锁在外面!
3. 安装 Fail2Ban(自动封禁暴力破解者)
Fail2Ban 会监控日志,如果有人多次输错密码,它就自动把对方的 IP 加入黑名单。
# 安装
sudo dnf install epel-release
sudo dnf install fail2ban -y
# 启动并设置开机自启
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
# 查看状态
sudo systemctl status fail2ban
你可以自定义配置 /etc/fail2ban/jail.local(如果没有就新建一个,复制 jail.conf 的内容过来修改),限制尝试次数。
第四步:性能优化(让服务器跑得更欢)
AlmaLinux 默认的配置比较保守,适合通用场景。但对于服务器,我们可以做一些微调。
1. 调整文件描述符限制
默认情况下,Linux 允许一个进程打开的文件描述符数量有限。高并发服务(如 Nginx, Node.js)很容易达到这个上限导致 Too many open files 错误。
编辑 /etc/security/limits.conf:
sudo vi /etc/security/limits.conf
在文件末尾添加:
* soft nofile 65535
* hard nofile 65535
root soft nofile 65535
root hard nofile 65535
注意:某些云服务商需要在控制台或通过 cloud-init 配置才能永久生效,但在系统层面这样做是基础。
2. 优化内核网络参数
编辑 /etc/sysctl.conf:
sudo vi /etc/sysctl.conf
添加或修改以下参数,以提升 TCP 连接处理能力和内存利用率:
# 增加本地端口范围
net.ipv4.ip_local_port_range = 1024 65535
# 开启 TCP 快速回收
net.ipv4.tcp_tw_reuse = 1
# 增加最大监听队列
net.core.somaxconn = 1024
# 启用 TCP 拥塞控制算法 BBR (AlmaLinux 8+ 内核通常支持)
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
应用配置:
sudo sysctl -p
验证 BBR 是否生效:
sysctl net.ipv4.tcp_congestion_control
# 如果输出是 net.ipv4.tcp_congestion_control = bbr,那就成功了!
3. 交换空间(Swap)管理
如果服务器内存较小(比如 1GB 或 2GB),建议设置 Swap 防止 OOM(内存溢出)杀死进程。
# 创建一个 2GB 的 swap 文件
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
# 设置权限
sudo chmod 600 /swapfile
# 格式化为 swap
sudo mkswap /swapfile
# 启用
sudo swapon /swapfile
# 写入 fstab 以便重启后生效
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
第五步:实战部署示例(以 Nginx + PHP-FPM 为例)
光说不练假把式。假设你想搭建一个简单的 PHP 网站。
1. 安装 Nginx 和 PHP
sudo dnf install nginx php-fpm php-cli php-mysqlnd php-json php-gd php-mbstring -y
2. 启动服务
sudo systemctl enable nginx
sudo systemctl enable php-fpm
sudo systemctl start nginx
sudo systemctl start php-fpm
3. 配置 Nginx 支持 PHP
编辑 /etc/nginx/conf.d/default.conf 或者 /etc/nginx/nginx.conf。
找到 location ~ \.php$ 部分,取消注释并确保如下所示:
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ =404;
}
# 处理 PHP 请求
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
重启 Nginx 使配置生效:
sudo systemctl reload nginx
4. 测试
创建一个简单的 PHP 文件:
echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/info.php
现在,在浏览器访问 http://<你的公网IP>/info.php。如果你看到了 PHP 的版本信息和配置详情,恭喜你,环境搭建成功!
常见问题排查清单(Troubleshooting)
即使按照上面的步骤走,你也可能会遇到一些奇怪的问题。这里是我的“急救箱”。
Q1: 网站打不开,浏览器超时?
- 检查 1: 防火墙是否放行了 80⁄443 端口? (
sudo firewall-cmd --list-services) - 检查 2: 云服务器控制台的安全组规则是否放行?(阿里云/腾讯云/AWS 都有两层防火墙:系统内 firewalld 和云厂商的安全组。很多人只开了前者,忘了后者。)
- 检查 3: Nginx 进程是否在运行? (
ps aux | grep nginx)
Q2: PHP 页面显示源码而不是执行结果?
- 原因: Nginx 没有正确转发给 PHP-FPM,或者 PHP-FPM 没启动。
- 解决: 检查
/var/log/nginx/error.log和/var/log/php-fpm/www-error.log。确保fastcgi_pass指向的地址正确(通常是 9000 端口)。
Q3: 数据库连接失败?
- 原因: MySQL/MariaDB 默认可能只监听
localhost。 - 解决: 如果是远程连接,需要修改
/etc/my.cnf.d/server.cnf,将bind-address改为0.0.0.0,并重启 MySQL。同时确保防火墙放行了 3306 端口。
Q4: 磁盘空间满了?
检查:
df -h清理: 很多时候是日志文件太大。
# 查看大文件 sudo du -sh /* | sort -hr | head -n 10 # 清空日志(谨慎操作) sudo truncate -s 0 /var/log/messages
结语:这只是旅程的开始
现在,你手里有一台干净、安全、高性能的 AlmaLinux 服务器。它不像 Windows Server 那样有图形界面指引你,但它更像是一个沉默而忠诚的伙伴。
记住,服务器运维的核心不在于“一次性配置完美”,而在于监控和备份。
- 定期备份! 使用
rsync或云服务商自带的快照功能。 - 关注更新。 每月花几分钟运行一次
sudo dnf update。 - 保持好奇。 多看看
/var/log下的日志,那是服务器在向你“说话”。
如果你在使用过程中遇到了具体的报错,别慌。把错误信息复制下来,Google 一下(或者问我),通常都能找到答案。
祝你在这台服务器上构建出伟大的项目!如果有哪里不清楚,随时回来看看这篇指南,或者留言讨论。加油!
