Have you confirmed you actually have connectivity between the master and the node (ping, traceroute, ssh) ?
JNLP (as noted in your comment) uses a random port > 50000 for the back comms. You may want to verify that too.
You might change the following to fixed port:
Jenkins | Manage Jenkins | Configure Global Security
Agents TCP port for inbound agents: [o] Random
See my clarification response on JNLP connections or alternatively, via DCOM. Also review Troubleshooting WMI Windows Agents (or start there).
Not sure, but you may want to try adjust one of the following System Properties:
hudson.ProxyConfiguration.DEFAULT_CONNECT_TIMEOUT_MILLIS [ 20000 ]
Connection timeout applied to connections e.g. to the update site.
hudson.slaves.ChannelPinger.pingIntervalSeconds [ 300 ]
Frequency of pings between the master and slaves, in seconds
hudson.slaves.ChannelPinger.pingTimeoutSeconds [ 240 ]
Timeout for each ping between the master and slaves, in seconds
org.jenkinsci.main.modules.sshd.SSHD.idle-timeout [ undefined ]
Allows to configure the SSHD client idle timeout (value in milliseconds). Default value is 10min (600000ms).
Ps: did not notice this was an old Q. Advice still applicable.