Ticket #14038 (closed defect: fixed)
VRDP not listening for IPv6 on Linux host [Fixed in SVN]
|Reported by:||tlhackque||Owned by:|
Host OS Fedora 17
4.3 claims IPv6 support for RDP, but it isn't listening.
VirtualBox VM 4.3.26_OSE r98988 linux.amd64 (Mar 24 2015 20:06:06) release log 00:00:00.258916 VRDP: TCP server listening on port 3392 (IPv4 and IPv6). netstat -nltp | grep 3392 tcp 0 0 0.0.0.0:3392 0.0.0.0:* LISTEN 24636/VBoxHeadless
If VRDP was listening on IPv6, there would be a tcp 0 0 :::3392 line
telnet :: 3392 Trying ::... telnet: connect to address ::: Connection refused
The confusion may be that on some OSs a wildcard socket listen will accept connections from any address family. Or assume IPv4-compatible IPv6 addresses when listening on IPv6 sockets.
This is not the case on all Linux distributions. I don't think any accept either address family on an IPv4 listen. And whether IPv6 sockets accept IPv4 connections depends on the default for IPV6_ONLY, the default for which is configurable in /proc and varies by distribution.
VDRP appears to be listening on IPv4 0.0.0.0.
In the general case, VRDP needs to listen on two sockets to accept connections from both IPv4 and IPv6. This will work on any OS. Or there could be a configuration option to specify which address family to listen to.
In any case, the current log message is wrong and it doesn't seem possible to connect to VirtualBox's RDP over IPv6 on Fedora.
Related: it should be possible to bind the listen(s) to a specific IP address (v4 and/or v6). In a multihomed environment (which all IPv6 environments are), this can be useful. For example, one could use the default RDP port for all VMs if one could specify a dedicated IP address for each VM's RDP listener. Filtering by address can also reduce the number of rules required for some firewall situations.
- Summary changed from VRDP not listening for IPv6 on Linux host to VRDP not listening for IPv6 on Linux host [Fixed in SVN]