Yeah - the easiest way (if you have SSH access to the server) is by SSH.
Do I understand correctly? You want server A to talk to server B, which then talks to server C? If so, then SSH is your answer.
You connect via SSH to server B from server A. You tell SSH to forward all connections to port X on server A to port Y on server C. Any socket made to A:X ends up going to Y:C. SSH being what it is, you can select one of many forms of encryption for the link (or none whatsoever). SSH also supports gzip compression of the link, so it can even make things faster 😉
I use it a lot to get through firewalls and past obtrusive proxies 😉 I worked at a marketing place (never again), and their fascist firewall wouldn't let me get out on the net properly, and blocked all sorts of stuff coming in. I SSH'd to a server I was running in Colorado (I was in London), and forwarded all traffic to port 8080 on my local machine to port 80 on the remote server. On the remote server I configured apache to act as a proxy server for local addresses, and set my local proxy to localhost:8080. Then, any web accesses were being encrypted, sent through the firewall to Colorado, decrypted and then on to the original destination - my employers had no idea. I digress :-P