Ubuntu Server基础介绍:新手必看的全面解析 – wiki基地


Ubuntu Server 基础介绍:新手必看的全面解析

引言

在当今的数字化世界中,服务器是支撑互联网、企业运营以及各种在线服务的基础。它们是数据存储、应用程序运行和信息交换的核心枢纽。而作为服务器操作系统领域的佼佼者,Ubuntu Server 以其免费、开源、稳定、安全和庞大的社区支持,成为了无数组织和个人搭建服务器环境的首选。

对于刚刚接触服务器或 Linux 系统的新手来说,Ubuntu Server 可能既神秘又令人望而却步,尤其是它主要基于命令行界面(CLI)的操作方式。然而,一旦掌握了基础知识,你会发现 Ubuntu Server 的强大和灵活。

本文旨在为完全的新手提供一份全面、深入的 Ubuntu Server 基础介绍。我们将从服务器操作系统的基本概念讲起,探讨 Ubuntu Server 的优势与应用场景,详细讲解安装过程中的关键步骤,并通过丰富的示例带你熟悉命令行操作、文件系统结构、软件包管理、用户权限、网络配置和服务控制等核心概念。读完本文,你将对 Ubuntu Server 有一个清晰的认识,并具备入门操作的能力,为后续更深入的学习和实践打下坚实的基础。

准备好了吗?让我们一起踏上 Ubuntu Server 的探索之旅吧!

第一章:什么是服务器操作系统?为什么选择 Ubuntu Server?

1.1 服务器操作系统的本质

操作系统(OS)是计算机硬件与软件之间的桥梁,它管理着计算机的所有资源,并为应用程序提供运行环境。我们日常使用的 Windows、macOS、桌面版 Ubuntu 都属于桌面操作系统,它们通常专注于图形用户界面(GUI)、易用性以及满足个人办公、娱乐等需求。

而服务器操作系统则有所不同。它们的首要任务是:

  • 稳定性与可靠性: 服务器需要长时间不间断地运行,宕机可能导致服务中断和巨大损失。服务器 OS 设计上更注重稳定性,减少不必要的服务和资源消耗。
  • 安全性: 服务器暴露在网络环境中,更容易受到攻击。服务器 OS 提供更强大的安全特性和更灵活的权限控制机制。
  • 高性能与效率: 服务器需要同时处理大量请求,服务器 OS 优化了资源调度和系统调用,以提高性能。
  • 远程管理: 服务器通常部署在数据中心或机房,管理员需要通过网络进行远程管理,因此服务器 OS 提供了强大的远程管理工具(如 SSH)。
  • 最小化安装: 服务器 OS 通常只安装必要的组件,以减少攻击面和资源占用。许多服务器 OS 默认甚至不安装图形界面。

1.2 Ubuntu Server:为服务而生

Ubuntu Server 是由 Canonical 公司开发的、基于 Debian 的 Linux 发行版 Ubuntu 的一个版本,专门为服务器环境设计。它继承了 Ubuntu 桌面版的易用性,同时又针对服务器需求进行了优化。

1.3 Ubuntu Server 的核心优势

为什么 Ubuntu Server 如此受欢迎?原因有很多:

  • 免费与开源: 这是 Linux 操作系统的普遍优势。用户可以免费获取、使用和分发 Ubuntu Server,并可以查看其源代码,这提高了透明度和安全性。
  • 强大的社区与支持: Ubuntu 拥有全球最庞大的 Linux 用户和开发者社区之一。这意味着当你遇到问题时,很容易在网上找到帮助、教程和解决方案。Canonical 也提供商业支持选项。
  • 长期支持(LTS)版本: Ubuntu 提供 LTS(Long Term Support)版本,每两年发布一次,提供长达五年的免费安全更新和维护。这为需要长期稳定运行环境的用户提供了保障。当前流行的 LTS 版本包括 18.04 (已接近 EOL), 20.04, 22.04,以及最新的 24.04。对于生产环境,通常推荐使用最新的 LTS 版本。
  • 易用性(相对于其他企业级 Linux): 虽然是命令行界面,但 Ubuntu 的软件包管理系统(APT)和标准化的配置方式使得软件安装、更新和系统管理相对直观。
  • 广泛的软件仓库: Ubuntu 的软件仓库包含了几乎所有常见的服务器软件和工具,通过 apt 命令可以轻松安装和管理。
  • 优秀的兼容性: Ubuntu Server 支持多种硬件架构(x86, ARM 等),并在主流的云平台(如 AWS, Azure, Google Cloud)和虚拟化平台(如 VMware, VirtualBox, KVM, Docker)上得到良好支持。
  • 内置安全特性: Ubuntu 提供了AppArmor、UFW(防火墙)等安全工具,并且安全更新及时。
  • 适用于各种场景: 从小型个人服务器到大型企业数据中心,Ubuntu Server 都能胜任,广泛应用于 Web 服务器、数据库服务器、文件服务器、容器宿主机(Docker/Kubernetes)、云计算平台等。

