325 字
2 分钟
使用 HTTPS 默认 443 端口访问 PVE WebUI

前言#

默认情况下,PVE 的 WebUI 是通过 8006 端口访问的。如果需要通过 443 端口访问,需要进行一些配置。


使用 iptables 转发#

将 443 端口的流量转发到 8006 端口:

Terminal window
# IPv4
sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8006
# IPv6(可选)
sudo ip6tables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8006

禁止访问 8006 端口(可选):

Terminal window
# IPv4
sudo iptables -A INPUT -i ! lo -p tcp --dport 8006 -j DROP
# IPv6(可选)
sudo ip6tables -A INPUT -i ! lo -p tcp --dport 8006 -j DROP

安装 iptables-persistent:

Terminal window
sudo apt-get update
sudo apt-get install iptables-persistent

安装过程中会提示保存当前规则,选择“Yes”即可。规则会分别存储在:

  • /etc/iptables/rules.v4
  • /etc/iptables/rules.v6

你也可以手动保存配置:

Terminal window
# IPv4
sudo iptables-save > /etc/iptables/rules.v4
# IPv6(可选)
sudo ip6tables-save > /etc/iptables/rules.v6

这是最简单的方法,推荐使用这个。


使用 Nginx 反向代理#

这个方法就较为复杂,需要配置 Nginx 反向代理。

安装 Nginx#

Terminal window
sudo apt install nginx
sudo rm /etc/nginx/conf.d/default
sudo rm /etc/nginx/sites-enabled/default
sudo nano /etc/nginx/conf.d/proxmox.conf

配置 Nginx#

upstream proxmox {
server "YOUR.FQDN.HOSTNAME.HERE";
}
server {
listen 80 default_server;
rewrite ^(.*) https://$host$1 permanent;
}
server {
listen 443;
server_name _;
ssl on;
ssl_certificate /etc/pve/local/pve-ssl.pem;
ssl_certificate_key /etc/pve/local/pve-ssl.key;
proxy_redirect off;
location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass https://localhost:8006;
proxy_buffering off;
client_max_body_size 0;
proxy_connect_timeout 3600s;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
send_timeout 3600s;
}
}

重启 Nginx#

Terminal window
systemctl restart nginx

参考资料#


使用 HTTPS 默认 443 端口访问 PVE WebUI
https://blog.devnak.win/posts/use_443_port_to_access_pve_webui/
作者
Beyonme Devnak
发布于
2025-08-23
许可协议
CC BY-NC-SA 4.0