Setup dynamic forwarding
Local SSH forwarding can act as a full-featured secure proxy with the use of so-called dynamic forwarding. Essentially, the dynamic forwarding is a regular local port forwarding but with a SOCKS server activated on the local listening port. The presence of the SOCKS server allows clients to specify different remote endpoints in their requests, thus making local forwarding usable in cases where the destination endpoints are not known beforehand. Each tunnel is therefore created in 'dynamic' way (upon receiving a SOCKS request from the connected client), hence the name.
Dynamic forwarding can be activated by setting the forwarding object's TElSSHLocalPortForwarding.UseDynamicForwarding property to true. You can omit DestHost and DestPort settings in this case, as these values will be taken dynamically from the client's requests upon their arrival.
With dynamic forwarding you might need to tune-up the ResolveDynamicForwardingAddresses property. If this property is set to true, the forwarding component will try to resolve host names locally (and pass the resolved IP address to the server). If set to false, the component will pass the host name to the server as is without resolving it. Keeping this property set to false is an optimal solution in the majority of scenarios.