所有托管服务节省 15%

测试技能,享折扣

使用代码: Skills 开始使用
China
Linux 管理

安装和配置 Ubuntu 组件:完整指南

Ubuntu 仍然是世界上最受欢迎的 Linux 发行版之一——这是有原因的。它的灵活性、强大的软件包生态系统和强大的社区支持使其成为开发人员、系统管理员和企业的理想平台。无论您是在设置本地开发机器还是在云中配置 VPS Hosting 环境,了解如何正确安装和配置 Ubuntu 组件是一项基础技能,在基础设施的各个级别都能带来回报。

本综合指南将引导您完成每个关键步骤:更新系统、安装必要的软件包、配置防火墙、设置数据库服务器、优化性能等等。完成后,您的 Ubuntu 系统将得到加固、高效,并准备好用于生产工作负载。

1. 在安装任何内容之前更新 Ubuntu

在触及任何软件包之前,始终将您的系统完全更新到最新状态。这确保您使用的是最新的安全补丁、错误修复和软件兼容性改进。

sudo apt update && sudo apt upgrade -y

这样做的作用:

  • apt update — 从所有配置的存储库刷新本地软件包索引。
  • apt upgrade -y — 将所有已安装的软件包升级到其最新可用版本,自动确认提示。

> 专业提示:在新配置的服务器上 — 特别是如果您在专用服务器上运行 Ubuntu — 这一步是必不可少的。过时的软件包是安全漏洞最常见的来源之一。

升级后,如果内核已更新,请重新启动:

sudo reboot

2. 安装必要组件

Ubuntu 的强大之处在于其可扩展性。以下小节涵盖了任何严肃的 Ubuntu 部署中最关键的软件包。

2.1. Build Essentials

build-essential 软件包安装了从源代码编译软件所需的一套精选工具,包括 GCC(GNU 编译器集合)、Make 和标准 C/C++ 库。

sudo apt install build-essential -y

验证安装:

gcc --version
make --version

此软件包是许多其他工具和语言运行时的先决条件(例如,Python 扩展、Ruby gems、Node.js 原生模块)。

2.2. Git — 版本控制系统

Git 是源代码管理、协作开发和部署管道的行业标准工具。

sudo apt install git -y

安装后,配置您的全局身份:

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

验证您的配置:

git config --list

可选但推荐:将您的默认分支名称设置为 main 以符合现代约定:

git config --global init.defaultBranch main

2.3. 网络工具:curl 和 wget

这些实用程序对于下载文件、测试 API 和直接从命令行调试网络连接是不可或缺的。

sudo apt install curl wget -y

快速使用示例:

# Download a file with wget
wget https://example.com/file.tar.gz

# Test an API endpoint with curl
curl -I https://example.com

其他有用的网络诊断工具:

sudo apt install net-tools dnsutils traceroute -y
  • net-tools — 提供 ifconfignetstat 和相关命令。
  • dnsutils — 包括 dignslookup 用于 DNS 故障排除。
  • traceroute — 追踪到远程主机的网络路径。

2.4. 文本编辑器

每个系统管理员都需要一个可靠的命令行文本编辑器。Ubuntu 根据您的偏好和工作流程支持多个选项。

Nano(初学者友好):

sudo apt install nano -y

Vim(强大、高度可配置):

sudo apt install vim -y

Emacs(功能丰富、可扩展):

sudo apt install emacs -y

> 建议:对于服务器环境,Vim 是最普遍可用和功能最强大的选项。投入时间学习其核心命令 — 这将显著加快您的工作流程。

2.5. Web 服务器安装

Web 服务器对于托管网站、Web 应用程序和 API 至关重要。Ubuntu 上的两个主要选择是 NginxApache

安装 Nginx(推荐用于高性能)

sudo apt install nginx -y

启动并启用 Nginx 以在启动时自动启动:

sudo systemctl start nginx
sudo systemctl enable nginx

验证它是否正在运行:

sudo systemctl status nginx

重新加载前测试您的配置:

sudo nginx -t

安装 Apache

sudo apt install apache2 -y
sudo systemctl start apache2
sudo systemctl enable apache2

Nginx 与 Apache — 您应该选择哪一个?

功能NginxApache
负载下的性能优秀(事件驱动)良好(进程/线程基础)
静态文件服务非常快
.htaccess 支持
模块生态系统不断增长广泛
内存使用较低较高

对于大多数现代部署 — 特别是在云 VPS 托管环境中 — Nginx 是首选,因为它在处理并发连接和较低内存占用方面表现优越。

3. 配置软件仓库

Ubuntu 的默认安装仅启用 MainRestricted 仓库。要访问范围更广的软件,您应该启用 UniverseMultiverse 仓库。

