news 2026/9/29 1:04:24

Ubuntu Server 22.04 安装全流程详解:从ISO镜像到SSH远程登录

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Ubuntu Server 22.04 安装全流程详解:从ISO镜像到SSH远程登录

Ubuntu Server 22.04 系统安装这事儿,看着简单,但我在实际装机里见过太多次因为安装阶段偷懒,导致后面折腾半天的情况。这篇就从下载 ISO 开始,到装完系统远程登录成功为止,把整套流程里最容易踩坑的细节逐个讲透。我自己侧重的是服务器场景,所以文中大部分操作都围绕“无图形界面、远程管理优先”来展开,这也是 Ubuntu Server 和桌面版最大的区别所在。

写这篇的另一个原因,是很多第一次接触 Linux 的朋友,以为 Server 版安装就是个“下一步下一步”的事。实际装下来你会发现,网络配没配好、分区方案怎么选、OpenSSH 有没有勾选,直接决定你三天之后是轻松上线还是推倒重来。这篇会把每一步背后的“为什么”也一并解释清楚,适合三类人:刚入门的运维新人、想给旧电脑做家庭服务器的玩家,以及准备在 VM 里搭 Ubuntu 练手的学生党。

1. 装机前要搞清楚的几件事

1.1 版本刺客:为什么我建议盯准 LTS 而非“最新数字版本”

标题里写了“Ubuntu 最新版”,但这里必须先说清楚一个概念:在 Ubuntu 的世界里,数字最大的版本并不一定最适合服务器。官方把版本分成普通版本和 LTS(Long Term Support,长期支持)两种。22.04 就是典型的 LTS 版本,发布于 2022 年 4 月,标准支持周期长达 5 年,一直到 2027 年。对服务器来说,这个时间窗口意味着安全补丁、关键 bug 修复都会持续跟上,不会因为新版本一出就被官方抛弃。

所以我在生产环境里几乎只选 LTS。不是说不让你尝鲜用最新数字版本,而是服务器这东西讲究的是稳定。你今天装了个 23.10,半年后官方停止支持,你又要被迫大版本升级,风险全得自己扛。22.04 更合理的定位是“当前生态兼容性最好、教程和第三方软件覆盖最广”的稳定基线。即使是后来出了更新的 LTS,大部分云厂商、软件仓库、Docker 镜像,仍然把 22.04 作为默认的兼容目标,你照着这个版本装,遇到问题的概率最小。

如果你想确认自己下的版本是不是官方标准,安装完成后用lsb_release -a看输出,只要 Release 那一行显示22.04.x就没问题。另外提醒一句,安装镜像名字里一般会带live-server-amd64这样一串,别下成 Desktop 版了,两个是完全不同的安装体量。

1.2 硬件要求与部署形态:物理机、虚拟机还是云服务器

Ubuntu Server 22.04 的官方最低要求不算高:双核 CPU、2GB 内存、10GB 以上磁盘空间。但那是“能跑起来”的最低标准,不是“让你舒服干活”的标准。我自己在物理机上跑 22.04,内存至少给到 8GB,系统盘 40GB 起步;如果你打算在上面同时跑 Docker、数据库、Web 服务这几个服务,CPU 建议 4 核以上。

部署形态也直接影响安装步骤。最常见的三种:

  • 物理机裸装:适合自建 NAS、家庭服务器,或者公司内部测试机。需要准备一个 U 盘,ISO 要写到 U 盘里再引导启动。
  • 虚拟机安装:VMware Workstation、VirtualBox 这类虚拟化软件里装。好处是快照功能无敌,装坏了直接回滚到上一个快照。资源分配建议 2 核 4GB 起步,磁盘先给 20GB。
  • 云服务器:像阿里云、腾讯云、AWS 这些平台,一般直接选官方系统镜像,不需要自己下载 ISO,重点反而是创建实例时的网络和安全组配置。

我见过最多的翻车案例出现在物理机裸装,原因集中在 U 盘启动失败、磁盘模式不对、网络驱动没识别这几个问题上。所以如果你是第一次装,先在虚拟机里完整演练一遍,再上物理机,效率反而高。

1.3 镜像下载和启动盘制作:别下错版本

