Skip to content

Latest commit

 

History

History
184 lines (95 loc) · 6.79 KB

00.Ubuntu_PVE创建服务器.md

File metadata and controls

184 lines (95 loc) · 6.79 KB

0.背景

随着家庭宽带步入 2.5Gbps 互联时代, IPv6 也进一步普及,上一版 Linux Router 的折腾方式已不能满足使用需求。

因此决定重新折腾一个支持 IPv6 的 Linux Router,并修复上版中存在的设置缺陷。

根据这段时间对 Linux 的进一步学习,结合我在某云厂工作期间积累的知识,本次 Linux Router 构建过程中涉及的核心组件包括:

  • 网口以及网桥设置:systemd-networkd
  • PPPoE 拨号:pppoesystemd-networkd
  • DHCP 以及 DNS :dnsmasq
  • 防火墙:nftablessshguard
  • 系统自动更新:unattended-upgrades

由于使用了 systemd ,因此本系列文章主要适用于支持 systemd 的 Linux 发行版。

当然,如果使用了其他方法来设置网口、网桥以及 PPPoE 自动拨号,即可绕开 systemd 的约束。

原本计划使用 dhcpcd 来完成服务器 IPv6 配置,但在实际测试中发现,仅使用 systemd 即可完成 IPv6 配置。

由于受到 systemd 版本限制,各 Linux 发行版要求如下:

  • Debian 12
  • Ubuntu Server 24.04
  • Archlinux(资深玩家首选)

1.前期准备

Ubuntu Server 既可以直接安装在物理设备上,也能运行于虚拟化环境中,本系列文章主要在 PVE 环境下进行安装设置。

PVE 的安装与设置方法请参阅系列文章 Proxmox VE 折腾手记

需要额外准备一台已连接外网的路由设备,用于给 Ubuntu Server 在初始化阶段提供网络。

访问 Ubuntu 的发布页面 Ubuntu Release 下载 Ubuntu 24.04 Server 版安装 ISO 文件,并一同下载 ISO 的校验文件。

下载Ubuntu

2.创建 Linux 虚拟机

登录 PVE 管理后台,将 Ubuntu Server 的 ISO 文件上传到 PVE 服务器。

进入新建虚拟机流程,并打开高级选项。

2.1.常规

节点即本机,VM ID名称 可自定义。

启动/关机顺序 以及 启动延时 相关参数可以根据实际需要进行调整。

虚拟机-常规

2.2.操作系统

使用的光盘镜像文件选择刚才上传的 Ubuntu Server ISO 文件。

操作系统 类别 选择 Linux 、内核 版本 选择 6.x - 2.6 Kernel 即可。

虚拟机-操作系统

2.3.系统

系统部分需要修改几项参数。

显卡选择 默认 ,SCSI 控制器选择 VirtIO SCSI single

机型可选择 q35 ,对 PCIE设备 的直通会有更好的支持。

后续将会在 Ubuntu Server 系统中安装 Qemu Agent ,因此建议勾选 Qemu代理 选项。

BIOS 可选 默认(SeaBIOS) ,也可选 OVMF(UEFI) ,可根据实际需求进行调整。

虚拟机-系统

2.4.磁盘

根据 PVE 服务器的硬盘资源情况酌情分配 Ubuntu Server 的硬盘容量。

建议硬盘分配容量不低于 20G

虚拟机-磁盘

2.5.CPU

根据 PVE 服务器的 CPU 资源情况酌情分配 Ubuntu Server 的 CPU 资源。

CPU类别选择 host核心 数建议不少于 2 ,请根据 CPU 性能以及设备 CPU 物理核心数来综合考虑。

J4125 CPU 在分配 2 核心的情况下,可基本满足千兆外网的使用需求,以供参考。

若 PVE 服务器内有多颗物理 CPU ,则推荐勾选 启用NUMA 选项。

虚拟机-CPU

2.6.内存

内存一般 2G 足够使用,关闭 Ballooning设备 选项。

虚拟机-内存

2.7.网络

需要注意,此页设置只能添加一个网络设备,而网络设备的添加顺序将和 Ubuntu Server 内部显示的网卡顺序一致。

因此,此处先仅添加 WAN 对应的网口(此处为 vmbr0 ),模型选择 VirtIO ,并取消勾选 防火墙 选项。

对于使用硬件直通的小伙伴,可根据实际情况修改此处网络设备选项。

推荐在 Multiqueue 处根据前面设置的 CPU 数量进行网卡多队列设置,设置比例为 1:1 。

即有 n 个 CPU 核心,此处多队列也设置为 n 。

虚拟机-网络

2.8.确认

接下来查看设置总览,确认无误,即可点击 完成

虚拟机-确认

3.调整虚拟机硬件参数

此时,查看虚拟机详情页,可以看到刚才创建的虚拟机。

虚拟机参数

根据实际情况,开始添加需要的网络设备。

虚拟机添加网卡

所有网络设备去掉 防火墙 ,并增加 Multiqueue 选项,示例如下。

虚拟机添加网卡完成

注意:

经过实际测试,如果虚拟机配置了 直通网卡 ,在实际使用过程中,建议 避免 在短时间内让大流量穿过不同类型的网卡。

例如,假设 Ubuntu Server 有 3 个网络设备:

  • 直通网卡 A

  • 直通网卡 B

  • VirtIO 虚拟网卡 C

其中网卡 A 用作 WAN 口,网卡 B 和 C 在内部桥接并用作 LAN 口。

如果千兆流量经过网卡 A 和 C ,虚拟机的系统中断将会急剧增加,物理机 CPU 可能出现单个核心被完全占用的情况,从而严重影响网络 NAT 性能。

然而,如果流量经过网卡 A 和 B ,则可避免由于系统中断过高而导致的网络性能下降问题。

4.调整虚拟机配置参数

当前 Ubuntu Server 虚拟机的默认参数如下。

Linux虚拟机原始参数

调整虚拟机的 引导顺序 选项,建议移除网络启动相关的 net0 引导项。

Linux引导项

然后 关闭 虚拟机的 使用平板指针 选项,可以一定程度上降低虚拟机的 CPU 使用率。

Linux虚拟机关闭平板指针

此时虚拟机配置选项如图所示。在 Ubuntu Server 配置完成后,且运行无异常时,可开启虚拟机的 开机自启动 选项。

Linux虚拟机参数调整完成

5.虚拟机开机

切换到左侧菜单的 控制台 ,并让虚拟机开机。

需要注意的是,目前 Ubuntu Server 尚未进行配置,因此不会对网络造成影响。

然而,若之后 Ubuntu Server 设置了内部网桥,且此时 PVE 服务器内有其他路由系统(例如 Openwrt )在相同的网络接口上也设置了网桥,这将导致网络环路。

选择第一项,并使用回车键 Enter ,即可开始安装。

Linux启动

至此,Ubuntu 服务器创建步骤完成。