SYNOPSIS
pveproxy <COMMAND> [ARGS] [OPTIONS]
pveproxy help [OPTIONS]
获取指定命令的帮助。
- --extra-args <array>
-
显示特定命令的帮助
- --verbose <boolean>
-
详细输出格式。
pveproxy restart
重启守护进程(如果未运行则启动)。
pveproxy start [OPTIONS]
启动守护进程。
- --debug <boolean> (default = 0)
-
调试模式 - 保持在前台运行
pveproxy status
获取守护进程状态。
pveproxy stop
停止守护进程。
常用命令示例:
pveproxy status pveproxy restart
DESCRIPTION
该守护进程通过 HTTPS 在 TCP 端口 8006 上公开完整的 Proxmox VE API。它以 www-data 用户身份运行,权限非常有限。需要更高权限的操作会转发给本地 pvedaemon。
发往其他节点的请求会自动转发到相应节点。这意味着只需连接到单个 Proxmox VE 节点, 就可以管理整个集群。
基于主机的访问控制
可以配置类似 “apache2” 的访问控制列表。相关值从 /etc/default/pveproxy 文件读取。例如:
ALLOW_FROM="10.0.0.1-10.0.0.5,192.168.0.0/22" DENY_FROM="all" POLICY="allow"
IP 地址可以使用 Net::IP 能识别的任意语法指定。名称 all 是 0/0 和 ::/0 的别名,表示所有 IPv4 和 IPv6 地址。
默认策略为 allow。
| 匹配 | POLICY=deny | POLICY=allow |
|---|---|---|
仅匹配 Allow |
allow |
allow |
仅匹配 Deny |
deny |
deny |
无匹配 |
deny |
allow |
同时匹配 Allow 与 Deny |
deny |
allow |
监听 IP 地址
默认情况下,pveproxy 和 spiceproxy 守护进程监听通配地址,并接受来自 IPv4 和 IPv6 客户端的连接。
通过在 /etc/default/pveproxy 中设置 LISTEN_IP,可以控制 pveproxy 和 spiceproxy 守护进程绑定到哪个 IP 地址。该 IP 地址需要已在系统上配置。
将 sysctl net.ipv6.bindv6only 设置为非默认值 1 会导致这些守护进程只接受 IPv6 客户端连接,通常也会引发许多其他问题。如果设置了该配置,建议移除该 sysctl 设置,或将 LISTEN_IP 设置为 0.0.0.0(这将只允许 IPv4 客户端)。
LISTEN_IP 可用于将套接字限制到内部接口,从而减少对公网的暴露,例如:
LISTEN_IP="192.0.2.1"
同样,也可以设置 IPv6 地址:
LISTEN_IP="2001:db8:85a3::1"
请注意,如果要指定 link-local IPv6 地址,需要同时提供接口名称。例如:
LISTEN_IP="fe80::c463:8cff:feb9:6a4e%vmbr0"
|
|
集群中的节点需要访问 pveproxy 进行通信,并且可能位于不同子网中。 不建议在集群系统上设置 LISTEN_IP。 |
要应用该变更,需要重启节点,或完整重启 pveproxy 和 spiceproxy 服务:
systemctl restart pveproxy.service spiceproxy.service
|
|
与 reload 不同,restart pveproxy 服务可能中断一些长时间运行的 worker 进程, 例如来自虚拟客户机的运行中控制台或 shell。因此,请在维护窗口内应用此变更。 |
SSL 加密套件
可以通过 /etc/default/pveproxy 中的 CIPHERS(TLS ⇐ 1.2)和 CIPHERSUITES (TLS >= 1.3)键定义加密算法列表。例如:
CIPHERS="ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256" CIPHERSUITES="TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256"
上面是默认值。所有可用选项请参见 openssl 软件包中的 ciphers(1) 手册页。
此外,可以在 /etc/default/pveproxy 中设置由客户端选择使用的加密算法 (默认使用客户端和 pveproxy 都可用的列表中的第一个加密算法):
HONOR_CIPHER_ORDER=0
支持的 TLS 版本
pveproxy 无条件禁用不安全的 SSL 2 和 SSL 3。较新的 OpenSSL 版本默认禁用低于 1.1 的 TLS 版本,pveproxy 会遵循该设置(见 /etc/ssl/openssl.cnf)。
要禁用 TLS 1.2 或 1.3,请在 /etc/default/pveproxy 中设置以下内容:
DISABLE_TLS_1_2=1
或者分别设置:
DISABLE_TLS_1_3=1
|
|
除非有特定原因,否则不建议手动调整支持的 TLS 版本。 |
Diffie-Hellman 参数
可以在 /etc/default/pveproxy 中将 DHPARAMS 设置为包含 PEM 格式 DH 参数的文件路径, 以定义要使用的 Diffie-Hellman 参数,例如:
DHPARAMS="/path/to/dhparams.pem"
如果未设置该选项,将使用内置的 skip2048 参数。
|
|
只有在协商出使用 DH 密钥交换算法的加密套件时,才会使用 DH 参数。 |
替代 HTTPS 证书
可以将使用的证书更改为外部证书,或更改为通过 ACME 获取的证书。
如果存在,pveproxy 会使用 /etc/pve/local/pveproxy-ssl.pem 和 /etc/pve/local/pveproxy-ssl.key;否则回退使用 /etc/pve/local/pve-ssl.pem 和 /etc/pve/local/pve-ssl.key。私钥不能使用 passphrase。
可以通过在 /etc/default/pveproxy 中设置 TLS_KEY_FILE,覆盖证书私钥 /etc/pve/local/pveproxy-ssl.key 的位置,例如:
TLS_KEY_FILE="/secrets/pveproxy.key"
|
|
内置 ACME 集成不会遵循该设置。 |
详细信息请参见文档中的主机系统管理章节。
真实客户端 IP 日志记录
默认情况下,pveproxy 会记录发送请求的客户端 IP 地址。当 pveproxy 前面有代理服务器时, 可能希望记录发起请求的客户端 IP,而不是代理 IP。
要启用对代理设置的 HTTP 头的处理以用于日志记录,请将 PROXY_REAL_IP_HEADER 设置为用于获取客户端 IP 的头名称。例如:
PROXY_REAL_IP_HEADER="X-Forwarded-For"
该头中传入的任何无效值都会被忽略。
默认行为是在所有传入请求上记录该头中的值。要定义可信任、允许设置上述 HTTP 头的代理服务器列表, 请设置 PROXY_REAL_IP_ALLOW_FROM,例如:
PROXY_REAL_IP_ALLOW_FROM="192.168.0.2"
PROXY_REAL_IP_ALLOW_FROM 设置也支持与 ALLOW_FROM 和 DENY_FROM 类似的值。
IP 地址可以使用 Net::IP 能识别的任意语法指定。名称 all 是 0/0 和 ::/0 的别名,表示所有 IPv4 和 IPv6 地址。
版权和免责声明
Copyright © 2022-2025 成都市梨儿方信息技术有限责任公司.
本程序是自由软件:你可以依据自由软件基金会发布的 GNU Affero General Public License 条款重新分发和/或修改本程序;可使用该许可证第 3 版,或(由你选择)任何后续版本。
发布本程序是希望它能够有用,但不提供任何担保;甚至不包含对适销性或特定用途适用性的默示担保。更多详情请参见 GNU Affero General Public License。
你应当已经随本程序收到一份 GNU Affero General Public License 的副本。如果没有,请访问: https://www.gnu.org/licenses/
Copyright © 2007-2022 Proxmox Server Solutions GmbH
本程序是自由软件:你可以依据自由软件基金会发布的 GNU Affero General Public License 条款重新分发和/或修改本程序;可使用该许可证第 3 版,或(由你选择)任何后续版本。
发布本程序是希望它能够有用,但不提供任何担保;甚至不包含对适销性或特定用途适用性的默示担保。更多详情请参见 GNU Affero General Public License。
你应当已经随本程序收到一份 GNU Affero General Public License 的副本。如果没有,请访问: https://www.gnu.org/licenses/