方法 1:使用 GUI(桌面 Ubuntu)

  1. 从应用菜单打开 Software & Updates
  2. Ubuntu Software 选项卡下,勾选 UniverseMultiverse 的复选框。
  3. 点击 Close,在提示时重新加载软件包列表。

方法 2:使用命令行(推荐用于服务器)

sudo add-apt-repository universe
sudo add-apt-repository multiverse
sudo apt update

仓库概览:

仓库内容
Main官方支持的开源软件
Restricted具有官方支持的专有驱动程序
Universe社区维护的开源软件
Multiverse具有许可限制的软件

添加第三方 PPA

对于官方仓库中不可用的软件,您可以添加个人软件包存档 (PPA):

sudo add-apt-repository ppa:repository-name/ppa
sudo apt update
sudo apt install package-name

> 安全提示:仅从受信任的知名来源添加 PPA。第三方仓库可能会将未经审查的软件引入您的系统。

4. 使用 UFW 安装和配置防火墙

Ubuntu 附带 UFW (Uncomplicated Firewall),这是 iptables 的用户友好前端。正确配置防火墙是任何面向互联网的服务器最重要的安全步骤之一。

启用 UFW

sudo ufw enable

允许基本服务

在启用防火墙之前,始终允许 SSH,以避免将自己锁在外面:

sudo ufw allow ssh

或明确指定端口:

sudo ufw allow 22/tcp

允许 HTTP 和 HTTPS 流量用于网络服务器:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

允许特定应用程序配置文件:

sudo ufw allow 'Nginx Full'
# or
sudo ufw allow 'Apache Full'

检查防火墙状态

sudo ufw status verbose

其他 UFW 命令

# Deny a specific port
sudo ufw deny 8080/tcp

# Delete a rule
sudo ufw delete allow 8080/tcp

# Reset all rules
sudo ufw reset

# Disable UFW
sudo ufw disable

> 最佳实践:遵循最小权限原则 — 仅打开服务明确需要的端口。每个不必要的开放端口都是潜在的攻击面。

5. 安装和配置数据库服务器

数据库是几乎所有Web应用程序的骨干。Ubuntu通过其软件包存储库支持所有主要的关系型和NoSQL数据库系统。

5.1. 安装MySQL

MySQL是世界上部署最广泛的开源关系型数据库。

sudo apt install mysql-server -y

安装后,运行安全加固脚本:

sudo mysql_secure_installation

此交互式脚本将:

  • 设置root密码(或验证密码强度)
  • 删除匿名用户
  • 禁止远程root登录
  • 删除测试数据库
  • 重新加载权限表

启动并启用MySQL:

sudo systemctl start mysql
sudo systemctl enable mysql

验证服务是否正在运行:

sudo systemctl status mysql

连接到MySQL shell:

sudo mysql -u root -p

5.2. 安装MariaDB(MySQL兼容替代方案)

MariaDB是MySQL的社区开发分支,具有增强的性能和其他功能:

sudo apt install mariadb-server mariadb-client -y
sudo mysql_secure_installation
sudo systemctl enable --now mariadb

5.3. 安装PostgreSQL

PostgreSQL是一个功能强大的企业级对象关系数据库系统,以其标准合规性和可扩展性而闻名。

sudo apt install postgresql postgresql-contrib -y

启动并启用PostgreSQL:

sudo systemctl start postgresql
sudo systemctl enable postgresql

切换到PostgreSQL管理用户并打开shell:

sudo -i -u postgres
psql

创建新数据库和用户:

CREATE DATABASE myapp_db;
CREATE USER myapp_user WITH ENCRYPTED PASSWORD 'strong_password';
GRANT ALL PRIVILEGES ON DATABASE myapp_db TO myapp_user;
q

6. 安装其他工具和实用程序

除了基本工具外,以下工具可以显著提高您的生产力、系统可见性和部署能力。

Docker — 容器运行时

Docker 使您能够将应用程序及其依赖项打包到便携式容器中,确保开发、暂存和生产环境之间的一致性。

sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable docker

将您的用户添加到 Docker 组以运行命令而无需 sudo

sudo usermod -aG docker $USER
newgrp docker

验证 Docker 是否正常工作:

docker run hello-world

对于生产部署,请考虑同时安装 Docker Compose

sudo apt install docker-compose -y

htop — 交互式进程查看器

htop 提供系统进程、CPU 使用率、内存消耗等的实时彩色视图 — 远优于标准 top 命令。

sudo apt install htop -y
htop

htop 快捷键:

  • F6 — 按列排序进程
  • F9 — 终止进程
  • F10 — 退出
  • / — 搜索进程

