当前位置: 首页 > news >正文

Ubuntu 20.04.6 LTS Server 安装与生产环境配置全指南

1. 为什么今天还要写Ubuntu 20.04.6 Server的安装教程?

如果你点开这篇文章,心里可能在想:Ubuntu 24.04都发布了,为什么还要折腾一个2020年发布的LTS版本?这问题问得好。作为一个在运维和开发一线摸爬滚打多年的老手,我告诉你,Ubuntu 20.04.6 LTS(Focal Fossa)在今天依然是一个“黄金标准”。它不仅是大量企业生产环境、云服务器镜像的默认选择,更是无数成熟软件栈、教程文档和自动化脚本的“基准线”。它的内核、库版本和软件生态达到了一个非常稳定的平衡点,社区支持成熟,踩过的坑基本都有现成的解决方案。对于搭建一个需要长期稳定运行的服务,比如数据库服务器、Web应用后端、家庭NAS或者开发测试环境,选择20.04.6往往比追新更明智,它能让你把精力集中在业务上,而不是没完没了地解决新版本带来的兼容性问题。

今天这篇教程,我不打算给你一个干巴巴的、只告诉你“下一步、下一步”的安装指南。我要带你做的,是一个带有深度思考和实战预配置的完整安装过程。我们会从镜像下载、虚拟机或实体机环境准备开始,一步步走到系统安装完成,并且我会穿插讲解每一个关键选择背后的逻辑,比如分区方案怎么定、软件包怎么选、网络怎么配,以及安装完成后那些“必须做”的初始化设置。我的目标是,你跟着走完这一遍,得到的不仅是一个能开机的系统,更是一个安全、高效、随时可以投入使用的服务器基础平台。无论你是刚接触Linux的新手,还是想为团队标准化部署流程的老鸟,这篇超过5000字的详实记录,都值得你花时间读完。

2. 战前准备:镜像、环境与启动盘制作

动手安装之前,充分的准备能避免你过程中手忙脚乱。这一步的核心是获取正确的安装介质搭建合适的安装环境

2.1 获取官方Ubuntu 20.04.6 LTS Server镜像

首先,我们必须从官方渠道下载镜像。直接搜索“ubuntu 20.04.6 download”可能会找到一堆第三方站点,但为了安全性和完整性,强烈建议只从Ubuntu官方或国内可靠的镜像站获取

  1. 访问官方发布页面:打开浏览器,访问releases.ubuntu.com/20.04/。这个页面列出了20.04所有子版本的发布信息。我们需要的是ubuntu-20.04.6-live-server-amd64.iso这个文件。live-server意味着它是一个可以直接从ISO启动并安装的服务器版本,不包含图形桌面环境,更轻量、更安全。amd64就是我们常说的x86_64架构,适用于绝大多数Intel和AMD的台式机、笔记本和服务器。

  2. 选择合适的下载源:官方页面会提供全球多个镜像站的链接。如果你在国内,下载速度可能较慢。一个更高效的方法是使用国内的镜像源,例如:

    • 阿里云镜像mirrors.aliyun.com/ubuntu-releases/20.04/
    • 清华大学镜像mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/20.04/
    • 华为云镜像repo.huaweicloud.com/ubuntu-releases/20.04/

    在这些镜像站的目录里,找到并下载ubuntu-20.04.6-live-server-amd64.iso文件。文件大小约1.1GB。下载完成后,务必校验文件的SHA256哈希值,与官方页面或镜像站提供的校验和进行比对,确保文件在下载过程中没有损坏。在Linux或Mac下,可以使用sha256sum ubuntu-20.04.6-live-server-amd64.iso命令;在Windows下,可以使用一些第三方工具如CertUtil(命令:certutil -hashfile ubuntu-20.04.6-live-server-amd64.iso SHA256)。

2.2 选择与配置安装环境:虚拟机 vs 物理机

