Skip to content

Latest commit

 

History

History
215 lines (156 loc) · 9.63 KB

87.1、Proxmox VE 的其他设置.adoc

File metadata and controls

215 lines (156 loc) · 9.63 KB

Proxmox VE 的其他设置

这里记录了 PVE 日常使用中遇到的一些问题和解决方案

防火墙/Firewall 设置

Warning
  1. 在修改 PVE 的防火墙的时候,强烈建议将自己的电脑和 PVE 的主机放置在同一个广播域(同一个 LAN)中,这样即便是设置有些问题还能连上 PVE 的 Web GUI

  2. 若实在无法处在同一个广播域中,依照 PVE 官方 的提示,请先 SSH 登录 PVE Host,再启用防火墙,以防止配置错误将自己完全锁在 PVE 外。

技能要求

建议了解网络 IP 层的相关概念,特别是广播域的概念

总述

PVE 的防火墙设置起始比较简洁,特别是在单个广播域中的设置会很简单,如果出现了多个广播域,则要注意一些事项。

PVE 的防火墙可以在三个位置设置,分别为

Web GUI 配置文件 含义 本文简称

Datacenter  Firewall

/etc/pve/firewall/cluster.fw

cluster 级别的防火墙设置,作为防火墙模板存在

cluster 防火墙

Datacenter  hostname  Firewall

/etc/pve/nodes/<nodename>/host.fw

PVE Host 主机的防火墙设置

Host 防火墙

Datacenter  hostname  VM ID / CT ID

/etc/pve/firewall/<VMID>.fw

虚拟机、容器的防火墙设置

VM 防火墙 / CT 防火墙

三个位置的配置相互之间会有一些关联,下文会详细描述。

在 Web GUI 每个位置的 Firewall 下又有一些设置特殊的设置,下面将以 cluster 防火墙为例,进行说明

cluster 级别防火墙

Alias 侧边栏

用来定义一个 IP/掩码 对的名称,该名称可以插入其他配置中,直接表示对应的 IP/掩码 对。

预定义的 alias

local_network

表示 Host 主机所在的广播域,系统自动允许该 alias 中的 IP 地址进行同一 cluster 中的 Host 之间的通信。

IPSet 侧边栏

将多个 IP/掩码 对,以及 alias 组成一个 IPSet,并给出一个名称,该名称可以插入其他配置中,直接表示该 IPSet 中所有的 IP/掩码。

预定义的 IPSet

management

该 IPSet 不作用于 VM/CT 上,仅作用于 Host 上。处于该 IPSet 中的 IP 将自动允许执行常规管理操作(PVE GUI、VNC、SPICE、SSH)
local_network alias 会自动加入该 IPSet。

blacklist

任何加入该 IPSet 的 IP 地址将会被全体 Host 和 VM/CT 抛弃。

ipfilter-net*

这些过滤器属于 VM 的网络界面,主要用于阻止 IP 嗅探。一个界面上如果定义了这种 IPSet,那么任何外出流量的源 IP 不匹配对应界面的 ipfilter set,则流量被抛弃。
对于配置了这类 IPSet 的容器,若它们存在(或通过 VM - Firewall 选项页的 IP Filter 选项启用),那么隐式地包含关联的 IP 地址。
对于虚拟机和容器,它同样隐式地包含标准的 MAC 生成的 IPv6 本地链路,以允许邻居发现协议工作。

Security Group 侧边栏

将 IP、Alias、IPSet 与网络协议、放行设置等关联,形成防火墙的过滤规则条目,并将多个条目合并成 Security Group,它可以直接加入防火墙规则中,用来批量启用和关闭规则。

Firewall 侧边栏

将上述各种形式生成的内容组合成防火墙过滤规则,并管理其启用与否

Options 侧边栏

总控防火墙的启用规则,以及默认规则

三种防火墙设置之间的关系

  1. cluster 下的 Firewall 侧边栏 - Options 侧边栏 - Firewall 选项 将决定本 cluster 下管理的全体 Host 和 VM/CT 的防火墙的关闭与否,仅当该选项开启时,Host 和 VM/CT 下的防火墙功能才能起效。

  2. cluster 下的其它规则则按照自身的限制分配至各个 Host/VM/CT 上。

  3. Host 使用的防火墙与 VM/CT 使用的防火墙无关联。

  4. 可以对特定的 Host 和 VM/CT 设置特定的防火墙规则。

  5. 可以对 Host 和 VM/CT 上特定的网络接口设置特定的防火墙规则。

综述

由上可知,当远程管理主机的 IP 地址与 PVE Host 主机的 IP 地址不在同一个广播域中时,请先将管理主机的 IP 地址追加至 management IPSet 中再启用防火墙,否则会导致 Web GUI 无法连接的问题。

具有 VLAN 的网络设置

Warning

此处设置不当可能造成 PVE 无法通过网络连接(WebUI 和 SSH 均无法接入),请看完整段、并大致理解流程后再进行操作。

技能要求

了解 VLAN、Bridge VLAN、tagged/trunk、untagged/access 的基本概念

条件描述

在较为复杂的网络环境下,PVE 主机可能处于有 VLAN 的网络环境中,考虑以下情况:

  1. PVE 主机的 eno1 网口用一根网线连接至交换机的 eth10 网口上

  2. 交换机将 eth10 网口并入了网桥 br2 上

  3. 网桥 br2 上配置了 vlan filtering,其接受 VLAN10 和 VLAN20 两个 vlan,并特别指定了 eth10 同时为 VLAN100 和 VLAN200 的 tagged 口(又称 trunk 口)

    Note

    若此处 eth10 被指定为仅为某一个 vlan 的 untagged 口(或称 access 口),那么 Proxmox 就可以当 vlan 不存在,执行普通设置即可

  4. 此时可以对 Proxmox 进行一些设置,让 Proxmox 同时接入两个 vlan 中。

