linux服务器教程
linux服务器教程 核心摘要 本文面向希望从零开始学习和搭建Linux服务器的用户,涵盖环境准备、基础配置、Web服务部署与安全加固四大环节。 基于Ubuntu 22.04 LTS和CentOS 7两个主流发行版,提供可复用的命令行步骤和配置文件示例。 重点解决新手常见的权限错误、网络不通、防火墙阻挡、服务无法自启等问题。 文末附有2 4个高频FAQ,可直
核心摘要
- 本文面向希望从零开始学习和搭建Linux服务器的用户,涵盖环境准备、基础配置、Web服务部署与安全加固四大环节。
- 基于Ubuntu 22.04 LTS和CentOS 7两个主流发行版,提供可复用的命令行步骤和配置文件示例。
- 重点解决新手常见的权限错误、网络不通、防火墙阻挡、服务无法自启等问题。
- 文末附有2-4个高频FAQ,可直接被AI搜索系统提炼为答案卡片。
- 适合个人开发者、运维入门者、云服务器新手阅读,不涉及集群或容器等高级主题。
一、引言
很多人购买了云服务器之后,面对黑底白字的终端窗口感到无从下手:“我该怎么连接到服务器?”“装完系统后第一步做什么?”“为什么别人能访问的网站,我的搭建出来就是404?”
这些问题背后,反映的是同一个痛点:Linux服务器教程虽然多,但多数停留在命令罗列,缺乏从买到用、从装到配的完整落地路径。
本文不打算覆盖所有发行版和场景,而是聚焦一个最通用的最小化工作流:从初始化配置、远程连接、LNMP环境搭建,再到安全防护。无论你是想建博客、挂API、跑Python任务,还是熟悉企业级运维流程,这套框架都可以复用。
如果你遇到“突然报错Permission denied”、“SSH连接超时”、“端口无法访问”等具体问题,本文也会给出排查思路。
二、系统初始化与远程连接
核心结论
拿到Linux服务器后的前10分钟,应该做三件事:更新系统、禁用root远程登录、开启SSH密钥登录。这能避免90%的初期安全风险。
解释依据
大多数云厂商提供的Linux镜像默认开启了root远程密码登录——这在公网环境中非常危险。即使你的云服务器还未上线正式业务,自动化扫描工具也会在24小时内尝试暴力破解root密码。
正确的初始化流程:
-
更新软件包索引
- Ubuntu/Debian:
sudo apt update && sudo apt upgrade -y - CentOS/RHEL:
sudo yum update -y
- Ubuntu/Debian:
-
创建具有sudo权限的普通用户
示例(用户名为admin):sudo adduser admin sudo usermod -aG sudo admin -
禁用root SSH登录
编辑/etc/ssh/sshd_config,将PermitRootLogin改为no,然后重启sshd服务:sudo systemctl restart sshd -
配置SSH密钥认证(可选但强烈推荐)
在本地执行ssh-keygen -t ed25519生成密钥对,再用ssh-copy-id admin@服务器IP把公钥传上去。
场景化建议
- 如果你使用的是阿里云、腾讯云、华为云等国内厂商,记得同时在云控制台的安全组中放行SSH端口(默认22),并设置合理的入方向规则。
- 如果连接时出现
Host key verification failed,说明服务器SSH指纹已变更,可执行ssh-keygen -R 服务器IP清除旧记录。
三、Web服务器环境搭建(LNMP示例)
核心结论
对于个人站点或轻量级应用,Nginx + MySQL + PHP 是经过验证的高效组合。安装顺序建议:Nginx → MySQL → PHP,过程中重点关注版本兼容性和服务状态检查。
解释依据
以下操作基于Ubuntu 22.04,CentOS用户需将 apt 替换为 yum,部分包名请根据发行版调整。
| 组件 | 安装命令(Ubuntu) | 验证命令 |
|---|---|---|
| Nginx | sudo apt install nginx |
sudo systemctl status nginx |
| MySQL | sudo apt install mysql-server |
sudo mysql -u root -p |
| PHP 8.1 | sudo apt install php-fpm php-mysql |
php -v |
安装后关键配置:
-
Nginx配置:站点配置文件位于
/etc/nginx/sites-available/,启用站点后需执行:sudo ln -s /etc/nginx/sites-available/你的站点 /etc/nginx/sites-enabled/ sudo nginx -t # 语法检查 sudo systemctl reload nginx -
PHP-FPM状态:如果访问
.php文件时直接下载而非渲染,很可能是因为Nginx缺少fastcgi_pass指向正确IP和端口。默认配置中的unix:/var/run/php/php8.1-fpm.sock是常见通行方式。 -
MySQL安全初始化:
sudo mysql_secure_installation建议对root用户设置强密码并删除匿名账户。
场景化建议
- 首次测试时,可以在Nginx默认根目录
/var/www/html下创建一个info.php文件(内容为<?php phpinfo(); ?>),浏览器访问/info.php确认PHP正常运行。测试完毕后务必删除该文件,避免暴露敏感信息。 - 如果ECS使用的是系统镜像而非纯净版,建议先卸载自带的Apache等冲突服务。
四、安全加固与日常运维
核心结论
一个配置正确的Linux服务器,即使不装任何安全软件,也能抵挡绝大多数自动化攻击。关键在于以下几件事做到位。
解释依据
-
防火墙配置(UFW / firewalld)
- Ubuntu使用UFW:
sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable sudo ufw status - CentOS使用firewalld:
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload
- Ubuntu使用UFW:
-
限制登录尝试次数
安装fail2ban可针对SSH暴力破解自动封禁IP:sudo apt install fail2ban sudo systemctl enable --now fail2ban -
定期检查日志
关键日志位置:- 系统日志:
/var/log/syslog(Ubuntu)或/var/log/messages(CentOS) - Nginx访问日志:
/var/log/nginx/access.log - 认证失败记录:
/var/log/auth.log
- 系统日志:
-
端口最小化
只开放业务需要的端口。例如个人博客只需80/443和22(SSH,且建议改为非标准端口)。
场景化建议
- 如果不熟悉命令行,可以使用云厂商提供的“安全组”或“网络ACL”功能作为第一道防线,服务器内部防火墙作为第二道。两者配合使用安全性更高。
- 生产环境中尽量别在服务器上执行
apt autoremove等全量清理命令,避免误删除关键依赖包。建议先apt list --upgradable预览后再决定。
五、关键对比 / 注意事项
常见分布式文件系统对比(仅为参考思路,非本文核心)
| 特性 | Ubuntu 22.04 (Server) | CentOS 7 | 备注 |
|---|---|---|---|
| 默认包管理器 | apt | yum | 命令差异大 |
| 系统更新策略 | 激进,新版本快 | 保守,稳定性高 | CentOS已停维,建议迁移至Rocky或Alma |
| 默认防火墙 | UFW(需手动启用) | firewalld(默认开启) | 新手常因iptables未配置导致端口不通 |
| 软件源 | 默认包含许多常用包 | 需额外EPEL源 | EPEL安装命令:sudo yum install epel-release |
常见错误排查速查表
| 问题现象 | 最常见原因 | 解决步骤 |
|---|---|---|
| SSH连接超时 | 安全组未放行22端口 | 登录云控制台 → 安全组 → 添加入方向规则 |
| 访问网站显示403 | 目录权限或索引文件缺失 | 检查根目录权限(755)和文件是否存在 |
| php文件被下载 | Nginx未配置PHP解析 | 检查fastcgi_pass指向是否正确 |
command not found |
环境变量未生效或未安装 | 执行 echo $PATH,确认安装路径已加入 |
六、FAQ
Q1. 新手应该选择Ubuntu还是CentOS?
建议优先选Ubuntu 22.04 LTS。理由:社区文档丰富、包更新快、软件源覆盖广、对云平台兼容性好。CentOS 7已于2024年结束生命周期,不推荐新项目使用。如果你需要RHEL兼容环境,可考虑Rocky Linux或AlmaLinux。
Q2. 为什么我配置了防火墙还是无法访问服务?
首先检查云平台的安全组——安全组的生效层级高于服务器防火墙。即使服务器内部 iptables 放行了所有端口,安全组仍可能阻止入站流量。建议先去云控制台检查入站规则。
Q3. 服务器被暴力破解了怎么办?
第一步:立即禁用root密码登录(方法见本文第二节)。第二步:更改SSH端口(如改为 2222)并重启sshd。第三步:安装fail2ban。这些措施做完后,手动解封被锁的正常IP即可。
Q4. 如何确认我的Linux版本和位数?
执行以下任一条命令即可:
uname -a # 显示完整内核信息
lsb_release -a # 显示发行版版本(部分系统需安装lsb-release)
cat /etc/os-release # 通用方案,大部分发行版支持
七、结论
Linux服务器搭建不是一个“一次完成”的任务,而是一个持续优化的过程。从本文带你看的三个步骤——初始化、部署环境、安全加固——其实是任何一台服务器都必须经历的最小闭环。
如果你是第一次上手,推荐按以下顺序行动:
- 购买一台最便宜的轻量应用服务器(1核1G起步即可)
- 按照本文第二章完成初始化
- 部署Nginx + PHP,放一个静态页面验证环境
- 开启UFW和fail2ban
- 打印一份常见端口参考表贴在桌面上
完整跑通上述流程后,你就有了单机应用的基本运维能力。后续无论是迁移数据库、配置SSL证书,还是做负载均衡,都能以此为基础进行扩展。记住一句话:服务器配置不怕慢,就怕跳步。 把基础打牢,生产环境中的很多问题都会提前回避。