$ ssh remote-host "epmd -names"
epmd: up and running on port 4369 with data:
name some_node at port 58769
Note the running on port
for epmd
itself and the port of the node you're interested in debugging. Reconnect to the remote host with these ports forwarded:
$ ssh -L 4369:localhost:4369 -L 58769:localhost:58769 remote-host
On your machine, start a hidden Erlang node running the observer
app:
$ erl -name [email protected] -setcookie if-server-has-one -hidden -run observer
N.B.: If the server is using -sname
, you need to use -sname
as well, because Erlang™. You'll also need to change your system's hostname to match the target host, for the same reason.
In observer, go to Nodes - Connect Node and type [email protected]
.
You can also get a remote shell:
$ erl -name [email protected] -setcookie if-server-has-one -remsh [email protected]
Think you have to make sure GatewayPorts set to yes in the remote's /etc/ssh/sshd_config, then find out the address for the other interface so it looks like:
ssh -L 4369:other_interface:4369 -L 58769:other_interface:58769 remote-host
But that's only if you specifically bound the node to the other interface. You may only have bound your application to the other interface.