接下来,你需要决定在哪里安装这个系统。对于学习和测试,虚拟机是绝佳的选择;对于生产环境或作为主力系统,则需要在物理机上安装。

  • 虚拟机方案(推荐给初学者和测试者)

    • 软件选择:VMware Workstation Player(免费)、VirtualBox(免费、开源)或 Parallels Desktop(macOS,付费)都是优秀的选择。VMware在性能和兼容性上通常更胜一筹。
    • 关键配置:创建新虚拟机时,选择“稍后安装操作系统”,类型选“Linux”,版本选“Ubuntu 64位”。内存建议至少分配2GB(2048 MB),这是Subiquity安装器流畅运行的最低要求,如果主机内存充裕,分配4GB体验更好。处理器核心数分配1-2个即可。硬盘空间是关键,我建议新建虚拟磁盘,大小至少25GB,并选择“将虚拟磁盘拆分成多个文件”,这样便于迁移。最重要的是,在虚拟机设置中,将下载好的ISO文件指定为CD/DVD启动盘。
  • 物理机方案(用于服务器或主力机)

    • 制作启动U盘:你需要一个容量至少8GB的U盘。制作工具推荐Rufus(Windows)或balenaEtcher(跨平台)。以Rufus为例,插入U盘后打开软件,设备选择你的U盘,“引导类型选择”处点击“选择”,找到你下载的ISO文件。分区类型通常选“MBR”或“GPT”,取决于你的目标机器是传统BIOS还是UEFI启动(现代电脑基本都是UEFI,选GPT)。其他选项保持默认,点击“开始”即可。这个过程会清空U盘所有数据,请提前备份。
    • 调整BIOS/UEFI设置:将制作好的U盘插入目标电脑,开机进入BIOS/UEFI设置界面(通常是按F2、F12、Del等键)。找到启动顺序(Boot Order)设置,将U盘设为第一启动项。同时,如果安装目标磁盘是NVMe SSD,可能需要将SATA模式从RAID或Intel RST改为AHCI,否则安装程序可能无法识别硬盘。保存设置并重启。

注意:在物理服务器上安装时,如果服务器配备了硬件RAID卡,你需要先在RA卡的管理界面(通常在开机时按Ctrl+R等组合键进入)配置好虚拟磁盘(VD),然后安装程序才能看到一块完整的“硬盘”。

无论选择哪种方式,确保你的设备已连接网络(网线或Wi-Fi,虚拟机通常使用NAT或桥接模式),安装过程中需要从网络下载更新和额外的软件包。

3. 步步为营:Subiquity安装器全流程详解

启动到安装介质后,你会看到一个紫色的GRUB引导菜单,直接回车进入安装流程。接下来的界面是Ubuntu Server自20.04以来使用的全新安装器——Subiquity。它基于Curtin,是一个文本和简单UI混合的安装程序,比老旧的Debian安装器更现代,但依然保持了简洁高效。

3.1 语言、键盘与网络配置

  1. 选择语言:第一个界面是选择安装语言。这里的选择决定了安装过程中提示信息的语言,但不会锁定系统语言。系统语言可以在安装后任意更改。为了方便,我们可以选择“English”。直接按回车。

  2. 键盘布局:接下来配置键盘。通常选择“English (US)”即可。安装器会让你按几个键来检测布局,一般直接选默认的“Done”。

  3. 网络连接:这是关键一步。安装器会自动探测网络接口。如果你用的是网线(虚拟机桥接或物理机直连),它应该能通过DHCP自动获取IP地址,界面上会显示如ens33enp0s3这样的网卡名及其获取到的IP。请务必记下这个IP地址,在安装完成后,你需要用它通过SSH登录服务器。

    • 如果没能自动获取IP(例如在纯内网或无DHCP环境),你需要选择对应的网卡,进入“Edit IPv4”进行手动配置,填写IP、网关、DNS等信息。
    • 如果使用Wi-Fi,你需要选择“Choose WiFi Network”,然后选择你的Wi-Fi SSID并输入密码。
    • 我的经验:在虚拟机中,我强烈推荐使用“桥接模式”而不是NAT。桥接模式会让虚拟机从你的家庭路由器获取一个独立的IP,和你的物理机在同一网段,这样后续SSH访问、服务端口测试都会方便得多,模拟了真实的服务器环境。

