A maneira usual é criar uma VPN (por exemplo, com o OpenVPN). Mas você também pode usar o SSH.
ssh -R [bind_address:]port:host:hostport
Você pode automatizar isso usando chaves sem passphrase, mas as conexões SSH interrompidas não são reiniciadas automaticamente. Assim, seria útil fazer a chamada SSH a partir de um loop. No entanto, o OpenVPN seria mais útil.
Editar 1
Se você quiser encaminhar outros endereços remotos do que localhost, não esqueça de colocar ambos
GatewayPorts yes
no arquivo sshd_config
para o servidor e reinicie o servidor posteriormente. Você precisa usar um desses formatos do comando ssh
e, em seguida:
-R 1.2.3.4:port:host:hostport
-R \*:port:host:hostport # the \ being for the shell only
-R :port:host:hostport
O host
é um endereço no lado local (geralmente localhost
ou um dos outros endereços IP do host).