Sometime after I wrote this post, the procedure above stopped working for me as well. I haven’t really spent the time to get into debugging what’s happening at a protocol level, but simply forwarding the port and the trying to telnet to it on my local box terminates the connection and the forward command spits out the following output: ` ▸ ‘EACCES’: connection not allowed by ruleset`. I’m not sure what that points to exactly, but I’m guessing that Heroku’s not likely to spend TOO much time on it.
I haven’t really spent much time debugging it because A) Time is a fairly precious commodity for me right now! and B) this isn’t really all that practical a solution for clustering (though probably useful to debug with if it can be made to work.) You might try playing with different ways of assigning the port, or of getting BEAM to play nicely with SOCKS and using the socks support with the standard EPMD setup. The last thing I can think might be worth trying is to have a jump box on AWS somewhere, have the heroku nodes “phone home” when they start up, then open a remote shell on your jump box to then talk to the heroku node. But be aware of the security implications of doing so. At a minimum you really need to have a VPN in place for your dynos to use if you go that route.
At some point its just easier to move to AWS or some other PasS-like offering like nanobox.io or gigalixir.