3.2 镜像源、存储与分区规划

  1. 配置镜像源(Proxy和Mirror Address):为了加速安装过程中软件包的下载,我们可以配置代理或更换镜像源地址。

    • Proxy:如果你身处公司内网需要通过代理上网,在这里填写你的HTTP代理地址,例如http://proxy.company.com:8080
    • Mirror address这是国内用户必须修改的一项!默认的archive.ubuntu.com在国内访问可能很慢。将其替换为国内镜像源地址,能极大提升安装速度。例如,输入mirrors.aliyun.com/ubuntumirrors.tuna.tsinghua.edu.cn/ubuntu。输入后按Tab键,安装器会自动补全为完整的镜像URL。
  2. 存储配置——分区方案设计:这是整个安装的核心,也是新手最容易困惑的地方。Ubuntu Server安装器提供了几种方案:

    • Use an entire disk:擦除整块磁盘并自动配置LVM(逻辑卷管理)。这是最简单推荐的方案,适合新手和大多数单磁盘服务器场景。安装器会自动创建/boot/(根分区)和swap分区,并使用LVM管理根分区,便于日后在线扩展。
    • Use an entire disk and set up LVM:与上一个类似,但允许你自定义LVM的卷组和逻辑卷参数,更灵活。
    • Custom storage layout:手动分区。只有在你明确知道需要特定分区结构(如分离/home/var/tmp)时才选择此项。例如,数据库服务器可能希望将数据目录挂载到独立分区或磁盘。

    对于绝大多数情况,我建议选择第一个“Use an entire disk”。它会为你做出合理且安全的默认分区。如果你选择了手动分区,一个经典的最小化服务器分区方案可以参考如下(假设磁盘为50GB):

    • EFI系统分区(仅UEFI启动需要):/boot/efi, FAT32格式, 512MB - 1GB。
    • Boot分区/boot, ext4格式, 1GB - 2GB。存放内核和引导文件。
    • 根分区/, ext4格式, 剩余大部分空间(例如40GB)。存放系统文件和应用程序。
    • 交换分区swap, 大小通常为物理内存的1-2倍(如果内存>=8GB,4-8GB即可)。在物理内存不足时提供虚拟内存空间。

    重要提示:在虚拟机或云服务器上,通常不需要单独的/home分区。对于服务器,数据和配置文件更常存放在/srv/var或挂载的独立数据盘上。手动分区时,务必为根分区/预留充足空间(建议不少于20GB)。

3.3 身份设定、SSH与软件包选择

  1. Profile setup

    • Your name: 你的全名,如Zhang San。这只是一个显示名。
    • Your server‘s name: 主机名。起一个有意义的名字,比如web-server-01home-nas。它将在终端提示符和网络中显示。
    • Pick a username这是你登录系统使用的用户名,非常重要。避免使用rootadmin等常见名。建议使用英文小写字母和数字,如opsadmindeploy
    • Choose a password/Confirm your password: 为上述用户设置一个强密码。服务器密码建议长度12位以上,包含大小写字母、数字和特殊符号。
  2. SSH Setup强烈建议在此处安装OpenSSH server。勾选“Install OpenSSH server”选项。这样安装完成后,你就可以立即通过SSH客户端(如PuTTY、Termius、系统终端)远程连接服务器,无需坐在物理机前操作。

    • 你还可以选择“Import SSH identity”,从GitHub或Launchpad导入你的公钥,实现免密码登录。这对于自动化部署至关重要。如果没有,可以安装后再手动配置。
  3. Featured Server Snaps:这里列出了一些流行的服务器软件包,如Docker、MicroK8s、LXD等。我建议在首次安装时,这里一个都不要选。原因是:

    • 这些Snap包可能会引入额外的复杂性和依赖。
    • 我们完全可以在系统安装完成后,根据实际需要,使用更传统的apt包管理器或官方脚本安装这些软件,这样对版本和环境有更精细的控制。
    • 保持系统初始状态的纯净,有利于后续的问题排查和环境复现。

完成以上所有配置后,仔细检查一遍摘要信息。确认无误后,选择“Done”,然后勇敢地按下“Continue”开始安装。安装过程会格式化磁盘、复制系统文件、安装基础软件包和内核。根据你的网络速度和磁盘性能,这个过程可能需要10到30分钟。

4. 安装后的必修课:基础配置与安全加固

