Vor kurzem habe ich geschrieben, dass AntMedia IPv6 nicht unterstützt, siehe dazu auch Ant Media Server mit Apache Reverse Proxy.
Dieses Problem ist nun behoben. Vielen Dank an dieser Stelle für die schnelle Hilfe durch das Team von Ant Media, die sich mit mir persönlich in Verbindung gesetzt haben dazu!
Die Ursache für das Verhalten waren zwei Punkte:
- Die systemd-Unit für Antmedia,
/etc/systemd/system/antmedia.service
, enthält die Option-Djava.net.preferIPv4stack=true
für den Start des Servers, was dazu führt, dass der Ant Media Server IPv4 bevorzugt, auch wenn IPv6 vorhanden ist. - Die Konfiguration
/usr/local/antmedia/conf/red5.properties
enthält folgenden Eintrag, welcher die erlaubten IP-Adressen für das Dashboard festlegt:server.allowed_dashboard_CIDR=0.0.0.0/0
. Damit werden aber Clients, die sich über IPv6 verbinden, ausgeschlossen.
Die Korrektur ist relativ einfach und wird vermutlich auch in einem der nächsten Updates von Ant Media enthalten sein:
In der Datei /etc/systemd/system/antmedia.service die Option -Djava.net.preferIPv4stack=true
entfernen.
In der Datei /usr/local/antmedia/conf/red5.properties
folgenden Eintrag vornehmen (bzw. den vorhandenen Eintrag entsprechend ändern), damit Verbindungen zum Dashboard über IPv4 und IPv6 möglich sind:
# Default value is open everyone server.allowed_dashboard_CIDR=::/0,0.0.0.0/0
Danach den Server folgendermaßen neu starten:
systemctl daemon-reload systemctl restart antmedia
Nach diesen Änderungen kann man den Reverse Proxy in Apache auch ohne die Option ProxyAddHeaders off
verwenden und AntMedia sieht nun auch die echte IP-Adresse des Client und nicht nur 127.0.0.1:
RewriteEngine on RewriteCond %{HTTP:Upgrade} =websocket [NC] RewriteRule /(.*) ws://localhost:5080/$1 [P,L] RewriteCond %{HTTP:Upgrade} !=websocket [NC] RewriteRule /(.*) http://localhost:5080/$1 [P,L] ProxyPass / http://localhost:5080/ ProxyPassReverse / http://localhost:5080/
Update 2022-09-11
Für die Verwendung mit dem Reverse Proxy scheint die Änderung in der systemd-Unit nicht erforderlich zu sein. In meinem Fall genügt es, ::/0,0.0.0.0/0
als zulässige IP-Adressen in der Serverkonfiguration einzutragen. Das ergibt auch Sinn, da der Proxy sich über IPv4 verbindet und die IP-Adresse nur als Header übermittelt.