Linux 搭建服务器是许多开发者和运维人员的必备技能,其稳定性、安全性和灵活性使其成为服务器部署的首选系统,本文将以主流的CentOS 7和Ubuntu 20.04 LTS为例,从准备工作到服务部署,详细讲解Linux服务器的搭建流程,帮助读者快速上手。

准备工作
在开始搭建服务器前,需明确需求并完成准备工作,首先是硬件选择:若为本地搭建,建议选择至少2核CPU、4GB内存、50GB存储的配置;若使用云服务器,阿里云、腾讯云等平台均可提供轻量应用服务器,默认预装Linux系统,其次是系统选择:CentOS 7适合企业级应用,稳定性高;Ubuntu 20.04 LTS拥有丰富的软件包和社区支持,适合开发环境,最后是网络环境:确保服务器能访问外网,并记录其公网IP(云服务器)或内网IP(本地服务器)。
系统安装与初始化
云服务器安装
云服务器通常提供镜像选择功能,登录管理后台后,选择“创建实例”,在系统镜像中选择CentOS 7或Ubuntu 20.04 LTS,配置CPU、内存和存储,完成创建后即可获得初始IP地址和root密码。
本地服务器安装
若使用物理机或虚拟机(如VMware、VirtualBox),需下载系统ISO镜像(CentOS 7镜像地址:https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/;Ubuntu 20.04镜像地址:https://ubuntu.com/download/server),通过U盘启动后,按照界面提示进行分区(建议/boot 500MB、swap 2倍内存、/剩余空间)、设置root密码和网络配置,完成安装后重启系统。
初始化配置
登录系统后,首先更新系统包:
- CentOS执行:
yum update -y - Ubuntu执行:
apt update && apt upgrade -y
接着创建普通用户(避免直接使用root),例如创建用户admin:useradd admin && passwd admin # 设置用户密码 usermod -aG wheel admin # CentOS下赋予sudo权限 usermod -aG sudo admin # Ubuntu下赋予sudo权限
最后配置SSH远程登录,编辑
/etc/ssh/sshd_config文件,将PermitRootLogin yes改为no(禁用root远程登录),重启SSH服务:systemctl restart sshd。
基础环境配置
网络配置
确保服务器IP地址固定,避免重启后变更。
-
CentOS 7:编辑
/etc/sysconfig/network-scripts/ifcfg-ens33(网卡名可能为ens33、eth0等),设置:TYPE=Ethernet BOOTPROTO=static IPADDR=192.168.1.100 # 静态IP NETMASK=255.255.255.0 # 子网掩码 GATEWAY=192.168.1.1 # 网关 DNS1=8.8.8.8 # DNS ONBOOT=yes
保存后执行
ifdown ens33 && ifup ens33重启网卡。
-
Ubuntu 20.04:编辑
/etc/netplan/01-netcfg.yaml,配置:network: version: 2 ethernets: ens33: dhcp4: no addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8]保存后执行
netplan apply应用配置。
时区与时间同步
执行timedatectl set-timezone Asia/Shanghai设置时区,安装NTP服务同步时间:
- CentOS:
yum install ntp -y && systemctl start ntpd && systemctl enable ntpd - Ubuntu:
apt install ntp -y && systemctl start ntp && systemctl enable ntp
核心服务部署
Web服务(Nginx)
Nginx是一款轻量级高性能Web服务器,支持反向代理和负载均衡。
安装Nginx:
- CentOS:
yum install nginx -y - Ubuntu:
apt install nginx -y
启动并设置开机自启:systemctl start nginx && systemctl enable nginx
配置防火墙开放80端口: - CentOS:
firewall-cmd --permanent --add-service=http && firewall-cmd --reload - Ubuntu:
ufw allow 80/tcp
访问服务器IP,若显示Nginx欢迎页面,则安装成功。
数据库服务(MySQL)
MySQL是常用的关系型数据库,用于存储业务数据。
安装MySQL:
- CentOS 7:需先添加EPEL源,
yum install mysql-server mysql -y - Ubuntu:
apt install mysql-server mysql-client -y
安全配置:执行mysql_secure_installation,根据提示设置root密码、移除匿名用户、禁止root远程登录等。
启动MySQL并设置自启:systemctl start mysqld && systemctl enable mysqld(CentOS)或systemctl start mysql && systemctl enable mysql(Ubuntu)。
部署Web应用(以WordPress为例)
WordPress是一款流行的博客系统,需结合Nginx和MySQL使用。
下载并解压WordPress:
cd /tmp && wget https://wordpress.org/latest.tar.gz tar -zxvf latest.tar.gz && mv wordpress /var/www/html/ chown -R nginx:nginx /var/www/html/wordpress # CentOS chown -R www-data:www-data /var/www/html/wordpress # Ubuntu
在MySQL中创建数据库:mysql -u root -p,执行:
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress_user'@'localhost'; FLUSH PRIVILEGES; EXIT;
配置Nginx虚拟主机,编辑/etc/nginx/conf.d/wordpress.conf:

server {
listen 80;
server_name your_domain.com; # 替换为域名或IP
root /var/www/html/wordpress;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args;
}
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:systemctl restart nginx,访问服务器IP,按照WordPress提示完成安装。
安全加固策略
定期更新系统
设置自动更新:
- CentOS:安装
yum-cron,systemctl enable yum-cron - Ubuntu:编辑
/etc/apt/apt.conf.d/10periodic,设置APT::Periodic::Unattended-Upgrade "1";
防火墙与端口管理
仅开放必要端口(如80、443、22),关闭其他端口:
- CentOS:
firewall-cmd --permanent --remove-service=ssh(若需禁用SSH) - Ubuntu:
ufw deny 22
安装Fail2ban防止暴力破解
Fail2ban可监控登录失败日志并自动封禁IP。
安装:
- CentOS:
yum install fail2ban -y - Ubuntu:
apt install fail2ban -y
配置/etc/fail2ban/jail.local:[sshd] enabled = true port = 22 filter = sshd logpath = /var/log/secure maxretry = 3 bantime = 3600
启动Fail2ban:
systemctl start fail2ban && systemctl enable fail2ban
常见问题排查
- SSH连接失败:检查防火墙是否开放22端口,SSH配置文件
/etc/ssh/sshd_config是否正确,sshd服务是否运行。 - Nginx无法访问:检查
nginx服务状态、防火墙配置、网站目录权限及配置文件语法(nginx -t)。 - MySQL连接失败:确认MySQL服务运行、用户权限、密码是否正确,检查
/var/log/mysqld.log(CentOS)或/var/log/mysql/error.log(Ubuntu)错误日志。
通过以上步骤,已完成Linux服务器的搭建、基础服务部署和安全加固,Linux服务器的维护是一个持续的过程,需定期更新系统、监控日志、备份数据(如使用rsync或tar命令),随着业务需求增长,还可扩展负载均衡、SSL证书配置、容器化部署(如Docker、Kubernetes)等高级功能,为应用提供更稳定、高效的支持。



