当安装器提示“Reboot Now”时,取出安装介质(U盘或在虚拟机设置中移除ISO镜像),然后重启系统。首次登录后,别急着部署应用,有几件关乎系统安全和可用性的大事必须立刻做。

4.1 首次登录、更新系统与基础工具安装

使用你创建的用户名和密码登录系统。首先,我们需要更新软件包列表并升级所有已安装的包到最新版本,这可以修复许多已知的安全漏洞。

# 切换到root权限,后续操作可能需要 sudo -i # 更新软件包源列表 apt update # 升级所有可升级的软件包(这是一个关键的安全操作) apt upgrade -y

升级完成后,安装一些极其常用的系统管理工具,它们会让你后续的运维工作轻松百倍。

# 安装常用工具包 apt install -y vim curl wget net-tools htop tree unzip git ufw software-properties-common
  • vim: 比默认的nano更强大的文本编辑器。
  • curl/wget: 命令行下载工具。
  • net-tools: 包含ifconfignetstat等传统网络工具(虽然ip命令是未来,但很多脚本仍依赖它们)。
  • htop: 交互式进程查看器,比top更直观。
  • ufw: 简单的防火墙配置工具。
  • software-properties-common: 用于添加PPA软件源的依赖包。

4.2 配置静态IP地址(非DHCP环境必备)

如果你的服务器需要固定的IP地址(生产环境几乎都需要),就需要配置静态IP。在Ubuntu 20.04中,网络配置已从旧的/etc/network/interfaces迁移到了Netplan

  1. 查看当前的Netplan配置文件,通常位于/etc/netplan/目录下,文件名类似00-installer-config.yaml50-cloud-init.yaml

    ls /etc/netplan/
  2. 使用vim编辑这个文件,例如:

    vim /etc/netplan/00-installer-config.yaml
  3. 将其内容修改为类似以下格式(请根据你的网络环境调整):

    network: version: 2 ethernets: ens33: # 你的网卡名称,使用 `ip a` 命令查看 dhcp4: no # 关闭DHCP addresses: [192.168.1.100/24] # 静态IP和子网掩码 gateway4: 192.168.1.1 # 网关地址 nameservers: addresses: [8.8.8.8, 114.114.114.114] # DNS服务器

    注意:YAML文件对缩进非常敏感,必须使用空格,不能使用Tab键。addresses后面的/24是CIDR表示法,等同于子网掩码255.255.255.0

  4. 应用新的网络配置:

    netplan apply
  5. 测试网络连通性:

    ping -c 4 8.8.8.8 ping -c 4 baidu.com

4.3 防火墙配置与SSH安全强化

一个暴露在网络中的服务器,防火墙是第一道防线。我们使用UFW(Uncomplicated Firewall)来简化iptables的操作。

  1. 设置默认策略:默认拒绝所有传入连接,允许所有传出连接。

    ufw default deny incoming ufw default allow outgoing
  2. 放行SSH端口:必须放行,否则你将无法远程连接。

    ufw allow ssh # 或者指定端口,如果你修改了SSH默认端口(例如2222) # ufw allow 2222/tcp
  3. 启用UFW

    ufw enable

    系统会提示操作可能中断现有SSH连接,输入y确认。你可以用ufw status verbose查看规则。

SSH安全强化:仅开放防火墙还不够,还需要加固SSH服务本身。

  1. 编辑SSH配置文件:

    vim /etc/ssh/sshd_config
  2. 修改以下几项关键配置(找到对应行,取消注释并修改):

    Port 22 # 可以考虑改为一个非标准端口,如 2222,减少被自动化脚本扫描的风险 PermitRootLogin no # 禁止root用户直接SSH登录,必须通过普通用户sudo PasswordAuthentication yes # 初期可以保持yes,方便密码登录。配置好密钥后,建议改为no PubkeyAuthentication yes # 启用公钥认证

    实操心得:修改Port后,务必先在UFW中放行新端口,再重启SSH服务,否则你可能会把自己关在门外。一个稳妥的顺序是:1) 修改sshd_config; 2)ufw allow <新端口>/tcp; 3)systemctl restart sshd; 4) 用新端口测试连接成功; 5) 关闭旧端口ufw delete allow ssh

  3. 重启SSH服务使配置生效:

    systemctl restart sshd

