Today I was trying ssh tunneling between my desktop machine and a raspberry pi.  On the desktop machine I entered the following:

ssh user@192.168.1.4 -L 3000:192.168.1.4:1234

I then gave it my password then started rtl_tcp :

$ rtl_tcp -a 192.168.1.4 -p 1234

From my desktop machine I connected to 127.0.0.1:3000 and the connection was successful.

$ nrsc5 -H 127.0.0.1:1234 91.9 0
 IT worked as expected.

Then I logged out and tried again, only instead of the ip address I entered the name of hostname.

$ ssh  user@ladmo.asuscomm.com -L 1234:ladmo.asuscomm.com:1234

Then I started rtl_tcp just like I did before.

From the desktop machine I tried the same command again:
$ nrsc5 -H 127.0.0.1:1234 91.9 0

This time I got an error message.  I checked the terminal window where I logged into the raspberry pi and saw this:
channel 3: open failed: connect failed: Connection refused

I logged out and tried again, only with the -v option:
$ ssh -v user@machine.domain.com -L 1234:machine.domain.com:1234


I tried again:
$ rtl_tcp -a 192.168.1.4 -p 1234

This time I got   a little more information:

debug1: channel 3: free: direct-tcpip: listening port 3000 for machine.domain.com port 1234, connect from 127.0.0.1 port 56318 to 127.0.0.1 port 3000, nchannels 4

I tried one more time using the IP address assigned by my ISP.  It didn't work and I got the same message as above.

Does anyone know why it doesn't work when I don't use the local IP address?  The router is configured to forward incoming connections on port 22 to the raspberry pi.


Thanks