Linux – SSH tunnel with xinetd; bind Address already in use

linuxsshxinetd

I'm having an ssh tunnel connection which works fine from the command-line;

ssh -f -N -L 4444:to.somewhere.com:80 user@xxx.xxx.xxx.xxx -p 22

Now I'm trying to make this connect to connect on demand with xinetd. I've put this custom port in /etc/service (tool 4444/tcp), and made a config file in /etc/xinetd.d;

service tool
{
   socket_type     = stream
   instances       = 1
   wait            = no
   user            = root
   server          = /usr/bin/ssh
   server_args     = -f -N -L 4444:to.somewhere.com:80 user@xxx.xxx.xxx.xxx -p 22
   port            = 4444
   disable         = no
}

After restarting xinetd I try to connect to this poort with a wget and get the message;

bind: Address already in use

lsof -i nor netstat -a don't show any open 4444 on forehand.

Best Answer

The reason is that xinitd will bind to the port, and when ssh tries to use it, the port is already in use. To use xinetd, you should communicate with stdin/stdout with the child process.

You can find a pointer how to manage a ssh tunnel with xinetd here:

http://www.debian-administration.org/articles/487

Related Topic