4.4 配置SSH密钥登录与禁用密码登录(最高推荐)

使用密钥对登录比密码安全得多,且便于自动化。在你的本地电脑(不是服务器)上操作:

  1. 生成密钥对(如果还没有):

    # 在本地终端执行 ssh-keygen -t rsa -b 4096 -C "your_email@example.com" # 一路回车,使用默认路径和空密码(或设置一个强密码)
  2. 将公钥上传到服务器:

    # 在本地终端执行,将 `your_username` 和 `server_ip` 替换为实际值 ssh-copy-id -i ~/.ssh/id_rsa.pub your_username@server_ip

    如果修改了SSH端口,需要加上-p参数,如ssh-copy-id -i ~/.ssh/id_rsa.pub -p 2222 your_username@server_ip

  3. 测试密钥登录:

    ssh -p 22 your_username@server_ip # 或使用你的新端口

    如果无需输入密码直接登录成功,说明密钥配置正确。

  4. (可选但强烈推荐)禁用密码登录:在确认密钥登录无误后,回到服务器,编辑/etc/ssh/sshd_config,将PasswordAuthentication设置为no,然后重启sshd服务。从此,只有持有私钥的用户才能登录,暴力破解密码攻击对你完全无效。

5. 生产环境预备:性能调优与监控基线

系统安全和基础网络搞定后,我们需要为它承担实际工作负载做好准备。这包括优化性能、建立监控和配置必要的系统服务。

5.1 交换空间(Swap)优化

安装程序创建的交换分区(swap)可能大小不合适。我们可以用交换文件来动态调整,这比调整分区更灵活。

  1. 检查现有交换空间:

    swapon --show free -h
  2. 如果内存较小(如小于2GB),或者你计划运行内存消耗大的应用(如数据库、Java应用),可以考虑增加交换空间。创建一个4GB的交换文件:

    # 分配空间 fallocate -l 4G /swapfile # 设置正确的权限 chmod 600 /swapfile # 格式化为交换空间 mkswap /swapfile # 启用它 swapon /swapfile
  3. 让系统启动时自动挂载此交换文件。编辑/etc/fstab文件,在末尾添加一行:

    /swapfile none swap sw 0 0
  4. 调整交换性(Swappiness)。这个值(0-100)决定了系统有多积极使用交换分区。对于服务器,可以适当降低以减少不必要的磁盘IO。临时修改:

    sysctl vm.swappiness=10

    永久修改,编辑/etc/sysctl.conf,添加或修改:

    vm.swappiness=10

    然后执行sysctl -p使配置生效。

5.2 配置时区、语言与字符集

确保服务器使用正确的时间和字符集,避免日志时间混乱和乱码问题。

  1. 设置时区

    # 查看当前时区 timedatectl # 列出所有时区 timedatectl list-timezones | grep Shanghai # 设置时区为上海(亚洲/上海) sudo timedatectl set-timezone Asia/Shanghai # 再次确认 timedatectl
  2. 安装中文语言包并配置本地化(如果系统需要显示中文):

    apt install -y language-pack-zh-hans

    编辑/etc/default/locale,设置:

    LANG="zh_CN.UTF-8" LANGUAGE="zh_CN:zh" LC_ALL="zh_CN.UTF-8"

    然后执行locale-gen zh_CN.UTF-8并重启系统或重新登录使其生效。对于纯服务器环境,保持LANG=”C.UTF-8″”en_US.UTF-8″可能更简单,能避免一些软件的语言环境警告。

5.3 配置系统日志与基础监控

一个健康的系统需要可观察性。除了系统自带的journalctl,安装一些轻量级监控工具很有帮助。

  1. 安装并配置logrotate:确保日志文件不会无限膨胀。Ubuntu默认已安装并配置了logrotate,你可以查看/etc/logrotate.conf/etc/logrotate.d/下的配置。

  2. 安装netdatacockpit(可选但推荐):

    • Netdata: 一个实时的、分布式的性能监控工具,安装极其简单,提供华丽的Web仪表盘。
      # 一键安装脚本 bash <(curl -Ss https://my-netdata.io/kickstart.sh)
      安装后,通过http://你的服务器IP:19999访问。
    • Cockpit: Red Hat发起的服务器管理图形界面,Ubuntu也支持。它提供了系统状态、日志、存储、网络和容器管理的Web界面。
      apt install -y cockpit systemctl enable --now cockpit.socket
      安装后,通过https://你的服务器IP:9090访问。

    这些工具能让你快速了解服务器的CPU、内存、磁盘、网络负载情况,在问题出现初期就能发现端倪。

