Linux凭借其稳定性、安全性和灵活性,成为搭建服务器的首选系统之一,本文将以Ubuntu Server 22.04 LTS为例,详细介绍从零开始搭建服务器的完整流程,包括系统安装、基础配置、服务部署及安全加固等关键步骤。

准备工作与环境要求
在开始搭建前,需确保满足以下条件:
- 硬件要求:至少1核CPU、1GB内存、20GB硬盘空间(推荐2核2GB以上以获得更好性能);
- 网络环境:服务器需连接互联网,并获取静态IP地址(或通过路由器设置DHCP保留IP);
- 访问工具:一台可连接服务器的电脑,推荐使用PuTTY(Windows)或SSH客户端(Linux/macOS);
- 系统镜像:从Ubuntu官网下载Ubuntu Server 22.04 LTS ISO镜像(https://ubuntu.com/download/server)。
系统安装步骤
-
启动安装程序
将Ubuntu Server镜像写入U盘(通过Rufus或balenaEtcher),服务器设置为U盘启动,进入安装界面选择“Install Ubuntu Server”。 -
语言与键盘布局
选择安装语言(建议“English”以避免后续配置问题),键盘布局默认“English (US)”即可。 -
网络配置
选择“Configure network manually”,输入静态IP地址(如192.168.1.100)、子网掩码(255.255.255.0)、网关(如192.168.1.1)和DNS服务器(如8.8.8.8),完成后点击“Done”。 -
磁盘分区
选择“Guided - use entire disk”自动分区(适合新手),或手动分区:/boot:512MB(启动分区,ext4格式);- 剩余空间的70(根分区,ext4格式);
swap:内存的1-2倍(交换分区,如内存为2GB则swap设为4GB);/home:剩余空间(用户数据分区,ext4格式)。
-
用户与安全设置
- 创建普通用户(如
admin),并设置强密码; - 勾选“Require my password to log in”启用密码登录;
- 禁用SSH密码登录(后续步骤配置密钥登录更安全)。
- 创建普通用户(如
-
安装完成
等待安装完成后,重启服务器,拔出U盘,使用SSH登录(命令:ssh admin@192.168.1.100)。
基础系统配置
-
更新系统
执行以下命令更新软件包列表和已安装软件:sudo apt update && sudo apt upgrade -y
-
配置主机名
修改服务器主机名(如webserver):sudo hostnamectl set-hostname webserver
-
设置时区
选择时区为Asia/Shanghai:sudo timedatectl set-timezone Asia/Shanghai
-
安装常用工具
sudo apt install -y net-tools curl wget vim unzip
net-tools:提供ifconfig、netstat等网络命令;curl/wget:下载文件工具;vim:文本编辑器;unzip:解压工具。
部署常用服务
部署Web服务(Nginx + PHP)
Nginx是一款高性能Web服务器,支持反向代理和负载均衡。
-
安装Nginx:
sudo apt install -y nginx
启动并设置开机自启:
sudo systemctl start nginx sudo systemctl enable nginx
访问
http://服务器IP,显示“Welcome to nginx”即安装成功。 -
安装PHP(以PHP 8.1为例):
sudo apt install -y php8.1-fpm php8.1-mysql php8.1-gd php8.1-xml
测试PHP:创建
/var/www/html/info.php文件,写入<?php phpinfo(); ?>,访问http://服务器IP/info.php查看PHP信息。 -
配置Nginx虚拟主机:
编辑/etc/nginx/sites-available/default,修改root目录为/var/www/html,并添加PHP支持:location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.1-fpm.sock; }重启Nginx:
sudo systemctl restart nginx。
部署数据库服务(MySQL)
MySQL是常用的关系型数据库,用于存储网站数据。
- 安装MySQL:
sudo apt install -y mysql-server
- 安全配置:
执行sudo mysql_secure_installation,根据提示设置root密码、移除匿名用户、禁止root远程登录等(推荐选择“Y”)。 - 创建数据库和用户:
sudo mysql -u root -p CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword'; GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost'; FLUSH PRIVILEGES; EXIT;
部署FTP服务(vsftpd)
vsftpd是轻量级FTP服务器,用于文件传输。
- 安装vsftpd:
sudo apt install -y vsftpd
- 配置匿名用户:
编辑/etc/vsftpd.conf,修改以下参数:anonymous_enable=NO # 禁止匿名登录 local_enable=YES # 允许本地用户登录 write_enable=YES # 允许写入 chroot_local_user=YES # 限制用户仅能访问家目录
- 创建FTP用户:
sudo useradd -m ftpuser # 创建用户 sudo passwd ftpuser # 设置密码
- 重启服务:
sudo systemctl restart vsftpd sudo systemctl enable vsftpd
安全加固措施
-
配置防火墙
安装UFW(Uncomplicated Firewall),仅开放必要端口(如SSH 22、HTTP 80、HTTPS 443):sudo apt install -y ufw sudo ufw allow 22/tcp sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable # 启用防火墙(输入Y确认)
-
禁用root SSH登录
编辑/etc/ssh/sshd_config,修改以下参数:PermitRootLogin no # 禁止root登录 PasswordAuthentication no # 禁用密码登录(需提前配置SSH密钥)
重启SSH服务:
sudo systemctl restart sshd。 -
定期更新系统
设置自动更新:sudo apt install -y unattended-upgrades sudo dpkg-reconfigure unattended-upgrades # 选择“自动安装安全更新”
常见问题排查
-
无法访问Web服务
- 检查防火墙是否开放80端口:
sudo ufw status; - 检查Nginx服务状态:
sudo systemctl status nginx; - 检查网站目录权限:
sudo chown -R www-data:www-data /var/www/html。
- 检查防火墙是否开放80端口:
-
FTP无法连接
- 检查vsftpd服务状态:
sudo systemctl status vsftpd; - 检查用户家目录权限:
sudo chmod 755 /home/ftpuser; - 检查SELinux(若启用):
sudo setsebool -P ftpd_full_access on。
- 检查vsftpd服务状态:
相关问答FAQs
Q1:如何将本地文件上传到服务器?
A:可通过三种方式上传:
- SCP命令(适用于Linux/macOS):
scp /path/to/local_file user@server_ip:/path/to/remote_dir; - WinSCP工具(Windows图形化工具,输入服务器IP和用户名密码即可拖拽上传);
- FTP客户端(如FileZilla,输入服务器IP、FTP用户名和密码连接后上传)。
Q2:如何设置服务器自动备份?
A:使用rsync工具设置定时备份,例如每天备份/var/www目录到/backup:
- 安装rsync:
sudo apt install -y rsync; - 创建备份脚本
/backup/backup.sh:#!/bin/bash rsync -avz /var/www/ /backup/www_backup/$(date +%Y%m%d)/
- 添加定时任务(crontab):
crontab -e,添加以下行实现每天凌晨2点备份:0 2 * * * /bin/bash /backup/backup.sh
- 赋予脚本执行权限:
sudo chmod +x /backup/backup.sh。
通过以上步骤,即可完成Linux服务器的基础搭建与配置,后续可根据需求部署更多服务(如Docker、Kubernetes等),并定期维护系统安全。