1.4 与桌面版 Ubuntu 的区别

新手可能会好奇,Ubuntu Server 和桌面版 Ubuntu 有什么不同?

最显著的区别在于 图形用户界面(GUI)。Ubuntu Server 默认不安装桌面环境,所有操作都通过命令行完成。这不仅减少了系统资源消耗,也降低了潜在的安全风险(图形界面有更多的服务和代码)。虽然可以在 Server 版上安装桌面环境,但这通常不推荐用于生产服务器。

此外,Server 版本在内核配置、默认安装的服务和工具等方面也针对服务器应用进行了优化。

1.5 与其他服务器操作系统的简要对比

  • Debian: Ubuntu 基于 Debian,因此两者在很多方面非常相似。Debian 以其极致的稳定性和对自由软件的坚持著称,但其软件包版本可能不如 Ubuntu 新。
  • CentOS/RHEL: Red Hat Enterprise Linux (RHEL) 及其社区版本 CentOS (现在转向 CentOS Stream 或 AlmaLinux/Rocky Linux) 是企业级 Linux 的另一大阵营。它们在企业市场占有重要地位,以其强大的稳定性和专业的企业支持闻名,但通常学习曲线更陡峭,社区版本策略有所变动。
  • Windows Server: 微软的商业服务器操作系统,提供图形界面和基于域的管理方式。与 Linux 阵营采用完全不同的技术栈,主要用于运行 Windows 平台的服务和应用。是商业软件,需要购买授权。

对于新手和大多数非企业级应用场景,Ubuntu Server 通常是更容易入门、社区资源更丰富且功能强大的选择。

第二章:准备工作与安装指南

在开始安装 Ubuntu Server 之前,你需要做一些准备。

2.1 硬件要求

Ubuntu Server 的硬件要求相对灵活,取决于你计划运行的服务。基本要求如下:

  • 处理器: 1 GHz 双核或更好的处理器。
  • 内存: 2 GB RAM 或更多(对于运行数据库、虚拟化等服务,建议 4GB 或以上)。
  • 硬盘空间: 25 GB 可用硬盘空间(建议更多,特别是用于存储数据或日志)。
  • 网络连接: 有线或无线网卡(安装过程中通常推荐有线连接)。
  • 安装介质: U 盘(推荐)或 DVD 刻录机。

2.2 下载 Ubuntu Server ISO 镜像