Tmux — 终端多路复用器

Tmux 允许您在单个 SSH 连接中创建、管理和保持多个终端会话 — 对于远程服务器上的长时间运行任务非常宝贵。

sudo apt install tmux -y

基本 Tmux 命令:

# Start a new session
tmux new -s mysession

# Detach from session (keeps it running)
Ctrl+B, then D

# List all sessions
tmux ls

# Reattach to a session
tmux attach -t mysession

其他推荐实用程序

# fail2ban — Intrusion prevention system
sudo apt install fail2ban -y

# unzip — Extract ZIP archives
sudo apt install unzip -y

# tree — Display directory structure
sudo apt install tree -y

# ncdu — Disk usage analyzer
sudo apt install ncdu -y

# jq — JSON processor for the command line
sudo apt install jq -y

7. 自定义 Ubuntu 系统设置

7.1. 启用自动安全更新

保持系统补丁是至关重要的 — 特别是在公开可访问的服务器上。Ubuntu 的 unattended-upgrades 包自动化了这个过程。

sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades

要自定义行为,请编辑配置文件:

sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

要审查的关键设置:

  • Unattended-Upgrade::Allowed-Origins — 定义哪些存储库触发自动更新。
  • Unattended-Upgrade::Automatic-Reboot — 设置为 true 以允许内核更新后自动重启。
  • Unattended-Upgrade::Mail — 配置更新活动的电子邮件通知。

7.2. 管理启动应用程序(桌面 Ubuntu)

控制哪些应用程序在登录时启动有助于减少启动时间并节省系统资源。

  1. 在 GNOME 应用程序菜单中搜索启动应用程序
  2. 查看已启用的启动程序列表。
  3. 关闭任何您在登录时不需要的应用程序。
  4. 使用添加按钮注册新的启动脚本或应用程序。

对于服务器环境,使用 systemd 管理服务:

# Disable a service from starting at boot
sudo systemctl disable service-name

# Enable a service at boot
sudo systemctl enable service-name

# List all enabled services
sudo systemctl list-unit-files --state=enabled

7.3. 配置系统时区

正确的时区配置对于日志准确性、计划任务和 SSL 证书验证至关重要。

# Check current timezone
timedatectl

# List available timezones
timedatectl list-timezones

# Set timezone
sudo timedatectl set-timezone Europe/London

7.4. 配置 SSH 以实现安全远程访问

如果您正在管理远程服务器,强化您的 SSH 配置是首要任务。

sudo nano /etc/ssh/sshd_config

推荐的安全设置:

# Disable root login
PermitRootLogin no

# Disable password authentication (use SSH keys instead)
PasswordAuthentication no

# Change default SSH port (optional but reduces automated scanning)
Port 2222

# Limit login attempts
MaxAuthTries 3

进行更改后,重启 SSH:

sudo systemctl restart sshd

> 重要:在关闭当前连接之前,始终在单独的终端会话中测试您的新 SSH 配置,以避免被锁定。

8. 设置自动备份

数据丢失是灾难性的。无论您运行的是个人项目还是业务关键应用程序,自动备份都是不可协商的。

使用 Ubuntu 的内置备份工具(桌面)

  1. 在应用菜单中搜索备份(Déjà Dup)。
  2. 配置您的备份目标:外部驱动器、网络共享或云存储。
  3. 计划选项卡下设置备份计划。
  4. 启用自动备份并配置保留期。

使用 rsync 进行命令行备份(推荐用于服务器)

rsync 是 Linux 服务器上高效、增量文件备份的黄金标准。

# Basic local backup
rsync -avz /source/directory/ /backup/destination/

# Remote backup over SSH
rsync -avz -e ssh /local/directory/ user@remote-server:/backup/path/

# Exclude specific directories
rsync -avz --exclude='*.log' --exclude='tmp/' /source/ /destination/

使用 Cron 自动化备份

crontab -e

在凌晨 2:00 添加每日备份作业:

0 2 * * * rsync -avz /var/www/ /backup/www/ >> /var/log/backup.log 2>&1

备份最佳实践

  • 遵循3-2-1 规则:3 份数据副本,在 2 种不同的媒体类型上,并有 1 份异地副本。
  • 通过执行恢复演练来定期测试您的备份。
  • 加密敏感备份数据。
  • 监控备份日志以查找故障。

9. 系统监控和性能优化

内置监控工具

GNOME System Monitor(桌面):

提供 CPU、内存、磁盘 I/O 和网络使用情况的图形概览。从应用菜单启动或通过以下方式启动:

gnome-system-monitor

htop(命令行):

htop

vmstat — 虚拟内存统计:

vmstat 1 10

iostat — CPU 和 I/O 统计:

