A. I've got a computer at work which is behind a firewall so that I can't connect directly to it from the outside. This will be referred to as Work.
B. I've got a laptop at home which is connected to a wireless router. This will be referred to as Home.
C. The router is a Linksys/tomato router, which is accessible from the outside (myrouter.com). This will be referred to as Router.
I'd like to connect from home to my ecce server at work so that I can monitor and submit jobs.
At Work:
ssh -R 19997:localhost:8096 root@myrouter.com
At Home:
ssh -L 5555:localhost:19997 root@myrouter.com
We're basically tying together port 5555 at Home with port 8096 at Work, via an intermediary server.
At Home, edit your ecce/apps/siteconfig/Dataservers and change the relevant lines to
<eccedata>
<ecceserver>
<url>http://localhost:5555/Ecce</url>
<desc>ECCE Data Server--remote</desc>
</ecceserver>
<basisset>http://localhost:5555/Ecce/system/GaussianBasisSetLibrary</basisset>
</eccedata>
Note that submission actually happens from your ecce client, not your server (i.e. from Home, not Work), so to get your submission scripts in order you may have to do a bit of fiddling. E.g. if you ecce server is also the queue master for an SGE batch system:
Work:
ssh -R 19999:localhost:22 root@myrouter.com
Home:
ssh -L 5454:localhost:19999 root@myrouter.com
Home:
Edit /apps/siteconfig/remote_shells.site and add
ssh_p5454: ssh -XC -p 5454|scp -P 5454|xterm
But you can read more about that here: http://verahill.blogspot.com.au/2012/05/port-redirection-with-eccenwchem.html