在个人电脑(PC)上搭建Linux服务器是一个既实用又具有学习价值的过程,尤其适合开发者、爱好者或小型企业进行环境测试、文件共享或轻量级服务部署,本文将详细介绍从准备工作到系统配置、服务部署及维护的全流程,帮助读者顺利完成Linux服务器的搭建。
准备工作
在开始搭建之前,需确保硬件和软件条件满足需求,硬件方面,建议PC配置至少4GB内存(推荐8GB以上)、64位处理器、足够的存储空间(系统盘至少50GB,可根据需求扩展数据盘)以及稳定的网络连接,软件方面,需准备Linux发行版镜像(如Ubuntu Server、CentOS等)和虚拟机软件(如VirtualBox、VMware)或直接使用物理机安装,若选择虚拟化方式,需确保CPU支持虚拟化技术并在BIOS中启用。
安装Linux系统
- 选择发行版:Ubuntu Server适合新手,社区支持完善;CentOS/RHEL稳定性强,适合企业环境,本文以Ubuntu Server 22.04为例。
- 创建启动盘:使用Rufus或balenaEtcher将ISO镜像写入U盘。
- 启动安装程序:将U盘插入PC,重启并进入BIOS/UEFI设置,从U盘启动,选择“Install Ubuntu Server”进入安装界面。
- 分区配置:建议采用LVM逻辑卷管理,便于动态调整分区大小,典型分区方案如下: | 分区类型 | 文件系统 | 大小 | 用途 | |------------|----------|--------|--------------------| | /boot | ext4 | 1GB | 系统引导 | | / (根分区) | ext4 | 50GB | 系统及软件 | | swap | swap | 内存大小 | 虚拟内存 | | /home | ext4 | 剩余空间 | 用户数据 |
- 用户设置:创建普通用户(避免直接使用root),设置强密码并配置SSH密钥登录(提升安全性)。
- 安装完成:重启系统,使用
sudo -i切换至root用户进行后续配置。
基础系统配置
- 更新系统:执行
apt update && apt upgrade -y安装最新安全补丁和软件包。 - 配置静态IP:编辑
/etc/netplan/01-netcfg.yaml,设置固定IP(示例):network: version: 2 ethernets: ens33: dhcp4: no addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 114.114.114.114]应用配置:
netplan apply。 - 防火墙设置:使用
ufw管理防火墙规则,例如允许SSH和HTTP端口:ufw allow 22/tcp ufw allow 80/tcp ufw enable
部署常用服务
Web服务器(Nginx + PHP)
# 安装Nginx和PHP apt install nginx php-fpm php-mysql -y # 启动并设置开机自启 systemctl enable --now nginx php8.1-fpm # 测试配置:访问http://服务器IP,显示Nginx欢迎页即成功
数据库服务(MySQL)
# 安装MySQL apt install mysql-server -y # 安全配置:执行mysql_secure_installation设置root密码、移除匿名用户等 systemctl enable --now mysql
文件共享(Samba)
# 安装Samba apt install samba -y # 创建共享目录并设置权限 mkdir -p /home/share chmod 777 /home/share # 配置Samba:编辑/etc/samba/smb.conf [global] workgroup = WORKGROUP security = user [share] path = /home/share browsable = yes writable = yes valid users = your_username # 重启服务:systemctl restart smbd
远程管理与监控
- SSH远程登录:使用
ssh your_username@服务器IP连接,建议禁用密码登录(仅用密钥)。 - 监控工具:安装
htop(进程监控)、nethogs(流量监控)或prometheus+grafana(可视化监控)。 - 日志管理:通过
journalctl -u nginx查看服务日志,或配置rsyslog集中管理日志。
安全加固
- 禁用root SSH登录:编辑
/etc/ssh/sshd_config,设置PermitRootLogin no后重启SSH服务。 - 定期更新:配置自动更新:
apt install unattended-upgrades -y,编辑/etc/apt/apt.conf.d/50unattended-upgrades启用自动更新。 - fail2ban防护:安装
fail2ban防止暴力破解,配置/etc/fail2ban/jail.local锁定恶意IP。
常见问题与维护
- 磁盘空间不足:使用
df -h检查分区,扩展LVM卷或清理无用文件(如apt autoremove)。 - 服务无法启动:检查日志(
journalctl -u 服务名)和配置文件语法(如nginx -t)。 - 数据备份:使用
rsync或tar定期备份重要数据,rsync -av /home/share/ user@backup_server:/backup/
相关问答FAQs
Q1: 如何在Linux服务器上实现域名解析?
A1: 可通过两种方式实现:1)修改本地hosts文件(/etc/hosts),仅对当前服务器生效;2)配置DNS服务器(如BIND),将域名指向服务器IP,对于公网域名,需在域名注册商处修改NS记录或A记录。
Q2: 如何设置开机自启动自定义脚本?
A2: 可通过创建systemd服务实现,为脚本/home/user/myscript.sh创建服务文件/etc/systemd/system/myscript.service如下:
[Unit] Description=My Custom Script After=network.target [Service] Type=simple User=user ExecStart=/home/user/myscript.sh Restart=on-failure [Install] WantedBy=multi-user.target
执行systemctl enable --now myscript即可开机自启。
