`hudson.TcpSlaveAgentListener.hostName` can be used to set X-Jenkins-CLI-Host header, which is used by jenkins CLI to determine the TCP channel target host.
When jenkins is hosted with a reverse proxy and you try to setup a Java Web Start slave, this one tries to connect to reverse proxy for TCP channel, even when this parameter is set on master.
JNLP slave do run the remoting lib (downloaded as "slave.jar") which doesn't handle X-Jenkins-CLI-Host. Arguably this header is for CLI, not JNLP
I suggest to introduce a new X-Jenkins-JNLP-Host (to match X-Jenkins-JNLP-Port) that would be exposed by hudson/TcpSlaveAgentListener/index.jelly to reflect configured hudson.TcpSlaveAgentListener.hostName