官方下载地址是ubuntu.com/download/server,进去之后会看到两个主要版本入口:一个是 22.04 LTS,另一个可能是更新的 LTS。考虑到前面讲的兼容性,你用 22.04 完全够。ISO 文件大小大概在 2.5GB 左右,下载完建议核对一下 SHA256 校验值,页面下方会提供对应校验文件,防止下载过程中文件损坏。

启动盘制作工具,Windows 下我常用 Rufus(rufus.ie),选择 U 盘、选择 ISO,分区类型建议选GPT,目标系统UEFI (非 CSM),直接开始即可。如果你用的是 Windows 自带的“写入 U 盘”功能,经常会遇到引导失败,所以我不推荐。Linux 或 macOS 下则可以直接用dd命令,写法是sudo dd if=ubuntu-22.04-live-server-amd64.iso of=/dev/sdX bs=4M status=progress,注意of后面必须是 U 盘识别出的设备节点,比如/dev/sdb,千万别写成你的系统盘,否则数据全没了。

虚拟机里装就不用做启动盘了,安装镜像文件放在宿主机上,在虚拟机设置里选择“使用 ISO 镜像文件”加载即可。这个操作比较简单,但我要额外提醒:VMware 创建虚拟机时选客户机操作系统为Ubuntu 64-bit,不要选错成Other Linux,不然后面引导和驱动会有兼容问题。

2. 安装向导一步一步走,关键选项逐个拆解

2.1 进 Grub 之后先别急:语言、键盘和基础交互

用 U 盘或 ISO 引导成功后,你会进入一个蓝色底的 GRUB 界面,第一个选项就是Try or Install Ubuntu Server,直接回车。之后安装向导会自动加载内核和安装环境,这个过程根据机器性能不同,一般几十秒到两三分钟。如果卡住不动,大概率是内核参数与硬件冲突,可以在 GRUB 界面按e编辑启动参数,把quiet splash去掉,再按Ctrl+X启动,能看到具体卡在哪个驱动上。

安装界面默认是英文,有朋友一进来就想选中文界面。我的建议是:语言就选 English。第一,Server 版安装向导的中文翻译并不完整,部分菜单还是英文,反而增加理解成本;第二,服务器环境下你迟早要面对英文终端和英文日志,提前适应没坏处。键盘布局一般默认English (US)就行,如果你用的是非 US 布局键位,在这里改成对应选项,否则后面输命令时会发现某些按键位置对不上。

2.2 网络配置:DHCP 自动获取和静态 IP 该怎么选

安装向导会先扫描网卡,然后给你列出网卡和当前网络状态。默认使用 DHCP 自动获取 IP,如果你只是拿来做实验,直接点Done就行。但要是准备作为服务器长期跑着,我更推荐现在就配静态 IP,省得系统装完再改网卡配置文件。

在网络配置界面选中网卡,回车进入编辑项,把IPv4从Automatic (DHCP)改成Manual。你需要至少填四项内容:

  • Subnet:子网掩码,比如192.168.1.0/24;
  • Address:你规划给这台机器的 IP,比如192.168.1.88;
  • Gateway:网关地址,一般是路由器的 IP,比如192.168.1.1;
  • DNS:建议写8.8.8.8或223.5.5.5这种公共 DNS,也可以直接填网关地址。

有人会问:“我现在先用 DHCP,装完再改静态 IP 行不行?”行,但那时候你要修改 netplan 的 YAML 文件,格式写错一个缩进系统就上不了网,对新手很不友好。趁安装阶段有图形化表单填写,提前配好是最省事的。

2.3 磁盘分区:LVM 整盘方案和手动分区的取舍

磁盘分区是整个安装过程中最需要动脑的地方。安装向导给了四个选项:Use An Entire Disk、Use An Entire Disk And Set Up LVM、Use An Entire Disk And Set Up LVM With Encryption、Manual。

前两个是我在绝大多数场景下的首选。如果你对 LVM 不熟悉,也用不上加密,那选第一个Use An Entire Disk最省心。安装程序会自动帮你创建好boot分区和根分区,全程不需要任何手工干预。

如果你想以后方便调整磁盘空间,我建议选第二项,使用 LVM。LVM 相当于给磁盘分区加了一层“逻辑卷管理”,你把物理磁盘加入卷组,以后再也不用担心“根分区满了想扩容但相邻空间不连续”这种破事。选了它之后,安装程序默认会把整块磁盘交给 LVM,自动创建/boot(通常 1GB 左右)和/根分区。如果你有特殊需求,比如想单独给/home分一块,可以选Manual。

