web-dev-qa-db-ja.com

xinetdを使用したSSHトンネル。バインドアドレスはすでに使用されています

コマンドラインから正常に機能するsshトンネル接続があります。

ssh -f -N -L 4444:to.somewhere.com:80 [email protected] -p 22

今、私はこれを接続して、オンデマンドでxinetdに接続しようとしています。このカスタムポートを/ etc/service(ツール4444/tcp)に配置し、構成ファイルを/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 [email protected] -p 22
   port            = 4444
   disable         = no
}

Xinetdを再起動した後、wgetでこのpoortに接続して、メッセージを取得しようとします。

バインド:アドレスはすでに使用されています

lsof-iもnetstat-aも、フォアハンドに開いている4444を表示しません。

1
Ezeyme

その理由は、xinitdがポートにバインドし、sshがそれを使用しようとすると、ポートはすでに使用されているためです。 xinetdを使用するには、子プロセスでstdin/stdoutと通信する必要があります。

Xinetdを使用してsshトンネルを管理する方法のポインタは次の場所にあります。

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

2
Dan Andreatta