pveproxy tcpv4 connection

floh8

Active Member
Jul 27, 2021
763
67
33
Tach,

ich wollte mal wieder was posten, was mir aufgefallen ist und mir aber vollig unverständlich. Ich habe bislang noch keine IPv6 Erfahrung und bin deshalb noch sehr unwissend auf dem Gebiet. Ich habe hier eine PVE Test Umgebung, die ich erst kürzlich auf 7.4 geupdatet habe. Da ich PVE virtualisiere, verbinde ich mich von meinem Host via Browser auf das Portal über IPv4 unter Port 8006. Auf dem Host habe ich IPv6 deaktiviert. Wenn ich mir in der PVE VM die Connections anschaue, dann sehe ich meine HTTPS-Verbindung, aber mit tcp6. Warum denn tcp6 und warum zeigt er IPv4 Adressen?

1682107399473.png

Wenn ich mal nach den horchenden webdienst filtere, dann finde ich keinen Socket für ipv4.
1682107517414.png

Wenn ich mich via ssh verbinde, sieht das richtig aus. Was ist mit dem Webserver von Proxmox los? Übrigens verhält sich der Webdienst im PBS genauso. Kann das irgendwer erklären?
 
pveproxy listened sowohl auf ipv4 als auch ipv6, deswegen schaut der output so aus. die moderne alternative "ss" macht das ein bisschen besser ;)

Code:
$ ss -ltpn | grep pveproxy
LISTEN 0      4096               *:8006             *:*    users:(("pveproxy worker",pid=7261,fd=6),("pveproxy worker",pid=7260,fd=6),("pveproxy worker",pid=7259,fd=6),("pveproxy",pid=7258,fd=6))

vs sshd, der jeweils einzeln auf ipv4 und ipv6 lauscht:

Code:
$ ss -ltpn | grep ssh
LISTEN 0      128          0.0.0.0:22         0.0.0.0:*    users:(("sshd",pid=3281,fd=3))                                                                                                   
LISTEN 0      128             [::]:22            [::]:*    users:(("sshd",pid=3281,fd=4))
 
@fabian: Das erklärt nicht, warum netstat das nicht richtig anzeigt. Offenkundig ist, das "ss" die beiden sockets zusammenfasst mit einem "*", was ich nicht sinnvoll finde, aber naja. Interessanter Weise macht ss das bei ssh nicht.
Ich habe mal ipv6 im pve deaktiviert und siehe da, es sieht ordentlich aus.
1682587405747.png

1682587454647.png

1682587493172.png

Bleibt für mich nur die Frage offen, warum netstat, es bei ssh anders anzeigt als bei pveproxy.

1682587718025.png
 
Last edited:
2 sockets vs 1 socket. pveproxy macht bind auf "::", was in der standard config auf Linux sowohl ipv4 als auch ipv6 bedeutet. ssh macht bind separat, einmal fuer ipv4 (0.0.0.0) und einmal fuer ipv6 ("[::]"). im ss output siehst du auch dass das zwei FDs sind, nicht wie bei pveproxy einer. wenn du ipv6 ganz ausmachst, dann macht pveproxy ein fallback auf nur ipv4 (0.0.0.0). das ist nix PVE spezifisches, das ist einfach standard linux dual stack verhalten.
 
Anscheinend ist das bei netstat noch nicht so richtig in die Programmierung eingeflossen. Was bedeutet FD?
 
File Descriptor (das offene Socket, in diesem Fall)
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!