手动分区我自己是这么分的,你可以参考:

挂载点大小类型
/boot1GBEFI 或 BIOS 引导分区
/剩余空间扣除 swap 后的全部ext4
swap4GB 或内存大小swap

如果你用的是 UEFI 引导,/boot前会存在一个EFI System Partition,这个留给安装程序自动处理就行,不要手动删。手动分区时最容易犯的错是忘记建/boot,或者把整个磁盘都给了/而没留任何 swap。虽然低内存机器可以靠 swap 文件兜底,但安装阶段直接划一个 swap 分区最方便,我这里习惯分 4GB。

2.4 账号、SSH 和软件包:这步选错后面很麻烦

分区确认后,安装向导会让你设置主机名和创建用户。主机名我一般设成跟业务相关的名称,比如ubuntu-web-01,方便多台机器时区分。用户名不要用root,Ubuntu 默认不让你直接登录 root,而是创建一个有 sudo 权限的普通用户。这一点和 Windows 的思路很不一样,但实际用起来更安全,至少不会把所有高危操作都暴露在管理员账号之下。

接下来是 Ubuntu Pro 配置界面,这是个商用增值服务,个人用户不用管,直接Skip for now。

真正关键的是SSH Setup这一步。默认情况下安装程序不会帮你装 SSH 服务,你的系统装完只能坐在本机前操作,这对服务器来说等于瘸了一条腿。我强烈建议在Install OpenSSH server前打勾,下方还有一个Import SSH identity的选项,可以从 GitHub 导入公钥,如果你没有现成的密钥对,可以先跳过,后面系统装完再补。

软件包选择界面,有Minimized和Ubuntu Server两个主要选项。Minimized会装一个极简内核和核心工具,适合高手;新手不要为了攀这个“精简”的名头去选它,因为没有图形化依赖,你后面装半天的软件可能缺各种基础库。选默认的Ubuntu Server就好,自带常用的包管理工具和运行环境。

之后的安装进度条不用太关心,等到最后一步提示Reboot Now,说明系统已经写入磁盘。注意此时要先移除 U 盘,否则重启后又会引导到安装盘。

2.5 等待、重启和首次登录

重启后会看到黑底白字的 GRUB 菜单,如果不操作的话会默认进入第一个系统条目,然后进入登录界面。输入你之前创建的用户名和密码,看到类似user@ubuntu-web-01:~$的命令行提示符就说明安装成功。

到这里,整个 Ubuntu Server 22.04 系统已经算是装完了。接下来要做的不是立刻去部署服务,而是花几分钟把系统基础环境收拾利索,所有服务器运维的稳定性,都是在这几分钟里打下的底子。

3. 装完以后立刻要做的四件事

3.1 更新软件源与系统升级

系统刚装完时,软件源默认指向官方服务器。如果你在海外机房,这个源速度没问题;但在国内网络环境,跑apt update很可能慢得让人怀疑人生。解决办法是换成国内常用的镜像源,比如清华源、阿里云源。虽然历史上也有各种源动荡的事件,但这两年主流大厂源都稳定了,选哪个取决于你所在网络。

换源操作前先把原始文件备份出来:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

然后编辑/etc/apt/sources.list,把里面http://archive.ubuntu.com和http://security.ubuntu.com的前缀统一替换成镜像源地址。以阿里云源为例:

sudo sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list sudo sed -i 's/security.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list

更换完成后,先sudo apt update刷新软件索引,再sudo apt upgrade -y把系统里所有已安装软件包升级到当前版本。这里一定要提醒:首次升级包数量可能很大,耗时较长,建议在网络稳定的时候做,而且别在升级过程中强制断电。

3.2 创建日常用 sudo 用户并配置密钥登录

安装时创建的用户其实就是有 sudo 权限的,所以这一步主要解决“以后怎么远程安全访问”的问题。密码登录用久了,翻日志能看到一堆暴力破解尝试。更稳妥的做法是改用 SSH 密钥登录,然后把密码登录关掉。

在本机生成密钥对,然后通过ssh-copy-id把公钥拷到服务器:

