On the agent (node) configuration page when configuring to
"Launch agent by connecting it to the master" there is an Advanced
button. If you click that, one option that becomes visible is
"Tunnel connection through". This *might* work for you. Read the
inline help and try it to see if it meets your needs.
Another thing that might work for you soon is the the upcoming WebSocket connection mechanism ( https://github.com/jenkinsci/jep/blob/master/jep/222/README.adoc ). Looks like it's currently targeted towards the next weekly.
Jeff
https://wiki.jenkins.io/plugins/servlet/mobile?contentId=38929503#content/view/38929503
hudson.TcpSlaveAgentListener.hostName