操作步骤

Note
  1. 此处的配置依照上面的假设条件进行配置,若实际情况与上面的不同,请酌情修改

  2. 这里的配置使用的是比较新的 Linux kernel 支持的 VLAN aware bridge 的设置

对于 PVE 主机来说

  1. 在 PVE 主机的 Datacenter  hostname  System  Network 下,可以配置 PVE 主机的网络设置。
    一般来说,除了 eno1 之外,还会额外配置一个名为 vmbr0 的 Linux Bridge,主要为虚拟机和容器提供网络接入的服务

  2. 配置 vmbr0

    1. 打开 vmbr0 的配置页面

    2. 勾选 VLAN aware

    3. 并检查 eno1 存在于 Bridge ports 的列表中

    4. 记住当前 vmbr0 的 IP 地址,虽然最终会被移除,但这里请先不要移除它

  3. 添加 VLAN10 相关配置

    1. 右上方 Create按钮  Linux VLAN

    2. 关于接口名称 Name,下方设置三选一

      • Name 设置为 vmbr0.10 a.k.a <网桥名>.<VLAN 号>

      • Name 设置为 vlan10 a.k.a vlan<VLAN 号>Vlan raw device 设置为 vmbr0 a.k.a <网桥名>

      • Name 不符合上述两种格式,Vlan raw device 设置为 vmbr0 a.k.a <网桥名>VLAN Tag 设置为 10 a.k.a <VLAN 号>

    3. 设置对应的 IP 地址

  4. VLAN20 的配置同 VLAN10

  5. 思考 PVE 主机要使用的网关地址(该地址用于转发 PVE 主机、虚拟机、容器与非所在广播域的交流),设置 PVE 的默认网关至所在的网络接口上

  6. 【可选】如若开启了防火墙,且并不熟悉防火墙的设置,建议先关闭防火墙,测试无误后再打开

  7. 应用配置,重启,并检查网络连入状态

    • 若连入失败,可以尝试通过 vmbr0 上配置的 IP 地址连入 PVE

  8. 检查成功且不再需要 vmbr0 上的 IP 地址,请移除,应用配置并重启

  9. 再次检查网络连入状态,依照新的网络设置更新防火墙的配置、并启用

    Tip

    有关防火墙的配置参阅 防火墙/Firewall 设置

对于虚拟机和容器来说

Datacenter  hostname  VMID/CTID  Network 下的网络接口,依照所要加入的网桥和 VLAN 的不同,分别设置 BridgeVLAN Tag

修改 Linux Guest 虚拟机的屏幕分辨率

Important

以下操作均在 Linux Guest 虚拟机下执行,切莫修改 Host 系统上的任何配置

在使用 Ubuntu 虚拟机时,发现虚拟屏幕的长宽比一直处于 4:3 的比例下,看着非常难受,这里提供一种比较简单的操作方法,进行快速调整

  1. 修改 /etc/default/grub

    1. GRUB_TIMEOUT_STYLE=hidden 改成 GRUB_TIMEOUT_STYLE=menu,以显示 GRUB 菜单界面

    2. GRUB_TIMEOUT=0 改成 GRUB_TIMEOUT=5,让 GRUB 菜单有 5 秒的延时

    3. GRBU_CMDLINE_LINUX_DEFAULT 的末尾添加 nomodeset (原因未知,可能是某些冲突导致不能使用 kernel mode setting)

  2. 使用 update-grub 命令,以更新 grub.cfg 文件

  3. 重启,即可看到 GRUB 菜单

    1. 选择 UEFI Firmware SettingsDevice ManagerOVMF Platform ConfigurationChange Prefered

    2. 修改合适的屏幕分辨率

    3. 选择 Commit Changes and Exit

    4. 接着按 ESC 键返回上一级,选择 Continue 继续启动

    5. 在启动完成之后,关闭虚拟机,并再次重启虚拟机,就可以使用修改后的分辨率

扩展 Linux Guest 虚拟的磁盘容量

主要矛盾点:在现实生活中,物理磁盘的大小几乎是不能改变的,在创建 GPT 的时候,整个物理磁盘的大小就被记录在 GPT 中。但是在虚拟机中,允许扩大磁盘的大小,就导致 GPT 记录的磁盘大小和实际的磁盘大小并不相同,而添加了额外的操作

  1. PVE Host 系统中进行的操作

    1. 在 PVE 中扩展磁盘

  2. Linux Guest 主机中进行的操作

    1. 用 gdisk 的 v 命令检查磁盘,并按照指示通过 x 命令 和 e 命令检查 gpt 表

    2. 通过 m 返回主模式,d 删除分区,n 新建分区

    3. 写入分区表

    4. [手动执行 partprobe 更新内核数据]

    5. 若使用了 lvm 则执行下面的操作,否则跳过

      1. 检查并扩展 PV

        1. pvdisplay

        2. pvresize /dev/<partition>

      2. 检查并扩展 lv

        1. lvdisplay

        2. lvextend -l +100%FREE /dev/<vg_name>/<lv_name>

    6. 扩展文件系统的大小 xfs_growfs <挂载点> 或 resize2fs /dev/<vg_name>/<lv_name>