这里记录了 PVE 日常使用中遇到的一些问题和解决方案
Note
|
Warning
|
|
PVE 的防火墙设置起始比较简洁,特别是在单个广播域中的设置会很简单,如果出现了多个广播域,则要注意一些事项。
PVE 的防火墙可以在三个位置设置,分别为
Web GUI | 配置文件 | 含义 | 本文简称 |
---|---|---|---|
Datacenter › Firewall |
|
cluster 级别的防火墙设置,作为防火墙模板存在 |
cluster 防火墙 |
Datacenter › hostname › Firewall |
|
PVE Host 主机的防火墙设置 |
Host 防火墙 |
Datacenter › hostname › VM ID / CT ID |
|
虚拟机、容器的防火墙设置 |
VM 防火墙 / CT 防火墙 |
三个位置的配置相互之间会有一些关联,下文会详细描述。
在 Web GUI 每个位置的 Firewall 下又有一些设置特殊的设置,下面将以 cluster 防火墙为例,进行说明
用来定义一个 IP/掩码 对的名称,该名称可以插入其他配置中,直接表示对应的 IP/掩码 对。
预定义的 alias
local_network
-
表示 Host 主机所在的广播域,系统自动允许该 alias 中的 IP 地址进行同一 cluster 中的 Host 之间的通信。
将多个 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 本地链路,以允许邻居发现协议工作。
将 IP、Alias、IPSet 与网络协议、放行设置等关联,形成防火墙的过滤规则条目,并将多个条目合并成 Security Group,它可以直接加入防火墙规则中,用来批量启用和关闭规则。
-
cluster 下的 Firewall 侧边栏 - Options 侧边栏 - Firewall 选项 将决定本 cluster 下管理的全体 Host 和 VM/CT 的防火墙的关闭与否,仅当该选项开启时,Host 和 VM/CT 下的防火墙功能才能起效。
-
cluster 下的其它规则则按照自身的限制分配至各个 Host/VM/CT 上。
-
Host 使用的防火墙与 VM/CT 使用的防火墙无关联。
-
可以对特定的 Host 和 VM/CT 设置特定的防火墙规则。
-
可以对 Host 和 VM/CT 上特定的网络接口设置特定的防火墙规则。
Warning
|
此处设置不当可能造成 PVE 无法通过网络连接(WebUI 和 SSH 均无法接入),请看完整段、并大致理解流程后再进行操作。 |
在较为复杂的网络环境下,PVE 主机可能处于有 VLAN 的网络环境中,考虑以下情况:
-
PVE 主机的 eno1 网口用一根网线连接至交换机的 eth10 网口上
-
交换机将 eth10 网口并入了网桥 br2 上
-
网桥 br2 上配置了 vlan filtering,其接受 VLAN10 和 VLAN20 两个 vlan,并特别指定了 eth10 同时为 VLAN100 和 VLAN200 的 tagged 口(又称 trunk 口)
Note若此处 eth10 被指定为仅为某一个 vlan 的 untagged 口(或称 access 口),那么 Proxmox 就可以当 vlan 不存在,执行普通设置即可
-
此时可以对 Proxmox 进行一些设置,让 Proxmox 同时接入两个 vlan 中。
Note
|
|
对于 PVE 主机来说
-
在 PVE 主机的 Datacenter › hostname › System › Network 下,可以配置 PVE 主机的网络设置。
一般来说,除了eno1
之外,还会额外配置一个名为vmbr0
的 Linux Bridge,主要为虚拟机和容器提供网络接入的服务 -
配置
vmbr0
-
打开
vmbr0
的配置页面 -
勾选
VLAN aware
-
并检查
eno1
存在于Bridge ports
的列表中 -
记住当前
vmbr0
的 IP 地址,虽然最终会被移除,但这里请先不要移除它
-
-
添加 VLAN10 相关配置
-
右上方 Create按钮 › Linux VLAN
-
关于接口名称
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 号>
-
-
设置对应的 IP 地址
-
-
VLAN20 的配置同 VLAN10
-
思考 PVE 主机要使用的网关地址(该地址用于转发 PVE 主机、虚拟机、容器与非所在广播域的交流),设置 PVE 的默认网关至所在的网络接口上
-
【可选】如若开启了防火墙,且并不熟悉防火墙的设置,建议先关闭防火墙,测试无误后再打开
-
应用配置,重启,并检查网络连入状态
-
若连入失败,可以尝试通过
vmbr0
上配置的 IP 地址连入 PVE
-
-
检查成功且不再需要
vmbr0
上的 IP 地址,请移除,应用配置并重启 -
再次检查网络连入状态,依照新的网络设置更新防火墙的配置、并启用
Tip有关防火墙的配置参阅 防火墙/Firewall 设置
对于虚拟机和容器来说
Datacenter › hostname › VMID/CTID › Network 下的网络接口,依照所要加入的网桥和 VLAN 的不同,分别设置 Bridge
和 VLAN Tag
Important
|
以下操作均在 Linux Guest 虚拟机下执行,切莫修改 Host 系统上的任何配置 |
在使用 Ubuntu 虚拟机时,发现虚拟屏幕的长宽比一直处于 4:3 的比例下,看着非常难受,这里提供一种比较简单的操作方法,进行快速调整
-
修改
/etc/default/grub
-
将
GRUB_TIMEOUT_STYLE=hidden
改成GRUB_TIMEOUT_STYLE=menu
,以显示 GRUB 菜单界面 -
将
GRUB_TIMEOUT=0
改成GRUB_TIMEOUT=5
,让 GRUB 菜单有 5 秒的延时 -
在
GRBU_CMDLINE_LINUX_DEFAULT
的末尾添加nomodeset
(原因未知,可能是某些冲突导致不能使用 kernel mode setting)
-
-
使用
update-grub
命令,以更新grub.cfg
文件 -
重启,即可看到 GRUB 菜单
-
选择
UEFI Firmware Settings
→Device Manager
→OVMF Platform Configuration
→Change Prefered
-
修改合适的屏幕分辨率
-
选择
Commit Changes and Exit
-
接着按 ESC 键返回上一级,选择
Continue
继续启动 -
在启动完成之后,关闭虚拟机,并再次重启虚拟机,就可以使用修改后的分辨率
-
主要矛盾点:在现实生活中,物理磁盘的大小几乎是不能改变的,在创建 GPT 的时候,整个物理磁盘的大小就被记录在 GPT 中。但是在虚拟机中,允许扩大磁盘的大小,就导致 GPT 记录的磁盘大小和实际的磁盘大小并不相同,而添加了额外的操作
-
PVE Host 系统中进行的操作
-
在 PVE 中扩展磁盘
-
-
Linux Guest 主机中进行的操作
-
用 gdisk 的 v 命令检查磁盘,并按照指示通过 x 命令 和 e 命令检查 gpt 表
-
通过 m 返回主模式,d 删除分区,n 新建分区
-
写入分区表
-
[手动执行 partprobe 更新内核数据]
-
若使用了 lvm 则执行下面的操作,否则跳过
-
检查并扩展 PV
-
pvdisplay
-
pvresize /dev/<partition>
-
-
检查并扩展 lv
-
lvdisplay
-
lvextend -l +100%FREE /dev/<vg_name>/<lv_name>
-
-
-
扩展文件系统的大小 xfs_growfs <挂载点> 或 resize2fs /dev/<vg_name>/<lv_name>
-