1 Star 0 Fork 20

Messi_Forever / Linux_Router_Toss_Notes

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
00.Ubuntu_PVE创建服务器.md 6.83 KB
一键复制 编辑 原始数据 按行查看 历史
狐狸 Nomad. 提交于 2023-10-20 01:59 . 修复文案描述

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 23.04
  • Archlinux(资深玩家首选)

1.前期准备

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

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

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

访问 Ubuntu 的发布页面 Ubuntu Release 下载 Ubuntu 23.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 选项,示例如下。

虚拟机添加网卡完成

注意:

经过实际测试,如果此处添加了 直通网卡 ,在实际使用过程中,尽量 不要 在短时间内让大流量穿过不同种类的网卡;

以避免因过高的系统中断而引起的网络性能降低。

例如,虚拟机有 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 服务器创建步骤完成。

马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Shell
1
https://gitee.com/messi-forever/linux_router_toss_notes.git
git@gitee.com:messi-forever/linux_router_toss_notes.git
messi-forever
linux_router_toss_notes
Linux_Router_Toss_Notes
main

搜索帮助

344bd9b3 5694891 D2dac590 5694891