前往 Ubuntu 官方网站的下载页面(https://ubuntu.com/download/server)。推荐下载最新的 LTS (Long Term Support) 版本。例如,截至我知识更新的时间点,可能是 Ubuntu 22.04 LTS 或 24.04 LTS。

选择适合你硬件架构的镜像文件(通常是 amd64 架构)。下载到的文件通常是一个 .iso 格式的镜像文件。

2.3 制作安装介质

将下载的 .iso 文件写入 U 盘(或 DVD)以制作可引导的安装介质。

  • 在 Windows 上: 可以使用 Rufus、Etcher 或 Universal USB Installer 等工具。
  • 在 macOS 上: 可以使用 Etcher 或通过终端命令 dd
  • 在 Linux 上: 可以使用 Etcher 或通过终端命令 dd

例如,使用 Etcher 是一款跨平台且易用的工具,只需选择 ISO 文件、目标 U 盘,然后点击开始即可。

重要提示: 制作安装介质会擦除 U 盘上的所有数据,请提前备份。

2.4 BIOS/UEFI 设置

将制作好的安装 U 盘插入要安装 Ubuntu Server 的计算机。开机时,通常需要按下特定的按键(如 F2, F10, F12, Del 等,具体取决于你的主板品牌)进入 BIOS 或 UEFI 设置界面。在启动顺序(Boot Order)设置中,将 U 盘(或 USB HDD/UEFI: [U 盘名称])设置为第一启动项。保存设置并退出,计算机将从 U 盘启动。

2.5 开始安装

从 U 盘启动后,你将看到 Ubuntu Server 的安装程序界面。以下是安装过程中的关键步骤概述:

  1. 选择语言: 选择你熟悉的安装语言。
  2. 键盘布局: 选择合适的键盘布局。
  3. 安装类型: 通常选择 “Ubuntu Server”(而不是 “Ubuntu Server (Legacy)” 或其他选项)。
  4. 网络配置: 安装程序会尝试通过 DHCP 自动获取 IP 地址。如果你的网络需要静态 IP,可以在这里手动配置。确保网络连接正常,因为安装过程中需要下载文件。
  5. 配置代理: 如果你的网络需要通过代理才能访问互联网,在这里配置。
  6. 配置 Ubuntu Archive Mirror: 选择一个距离你较近的软件仓库镜像源,通常安装程序会自动选择最佳的。
  7. 存储配置(硬盘分区): 这是最关键的一步。
    • 使用整个磁盘 (Use An Entire Disk): 最简单的方式,安装程序会自动为你分区。对于新手和非特殊需求的场景,这是推荐的选项。
    • 自定义存储布局 (Custom Storage Layout): 允许你手动创建、删除、修改分区。这是为有特定需求(如单独挂载 /home, /var, /opt 分区,或者配置 RAID, LVM 等)的高级用户准备的。对于新手,如果选择此项,至少需要创建一个根分区 (/) 和一个交换分区 (swap)。文件系统类型通常选择 ext4。
    • 重要: 确认你选择了正确的硬盘进行安装,避免误删其他系统或数据。
  8. 用户设置: 创建一个普通用户账户。你需要设置你的姓名、服务器名称、用户名以及 密码务必记住这个密码。
    • 启用 OpenSSH Server: 强烈建议勾选此选项。 这允许你在安装完成后通过 SSH 远程连接到服务器,这是服务器管理的主要方式。
    • 导入 SSH 身份:如果你已经有 SSH 密钥对,可以在这里导入公钥,以便使用密钥认证登录(比密码更安全)。新手可以先跳过,安装后再设置。
  9. 精选服务器 snaps: 询问是否安装一些常用的服务器软件(如 Docker, Nextcloud 等)。新手可以暂时跳过,安装完成后再按需安装。
  10. 安装过程: 安装程序开始复制文件并安装系统。这需要一些时间。
  11. 安装完成: 提示安装完成后,移除安装介质,重启计算机。

2.6 初次登录

重启后,系统会引导进入新安装的 Ubuntu Server。你会看到一个登录提示符:

bash
Ubuntu 22.04 LTS
your-server-name login:

输入你在安装时创建的用户名,然后按回车。
输入你设置的密码,然后按回车(输入密码时屏幕上不会显示任何字符,这是正常的 Linux 安全机制)。

如果用户名和密码正确,你将成功登录,看到命令行的提示符(通常是 username@your-server-name:~$)。恭喜你,你已经成功安装并登录到你的第一台 Ubuntu Server 了!

第三章:深入命令行界面(CLI)

登录成功后,你面对的是一个黑白的文本界面——命令行界面(CLI)。这与习惯了图形界面的用户体验截然不同,但它是管理 Linux 服务器的强大工具。所有的系统管理、软件安装、配置修改都将在这里完成。

3.1 什么是 Shell?

当你登录到命令行界面时,实际上是启动了一个称为 Shell 的程序。Shell 负责解释你输入的命令,并将结果显示给你。Ubuntu Server 默认使用的是 Bash (Bourne Again SHell)。提示符(如 username@your-server-name:~$)是 Shell 准备好接受命令的标志。

  • username 是当前登录的用户。
  • your-server-name 是服务器的主机名。
  • ~ 表示当前所在的目录是用户的主目录(/home/username)。
  • $ 表示这是一个普通用户的提示符。如果是管理员用户(root),提示符通常是 #

3.2 基本命令操作

以下是一些新手必须掌握的 Linux 基本命令:

  • ls (list): 列出当前目录下的文件和子目录。
    • ls -l: 显示文件的详细信息(权限、所有者、大小、修改日期等)。
    • ls -a: 显示包括隐藏文件(文件名以 . 开头)在内的所有文件。
    • ls -lh: 以人类可读的方式显示文件大小(如 1.2K, 3.5M)。
  • cd (change directory): 切换当前工作目录。
    • cd /path/to/directory: 切换到指定的绝对路径。
    • cd directory_name: 切换到当前目录下的子目录。
    • cd ..: 切换到上级目录。
    • cd ~: 切换到当前用户的主目录。
    • cd -: 切换到上一次所在的目录。
  • pwd (print working directory): 显示当前所在的目录的完整路径。
  • mkdir (make directory): 创建新目录。
    • mkdir new_directory: 在当前目录下创建名为 new_directory 的目录。
    • mkdir /path/to/new_directory: 在指定路径创建目录。
    • mkdir -p /path/to/parent/child: 创建多级目录,如果父目录不存在也会一并创建。
  • rm (remove): 删除文件或目录。
    • rm file_name: 删除指定文件。
    • rm -r directory_name: 递归删除目录及其内容。慎用!
    • rm -rf directory_name: 强制递归删除目录及其内容,不提示。极其危险!在不确定时,绝不要使用!
  • cp (copy): 复制文件或目录。
    • cp source_file destination_file: 复制文件。
    • cp source_file /path/to/destination/: 复制文件到指定目录。
    • cp -r source_directory destination_directory: 递归复制目录及其内容。
  • mv (move): 移动或重命名文件/目录。
    • mv old_name new_name: 在同一目录下重命名文件/目录。
    • mv source_file /path/to/destination/: 移动文件到指定目录。
  • cat (concatenate): 显示文件内容。
    • cat file_name: 在终端显示文件的全部内容。
  • less / more: 分页显示文件内容。对于大型文件非常有用。按空格翻页,按 q 退出。
  • nano / vim: 文本编辑器。nano 对新手更友好,界面简单;vim 功能强大但学习曲线陡峭。
    • nano file_name: 用 nano 打开文件进行编辑(如果文件不存在则创建)。按 Ctrl+X 退出,按 Y 保存修改,按回车确认文件名。
  • man (manual): 查看命令的帮助手册。
    • man command_name: 显示指定命令的详细用法、选项等。按空格翻页,按 q 退出。这是学习新命令的神器。

3.3 sudo:以管理员权限执行命令

在 Linux 系统中,为了安全起见,普通用户默认没有执行某些需要系统权限的操作(如安装软件、修改系统配置、管理服务)的权利。这些操作需要以超级用户(root)的身份执行。

在 Ubuntu 中,通常不直接登录 root 用户,而是通过 sudo (superuser do) 命令来临时获取 root 权限执行特定命令。在安装过程中创建的用户默认被添加到 sudo 用户组,因此可以使用 sudo

语法:sudo command

当你第一次使用 sudo 时,系统会要求你输入当前用户的密码(不是 root 密码)。成功验证后,该命令将以 root 身份执行。之后的几分钟内再次使用 sudo 通常不需要再次输入密码。

重要: sudo 提供了强大的能力,但也伴随着风险。误用 sudo 可能导致系统损坏。在执行任何 sudo 命令之前,请确保你理解该命令的作用。

示例:
* sudo apt update: 更新软件包列表(需要 root 权限)。
* sudo systemctl restart apache2: 重启 Apache Web 服务器服务(需要 root 权限)。

第四章:核心概念解析

4.1 文件系统层次结构标准 (FHS)

Linux 文件系统采用树状结构,所有目录都从根目录 / 开始。这与 Windows 的驱动器字母(C:, D:)概念不同。理解主要的目录及其用途对于管理服务器至关重要:

  • /: 根目录,整个文件系统的起点。
  • /bin: 存放基本的用户命令(如 ls, cp, mv)。
  • /sbin: 存放系统管理员使用的基本命令(如 fdisk, ip)。
  • /etc: 存放系统配置文件(如网络配置、服务配置等)。这是你经常需要访问和修改的目录。
  • /home: 存放普通用户的主目录。每个用户都有一个以其用户名命名的子目录(/home/username)。
  • /root: root 用户的主目录。
  • /var: 存放经常变化的文件,如日志文件 (/var/log)、缓存文件 (/var/cache)、软件包管理数据 (/var/lib)、网站文件 (/var/www) 等。
  • /tmp: 存放临时文件,系统重启时通常会被清空。
  • /usr: 存放用户安装的应用程序及其相关文件。大部分非系统基本命令和库都在这里。
    • /usr/bin: 用户应用程序的命令。
    • /usr/sbin: 系统管理的非基本命令。
    • /usr/lib: 应用程序库文件。
  • /opt: 存放第三方独立软件包。
  • /dev: 存放设备文件,代表系统中的硬件设备(如硬盘 /dev/sda)。
  • /proc: 一个虚拟文件系统,存放系统进程信息和内核信息。
  • /mnt: 临时挂载文件系统(如 USB 驱动器)。
  • /media: 临时挂载可移动媒体(如光盘、U 盘)。

4.2 软件包管理系统 (APT)

软件包管理系统是 Linux 的一大亮点,它极大地简化了软件的安装、升级和卸载过程。Ubuntu 使用的是基于 Debian 的 APT (Advanced Package Tool)

APT 通过软件仓库(Repositories)工作。软件仓库是存储软件包及其相关信息(版本、依赖关系等)的服务器。通过配置合适的软件仓库源,你可以方便地获取和管理大量软件。

主要的 apt 命令:

  • sudo apt update: 必须经常运行! 更新本地软件包列表,获取仓库中最新软件包的信息,但不会安装或升级任何软件。
  • sudo apt upgrade: 升级所有已安装的、有新版本的软件包。在运行前,最好先运行 sudo apt update
  • sudo apt full-upgrade: 比 upgrade 更激进,会处理依赖关系的变化,可能删除旧的软件包或安装新的软件包以完成升级。
  • sudo apt install package_name: 安装指定的软件包及其依赖项。可以同时安装多个软件包:sudo apt install package1 package2
  • sudo apt remove package_name: 卸载指定的软件包,但保留其配置文件。
  • sudo apt purge package_name: 彻底卸载指定的软件包及其配置文件。
  • sudo apt search keyword: 搜索软件包仓库中包含指定关键字的软件包。
  • sudo apt show package_name: 显示软件包的详细信息(版本、依赖、大小、描述等)。
  • sudo apt autoremove: 删除不再被任何已安装软件包依赖的“孤立”软件包。这有助于释放磁盘空间。
  • sudo apt clean: 清理本地下载的软件包缓存文件(位于 /var/cache/apt/archives/)。

软件包来源文件: /etc/apt/sources.list 文件及其目录 /etc/apt/sources.list.d/ 存放着 APT 获取软件包的仓库地址。通常,安装时会自动配置官方仓库,无需手动修改。

4.3 用户和组管理与权限

Linux 是一个多用户操作系统,用户和组是权限管理的基础。

  • 用户 (Users): 每个用户都有一个唯一的用户名和用户 ID (UID)。
  • 组 (Groups): 组是一组用户的集合。每个组都有一个唯一的组名和组 ID (GID)。用户可以属于一个或多个组。

文件权限 (File Permissions):
每个文件和目录都有所有者(Owner)、所属组(Group)以及其他用户(Others)三组权限。权限类型包括:

  • r (read): 读取文件内容或列出目录内容。
  • w (write): 修改文件内容或在目录中创建/删除文件。
  • x (execute): 执行文件或进入目录。

使用 ls -l 命令查看文件权限,例如:

-rw-r--r-- 1 user group 1024 Jan 1 10:00 filename

解释:
* 第一个字符 - 表示文件类型(- 是文件,d 是目录)。
* 接下来三组字符 rw- r-- r-- 分别代表所有者、所属组、其他用户的权限。
* 所有者 (user) 拥有 rw- (读写) 权限。
* 所属组 (group) 拥有 r-- (只读) 权限。
* 其他用户 (others) 拥有 r-- (只读) 权限。
* 后面的数字 1 是硬链接数。
* user 是文件所有者。
* group 是文件所属组。
* 1024 是文件大小(字节)。
* Jan 1 10:00 是修改日期。
* filename 是文件名。

权限修改命令:

  • chown owner:group file_name: 更改文件的所有者和所属组。需要使用 sudo
    • sudo chown new_owner file_name: 更改所有者。
    • sudo chown :new_group file_name: 更改所属组。
  • chmod permissions file_name: 更改文件权限。

chmod 权限可以用符号表示法或数字(八进制)表示法。

  • 符号表示法: u (user), g (group), o (others), a (all)。+ (添加权限), - (移除权限), = (设置权限)。
    • chmod u+w file: 给文件所有者添加写权限。
    • chmod go-rw file: 移除所属组和其他用户的读写权限。
    • chmod a=rw file: 设置所有用户都只有读写权限。
  • 数字表示法(常用且强大): r=4, w=2, x=1。将对应权限的数字相加。
    • 所有者权限 + 所属组权限 + 其他用户权限
    • rw- 是 4+2+0 = 6
    • r-- 是 4+0+0 = 4
    • rwx 是 4+2+1 = 7
    • --- 是 0+0+0 = 0
    • 示例:chmod 755 file 意味着所有者有 rwx (7),所属组有 r-x (5),其他用户有 r-x (5)。这是许多可执行脚本或目录的常见权限。
    • 示例:chmod 644 file 意味着所有者有 rw- (6),所属组有 r– (4),其他用户有 r– (4)。这是普通配置文件的常见权限。

用户和组管理命令(需要 sudo):

  • sudo useradd username: 创建新用户。
  • sudo passwd username: 为指定用户设置或更改密码。
  • sudo usermod -aG groupname username: 将用户添加到现有组。-aG 表示追加到组列表。
  • sudo userdel username: 删除用户(不删除主目录和邮件)。
  • sudo userdel -r username: 删除用户及其主目录和邮件。
  • sudo groupadd groupname: 创建新组。
  • sudo groupdel groupname: 删除组。

4.4 网络配置基础

服务器需要网络连接才能提供服务。了解如何查看和配置网络信息非常重要。

  • 查看网络接口和 IP 地址:
    • ip addr show 或简写 ip a: 显示所有网络接口(如 eth0, ens33 等)及其 IP 地址、MAC 地址、状态等信息。
    • (较旧的命令,但在许多系统中仍可用)ifconfig: 功能类似 ip addr show
  • 测试网络连通性:
    • ping hostname_or_ip: 向目标发送网络包,测试是否可达以及延迟。按 Ctrl+C 停止。
  • 查看路由表:
    • ip route show 或简写 ip r: 显示系统的路由信息,包括默认网关。
    • (较旧的命令)route -n: 功能类似。
  • 查看 DNS 设置:
    • cat /etc/resolv.conf: 显示 DNS 服务器的 IP 地址。

网络配置修改:

在现代 Ubuntu Server 版本中,网络配置通常由 Netplan 管理。配置文件位于 /etc/netplan/ 目录下,通常是 .yaml 格式。

  • 修改网络配置通常需要编辑 Netplan YAML 文件(例如 sudo nano /etc/netplan/00-installer-config.yaml)。
  • 修改后,使用 sudo netplan try 命令测试配置是否有效(会在指定时间后回滚,防止配置错误导致无法连接)。
  • 测试成功后,使用 sudo netplan apply 命令应用新的网络配置。

SSH (Secure Shell):

SSH 是远程管理 Linux 服务器的事实标准协议。它提供加密的连接,用于执行命令、传输文件等。安装时如果选择了安装 OpenSSH Server,服务会默认启动。

  • 从客户端连接: 在另一台计算机上使用 SSH 客户端(Linux/macOS 自带 ssh 命令,Windows 可以使用 PuTTY 或新的 Windows Terminal/PowerShell)。
    • ssh username@server_ip_address
    • 输入用户的密码即可登录。

更安全的 SSH 登录方式是使用密钥认证而不是密码,这需要生成 SSH 密钥对并将公钥上传到服务器用户的 ~/.ssh/authorized_keys 文件中。这是生产环境强烈推荐的做法。

4.5 服务管理 (systemd)

服务器的主要工作是运行各种服务(也称为守护进程 – daemons),如 Web 服务器 (Apache, Nginx)、数据库服务器 (MySQL, PostgreSQL)、SSH 服务器等。

现代 Ubuntu Server 使用 systemd 作为其服务管理器。你可以使用 systemctl 命令来控制和查看服务的状态。

常用的 systemctl 命令(通常需要 sudo):

  • sudo systemctl status service_name: 查看服务的状态(是否运行、进程 ID、最近的日志等)。
  • sudo systemctl start service_name: 启动服务。
  • sudo systemctl stop service_name: 停止服务。
  • sudo systemctl restart service_name: 重启服务。
  • sudo systemctl reload service_name: 重新加载服务的配置文件(如果服务支持),通常比重启更快且不中断连接。
  • sudo systemctl enable service_name: 设置服务开机自启。
  • sudo systemctl disable service_name: 取消服务开机自启。
  • systemctl list-units --type=service: 列出当前系统中所有已加载的服务单元。

示例:查看 SSH 服务状态 systemctl status sshdsystemctl status ssh (取决于服务名称)。

第五章:基础安全实践

服务器暴露在网络上,安全性至关重要。作为新手,至少应该掌握以下基本安全实践:

5.1 及时更新系统

软件包更新通常包含安全修复。保持系统最新是防范已知漏洞的最有效方法之一。

定期运行以下命令:
bash
sudo apt update
sudo apt upgrade -y

-y 选项会自动确认所有提示,方便自动化。但对于重要升级,最好先不加 -y 检查将要执行的操作。

你还可以考虑设置自动安全更新。

5.2 配置防火墙 (UFW)

防火墙是阻止恶意流量访问服务器的屏障。Ubuntu 提供了 UFW (Uncomplicated Firewall),它是一个用户友好的 iptables 前端。

  • sudo ufw status: 查看防火墙状态(默认是 inactive)。
  • sudo ufw enable: 启用防火墙。重要: 启用前请确保你已允许 SSH 端口,否则可能会把自己锁在外面!
  • sudo ufw allow port_number: 允许特定端口的入站连接。
    • sudo ufw allow 22: 允许 SSH (默认端口 22)。
    • sudo ufw allow 80: 允许 HTTP (Web 服务默认端口 80)。
    • sudo ufw allow 443: 允许 HTTPS (Web 服务默认端口 443)。
  • sudo ufw deny port_number: 拒绝特定端口的入站连接。
  • sudo ufw default deny incoming: 设置默认拒绝所有入站连接(这是推荐的策略,然后按需允许特定端口)。
  • sudo ufw default allow outgoing: 设置默认允许所有出站连接(通常不需要改变)。
  • sudo ufw status verbose: 显示更详细的防火墙规则。

启用防火墙的步骤建议:
1. sudo ufw allow 22 (或你的 SSH 端口)。
2. sudo ufw enable
3. sudo ufw status verbose 确认规则已生效且 SSH 已允许。
4. 然后根据你需要运行的服务允许其他端口(如 80, 443, 3306 等)。

5.3 保护 SSH

SSH 是服务器的主要入口,必须加强保护。

  • 禁止 Root 用户直接登录: 修改 SSH 配置文件 /etc/ssh/sshd_config,将 PermitRootLogin 设置为 no。然后使用 sudo systemctl restart sshd 重启 SSH 服务。总是使用普通用户登录,然后通过 sudo 获取权限。
  • 使用 SSH 密钥认证: 创建 SSH 密钥对(公钥和私钥),将公钥上传到服务器。修改 /etc/ssh/sshd_config 文件,禁用密码认证(PasswordAuthentication no),只允许密钥认证。这样可以大大提高安全性,避免弱密码被暴力破解。

第六章:常见应用场景概述

Ubuntu Server 可以用于搭建各种类型的服务器。这里简要列举一些常见的应用场景:

  • Web 服务器: 搭建 LAMP (Linux, Apache, MySQL, PHP) 或 LEMP (Linux, Nginx, MySQL/PostgreSQL, PHP/Python/Node.js) 环境,托管网站和 Web 应用程序。
  • 数据库服务器: 安装和运行 MySQL, PostgreSQL, MongoDB 等数据库系统。
  • 文件服务器: 配置 Samba (用于 Windows 共享) 或 NFS (用于 Linux/Unix 共享) 提供文件存储和共享服务。
  • 邮件服务器: 搭建 Postfix, Dovecot 等构建自己的邮件系统。
  • DNS 服务器: 安装 Bind9 等提供域名解析服务。
  • VPN 服务器: 搭建 OpenVPN 等实现安全远程访问。
  • 容器化平台: 作为 Docker 或 Kubernetes 的宿主机,运行和管理容器化应用。
  • 虚拟化平台: 使用 KVM, QEMU 等运行虚拟机。
  • 开发/测试环境: 为开发者提供独立的开发或测试服务器。

针对不同的应用场景,你需要安装相应的软件包并进行配置。这通常是深入学习 Ubuntu Server 的后续方向。

第七章:进一步学习资源

恭喜你读到这里!你已经对 Ubuntu Server 有了扎实的基础认识。但服务器管理是一个持续学习的过程。以下是一些可以帮助你进一步提升的资源:

  • 官方 Ubuntu Documentation: 最权威的文档来源,详细解释了 Ubuntu 的各个方面。(https://ubuntu.com/documentation
  • Ask Ubuntu: 一个 Stack Exchange 社区,你可以在这里提问和搜索 Ubuntu 相关的问题。(https://askubuntu.com/
  • Stack Overflow: 更广泛的编程和技术问答社区,包含大量 Linux 和服务器相关内容。(https://stackoverflow.com/
  • Linux 命令手册 (Man Pages): 使用 man command_name 命令在终端中随时查阅。
  • 在线课程和教程: 许多在线平台(如 Coursera, Udemy, Bilibili, YouTube 等)提供了 Linux 和服务器管理的课程。
  • 书籍: 有很多优秀的 Linux 和 Ubuntu Server 相关书籍。
  • 实践: 最重要的学习方式是实践!在虚拟机、旧电脑或云服务器上安装 Ubuntu Server,不断尝试和练习本文章中介绍的命令和概念,然后尝试搭建一些简单的服务。犯错误并解决它们是成长的必经之路。

结论

Ubuntu Server 是一个强大、灵活且对新手相对友好的服务器操作系统。本文为你提供了一个全面的起点,涵盖了从理解基本概念、完成安装到掌握命令行操作、核心系统管理和基础安全实践的关键知识。

请记住,掌握 Ubuntu Server 并非一蹴而就。它需要时间和实践。从现在开始,登录你的 Ubuntu Server,勇敢地敲下命令,探索文件系统,安装和配置软件,解决遇到的问题。你会逐渐熟悉这个强大的环境,并能利用它来构建和管理各种服务。

祝你在 Ubuntu Server 的学习和使用之旅中一切顺利!不断学习,持续实践,你将成为一个熟练的 Linux 服务器管理者。


发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部