5.4 定期安全更新与自动化维护

最后,配置自动化任务,让系统自我维护。

  1. 配置无人值守升级(Unattended Upgrades):自动安装安全更新,这是保持服务器安全最省心的方式。

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

    在配置向导中,选择“Yes”启用自动更新。配置文件在/etc/apt/apt.conf.d/50unattended-upgrades,你可以精细控制更新哪些包。

  2. 设置定时任务(Cron)进行日常维护:例如,每周清理一次旧的日志和临时文件。编辑root用户的crontab:

    crontab -e

    添加一行,例如每周日凌晨3点清理/tmp下超过7天的文件:

    0 3 * * 0 find /tmp -type f -atime +7 -delete

走到这一步,你的Ubuntu 20.04.6 LTS Server已经从一个刚安装好的“毛坯房”,变成了一个网络通畅、安全加固、监控就位、可维护性高的“精装基础平台”。你可以在这个坚实的基础上,放心地去安装Docker、部署Web服务、搭建数据库,或是进行任何你想要的开发和生产工作。记住,好的开始是成功的一半,在系统初始化阶段多花些时间做好这些基础工作,未来它会用稳定和高效来回馈你。

http://www.jsqmd.com/news/1382616/

相关文章:

  • 想不通的时候,去看看生死,事态
  • 基于OpenClaw的团队效率自动化审计:从部署到数据洞察的实战
  • PASI评分实战指南:从原理到临床应用的银屑病量化评估
  • LangChain快速入门:从零构建LLM应用的核心组件与实战
  • 2026年8月成都市新津区移动1000M宽带办理全流程避坑攻略 - 找卡家园
  • K波段有源移相器设计:毫米波相控阵核心电路实现与优化
  • 大模型文本生成原理:从Transformer到采样策略的完整解析
  • C语言双链表实现与应用全解析
  • Claude Code自动模式:智能代码补全的默认设置与优化指南
  • 2026年8月成都市新津区移动100M宽带办理与避坑全攻略 - 找卡家园
  • 小米手机刷机报错全解析:从驱动安装到救砖的完整解决方案
  • 智能路由引擎:重构ComfyUI节点执行策略与资源优化方案
  • 大模型实战指南:Token、上下文与计费原理详解与成本优化策略
  • JMeter性能测试入门:从环境配置到启动优化的完整指南
  • RLHF与PPO:让AI学会说人话的核心技术解析
  • 基于OpenClaw与Claude Code构建TikTok爆款视频自动化分析系统
  • Kimi K3:开源API代理工具,无缝切换AI模型后端实战指南
  • 从“点奶茶”到智能体:基于大语言模型的AI应用开发实战拆解
  • HLS高层次综合设计技巧--绕过任务对Dataflow的阻碍讨论
  • 如何实现网盘直链解析:9大平台免费获取真实下载地址的完整指南
  • 163MusicLyrics:一站式音乐歌词获取神器,彻底告别手动搜索烦恼
  • Ubuntu 20.04 安装 CUDA 12 与 cuDNN:深度学习环境配置完整指南
  • 2026GEO检测工具实力榜四强:多维能力较量,0到1讲透
  • AI编程提效:如何通过.claude文件夹深度定制Claude Code工作流
  • Spring Boot整合MQTT客户端:物联网消息通信的完整工程实践
  • Tmux复制操作终极指南:从原理到实战配置,打通系统剪贴板
  • AstronClaw:Python邮箱自动化实战,解决邮件收发与协议集成难题
  • 2026年知名热门卷板机/型材弯曲机厂家怎么选?含二辊/三辊/四辊机型推荐 - 硬核推荐
  • Fastjson安全模式实战:5种方法彻底解决反序列化漏洞
  • 从零到一构建外卖平台:核心架构、状态机与高并发实践