ssh-keygen -t ed25519 -C "your_email@example.com" ssh-copy-id user@服务器IP

ssh-keygen执行后会问你保存路径和 passphrase,我一般直接回车用默认路径,passphrase 可以设置也可以不设置。实际生产环境建议设置 passphrase,否则私钥文件泄漏等于把服务器门钥匙交出去了。拷完公钥后,在服务器上用ssh user@服务器IP验证能否免密登录,确认正常后再去修改 SSH 配置。

3.3 配置静态 IP 和主机名

如果安装阶段没有配置静态 IP,系统装完后是 DHCP 获取地址,重启后可能变成另一个 IP,这显然不省心。修改静态 IP 要动 netplan 配置,22.04 默认的配置文件在/etc/netplan/下,一般是00-installer-config.yaml。

用ip a先查看你的网卡名,然后编辑配置:

sudo nano /etc/netplan/00-installer-config.yaml

参考模板:

network: version: 2 ethernets: ens33: dhcp4: no addresses: - 192.168.1.88/24 routes: - to: default via: 192.168.1.1 nameservers: addresses: - 223.5.5.5 - 8.8.8.8

注意 YAML 的缩进不能乱写,必须是空格,不能用 Tab。改完后先sudo netplan try试一下,这个命令会在几秒后自动回滚,防止你把自己关在门外。确认没问题再sudo netplan apply正式生效。

3.4 装常用工具、NVIDIA 驱动与 Docker

Ubuntu Server 装完自带的软件很少,很多命令都需要手动装。我每次装机后第一波安装的固定搭配是:

sudo apt install -y vim net-tools curl wget git unzip htop tmux

vim是文本编辑器,net-tools提供ifconfig等网络排查命令,htop看系统负载,tmux做终端会话保持。这些都是服务器日常维护的基础装备,顺手装好不亏。

如果你的机器上有 NVIDIA 显卡,而且打算做深度学习或 GPU 推理,安装驱动是个绕不开的坎。说句实在话,Ubuntu Server 无图形界面下装驱动反而比桌面版省事,因为你不需要担心桌面环境与驱动的冲突。最简单的办法是直接用官方提供的ubuntu-drivers工具:

sudo ubuntu-drivers autoinstall

它会自动识别推荐版本的驱动并安装,装完后reboot重启,用nvidia-smi验证是否正常。如果这个命令没输出,说明驱动没生效,再考虑去 NVIDIA 官网下载对应的.run文件手动安装。手动装驱动时一定记得先装编译内核模块需要的依赖,否则报错能报到你想砸电脑。

Docker 也是服务器上非常常见的需求。官方仓库安装方式:

sudo apt install -y ca-certificates curl gnupg lsb-release curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io

安装完成后执行sudo usermod -aG docker $USER,把当前用户加入 docker 组,然后再重新登录,这样不用每次敲命令都加sudo。

4. 安装和使用中的高频问题排查

4.1 SSH 连不上的排查思路

很多人在安装时勾选了 OpenSSH Server,但装完发现从本机用ssh user@服务器IP连接时一直超时或者拒绝连接。排查这事有个固定套路,按顺序走基本能定位。

第一,确认服务器 IP 上能不能通,用ping测一下,如果 ping 不通,多数是网络隔离或防火墙挡了 ICMP。第二,确认 SSH 服务是否在运行,执行sudo systemctl status ssh,看到active (running)才正常,如果没运行就sudo systemctl enable --now ssh。第三,确认端口是否监听,sudo ss -tlnp | grep 22,如果:22在监听说明服务本身没毛病。第四,检查防火墙,Ubuntu 默认不装 ufw,但如果你开了,必须放行 SSH 端口:

sudo ufw allow OpenSSH sudo ufw enable

最后还有一个老生常谈的问题:你可能压根没装 openssh-server。安装后补装一条命令即可:

sudo apt install -y openssh-server

4.2 apt 更新慢或者报错的解决

更新慢的原因前面已经说过,换源基本能解决。报错则分两类。第一类是 GPG 签名错误,比如NO_PUBKEY开头的信息,说明源的公钥不匹配。解决办法是按提示导入对应公钥,或者干脆删除这个第三方源。第二类是404 Not Found,通常是因为你用了一个已经很旧的版本,而源里已经没这个版本的包了。这时候优先执行sudo apt update看具体哪一行报错,把它注释掉或替换成最新发行版代号。

