diff --git a/PVE/API2/Nodes.pm b/PVE/API2/Nodes.pm index 11919250..35191176 100644 --- a/PVE/API2/Nodes.pm +++ b/PVE/API2/Nodes.pm @@ -680,14 +680,16 @@ __PACKAGE__->register_method ({ $sslcert = PVE::Tools::file_get_contents("/etc/pve/pve-root-ca.pem", 8192) if !$sslcert; - my $port = PVE::Tools::next_vnc_port(); - - my $remip; + my ($remip, $family); if ($node ne PVE::INotify::nodename()) { - $remip = PVE::Cluster::remote_node_ip($node); + ($remip, $family) = PVE::Cluster::remote_node_ip($node); + } else { + $family = PVE::Tools::get_host_address_family($node); } + my $port = PVE::Tools::next_vnc_port($family); + # NOTE: vncterm VNC traffic is already TLS encrypted, # so we select the fastest chipher here (or 'none'?) my $remcmd = $remip ? diff --git a/PVE/API2Tools.pm b/PVE/API2Tools.pm index 1e79df6f..56cc0447 100644 --- a/PVE/API2Tools.pm +++ b/PVE/API2Tools.pm @@ -5,6 +5,7 @@ use warnings; use Net::IP; use PVE::Tools; +use PVE::INotify; use Digest::MD5 qw(md5_hex); use URI; use URI::Escape; @@ -143,7 +144,9 @@ sub run_spiceterm { my $authuser = $rpcenv->get_user(); - my $port = PVE::Tools::next_spice_port(); + my $nodename = PVE::INotify::nodename(); + my $family = PVE::Tools::get_host_address_family($nodename); + my $port = PVE::Tools::next_spice_port($family); my ($ticket, undef, $remote_viewer_config) = PVE::AccessControl::remote_viewer_config($authuser, $vmid, $node, $proxy, $title, $port);