1

xinetd 接続を別のローカル ポート (12345 など) に転送したい。CentOS/Redhat のドキュメント Chapter 17. TCP Wrappers and xinetd, article 17.4.3.3に基づいてソリューションを作成しました。この例では、構成によってデーモンが開始され、トラフィックが host:port にリダイレクトされます。ドコは、同じシステムの別のポートにも転送できるはずだと言っています。

私の現在の目標は、ポート 12345 の任意の接続でデーモン (testsmpp など) を開始し、ストリームを特定のポート (54321 など) にリダイレクトすることです。注意が必要なのは、デーモン (testsmpp) に STDIN から読み取らせたくないということです。代わりに、xinetd がトラフィックを転送しているポートから読み取れるようにする必要があります。

/etc/service の下にサービスを作成しました。

testsmpp    12345/tcp

そして、デーモンのxinetd構成は

service testsmpp
{
    sock_type =     stream
    protocol =      tcp
    wait =          no
    user =          root
    server =        /home/me/bin/testsmpp        
    redirect =      54321
}

testsmpp はポート 54321 でリッスンします。問題は、外部からの接続で xinetd がデーモンを起動するが、トラフィックを 54321 に転送しないことです。サーバーが起動すると、54321 ポートに直接接続できますが、接続は xinetd 経由で行われます (ポート 12345)。 ) は転送されません。

サーバータグとリダイレクトタグは相互に排他的ですか? 同時サーバーの xinet フォークに関する議論を見ましたが、私の動機は少し異なります。分散コンピューティング環境では、他のアプリケーションもそのポートのデーモンと通信するため、別のポートで着信接続をリッスンしたいと考えています。

手がかりは大歓迎です。

4

2 に答える 2

3

これは、このソースから取得したサンプル構成であり、私にとってはうまくいきました:

service smtp_forward
{
    disable         = no
    type            = UNLISTED
    socket_type     = stream
    protocol        = tcp
    user            = nobody
    wait            = no
    redirect        = remote_server 25
    port            = 2000
}
于 2014-05-14T01:49:49.733 に答える