这里有个小经验:不要在sources.list里混用不同发行版代号。22.04 的代号是jammy,你如果手滑把某一行写成了更早版本的源,更新时就会看到各种依赖混乱。实在改不回来,就直接用备份文件还原:

sudo mv /etc/apt/sources.list.bak /etc/apt/sources.list

4.3 安装 NVIDIA 驱动之后开机黑屏怎么办

这是一个在物理机和虚拟机上都会出现的问题,但原因不完全一样。物理机黑屏最常见的是驱动与内核版本不匹配,特别是从 NVIDIA 官网下载的.run安装包,容易覆盖系统自带的nouveau驱动后没加载正确模块。解决方法是在 GRUB 启动时按e编辑启动项,在内核命令行里加上nomodeset,进入系统后用dkms status查看驱动的构建状态,不匹配就卸载重装。

虚拟机装 NVIDIA 驱动黑屏,则更多是因为虚拟显卡不支持 NVIDIA 驱动。你在 VMware 里给虚拟机随便添加了一个“NVIDIA 显卡设备”,但宿主机实际并没有把 GPU 直通给它,这属于配置问题。建议先在虚拟机设置里移除 NVIDIA 虚拟设备,用 VMware 默认的虚拟显卡能正常显示,等真正有 GPU 直通需求时再研究 PCI Passthrough。

4.4 虚拟机安装后没网络或引导失败

VirtualBox 或者 VMware 装完 Ubuntu Server 后发现没网络,打开ip a一看网卡连状态都是DOWN,十有八九是虚拟网络适配器模式没选对。VirtualBox 默认的 NAT 模式本来应该能上网的,但如果你的虚拟机创建时选了Bridged模式,而物理机当前接入的网络环境限制了 DHCP,就会导致拿不到 IP。改成 NAT 或者手动配置静态 IP 就能解决。

引导失败的问题则多半出现在启动方式不一致。你在 BIOS 传统模式下创建的虚拟机,安装盘却是 UEFI 引导的 ISO,装完重启后会提示找不到系统。解决办法是创建虚拟机时把引导模式统一,要么都选 UEFI,要么都选 BIOS。查看当前系统引导模式,一条命令就能判断:

ls /sys/firmware/efi

如果这个目录存在,说明是 UEFI 引导;不存在就是传统 BIOS 引导。

5. 写在最后:一点个人体会

Ubuntu Server 22.04 的安装流程,前前后后我走了无数遍。要说最大的体会,就是安装界面看似有个引导式向导,但真正决定后续省不省心的,往往是那些不起眼的小勾选:装不装 OpenSSH、用不用 LVM、选没选对软件源。很多人急着把系统装完,结果第一天上生产环境就发现连不上、没网、分区不够,全是安装阶段埋下的隐患。

如果你按这篇的顺序走一遍,大概率会顺顺利利。可万一哪一步不是预期结果,也别慌,服务器操作最忌讳心态崩了去乱改配置。先查日志,先看状态,journalctl -xe、dmesg | tail这些命令用起来,很多问题都能找到线索。最后再分享一个小技巧:装完系统后的第一个快照永远值得留,不管是在虚拟机上还是物理机刚配好的干净状态,关键时刻一个回滚能帮你省下一整个晚上的排查时间。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/29 1:03:42

出版行业轻量级SaaS书城:Docker一键部署+ISBN校验+微信小程序对接

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/29 1:03:08

YOLOv8算法原理与实战:目标检测、实例分割及部署全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/29 1:01:51

推杆电机H桥控制原理与实战设计指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/29 1:01:18

PHP动态执行函数安全深度解析:eval/assert/pcntl_exec原理与防御

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/28 23:58:56

Java调用海康威视SDK二次开发:RTSP地址与门禁联动实战

简介:这是一套基于Java与海康威视SDK二次开发的网络摄像头与门禁系统项目源码,面向计算机相关专业的毕业设计、课程设计学生以及需要集成视频监控与门禁功能的开发者。项目围绕设备注册登录、局域网设备发现、门禁人员与人脸信息管理、门禁卡与人脸下发、…

作者头像 李华