sudo apt install sysstat -y
iostat -x 1 5

free — 内存使用情况:

free -h

df — 磁盘空间使用情况:

df -h

netstat / ss — 网络连接:

ss -tuln

9.1. 使用 Prometheus 和 Node Exporter 设置系统监控

对于生产环境,适当的监控堆栈提供历史数据、告警和仪表板。

# Install Node Exporter for system metrics
wget https://github.com/prometheus/node_exporter/releases/latest/download/node_exporter-*.linux-amd64.tar.gz
tar xvfz node_exporter-*.tar.gz
sudo cp node_exporter-*/node_exporter /usr/local/bin/
sudo systemctl enable --now node_exporter

10. 优化系统性能

10.1. 禁用不必要的启动服务

识别并禁用您不需要的服务:

# List all running services
sudo systemctl list-units --type=service --state=running

# Disable a specific service
sudo systemctl disable --now bluetooth.service
sudo systemctl disable --now cups.service

10.2. 配置和启用交换空间

当RAM耗尽时,交换空间充当溢出内存。在RAM有限的服务器上,正确配置的交换可以防止内存不足崩溃。

# Create a 2GB swap file
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# Make swap permanent across reboots
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

调整swappiness(较低的值=较少的积极交换):

sudo sysctl vm.swappiness=10
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf

10.3. 删除未使用的软件包和清理软件包缓存

随着时间的推移,孤立的软件包和缓存的下载会占用大量磁盘空间:

# Remove automatically installed packages no longer needed
sudo apt autoremove -y

# Remove cached package files
sudo apt autoclean

# Full clean of the package cache
sudo apt clean

10.4. 使用Deadline调度程序优化磁盘I/O

对于SSD,none(noop)调度程序通常提供更好的性能:

# Check current scheduler
cat /sys/block/sda/queue/scheduler

# Set scheduler temporarily
echo none | sudo tee /sys/block/sda/queue/scheduler

10.5. 启用和配置Fail2Ban

Fail2Ban监视日志文件,并自动禁止显示恶意行为的IP地址(例如,暴力SSH攻击):

sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban

创建本地配置覆盖:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

关键设置:

[sshd]
enabled = true
port = ssh
maxretry = 5
bantime = 3600
findtime = 600

重启Fail2Ban以应用更改:

sudo systemctl restart fail2ban
sudo fail2ban-client status sshd

使用 AlexHost 托管您的 Ubuntu 服务器

一个配置得当的 Ubuntu 系统只有在可靠的基础设施支持下才能发挥最佳性能。无论您是在部署个人项目、业务应用程序还是复杂的多层架构,可靠的托管都是一切的基础。

AlexHost 提供全套托管解决方案,专为补充您的 Ubuntu 设置而设计:

  • VPS 托管 — 完整的 root 访问权限、SSD 存储和可扩展资源。非常适合 Ubuntu 服务器部署,让您完全控制您的环境。
  • 独立服务器 — 为要求苛刻的工作负载提供裸机性能。当您需要最大的 CPU、RAM 和 I/O 吞吐量而不共享资源时理想选择。
  • 带 cPanel 的 VPS — 结合了 VPS 的强大功能和 cPanel 基于网络的管理界面的易用性 — 如果您更喜欢 GUI 而不是命令行,这是一个很好的选择。
  • SSL 证书 — 使用受信任的 SSL/TLS 证书保护您的网络应用程序。对任何生产网络服务器都是必需的。
  • 共享网络托管 — 为还不需要完整 VPS 的较小项目提供经济实惠的入门选择。

所有 AlexHost 服务器都支持 Ubuntu,可以在几分钟内配置完成,为您提供一个干净、最新的基础来应用本指南中涵盖的所有内容。

结论

安装和配置 Ubuntu 组件不是一次性任务 — 它是一个随着基础设施需求而不断发展的持续实践。通过系统地进行系统更新、必要软件包安装、存储库配置、防火墙设置、数据库部署、性能调优和自动备份,您可以构建一个强大、安全且功能强大的 Ubuntu 环境。

无论您是设置本地工作站的开发人员、管理云服务器群的系统管理员,还是部署生产应用程序的企业,本指南中涵盖的原则和命令都提供了坚实、可重复的基础。

关键要点:

  • 在安装新软件之前,始终更新您的系统。
  • 遵循用户、服务和防火墙规则的最小权限原则。
  • 自动化安全更新和备份 — 不要依赖手动流程。
  • 主动监控您的系统,而不是被动监控。
  • 明智地选择您的托管基础设施 — 它是一切的基础。

始终应用这些实践,您的 Ubuntu 系统将保持安全、高性能,并准备好应对任何挑战。