Linuxでリモートでカスタマイズされたサービスを実行する

Linuxでリモートでカスタマイズされたサービスを実行する

サーバー側から:(@ip(例:10.0.0.3))

次の簡単なスクリプトを検討してくださいscript.sh/home/user/script.sh

#!/bin/bash
echo good

script.sh上記のスクリプトを実行するために、xinetdの下にxinetdという新しいサービスを作成してみましょう/etc/xinetd.d/script.sh

service script.sh                       # Name from /etc/services;
{
        server = /home/user/script.sh          # The service executable
        server_args = ANY_ARGS_HERE        # Any arguments; omit if none
        user = USER                        # Run the service as this user
        socket_type = TYPE                 # stream, dgram, raw, or seqpacket
        wait = nO                      # yes = single-threaded, no = multithreaded
}

次に、このサービスを次に追加します/etc/services

script.sh    3376/tcp 

最後に、xinetdを再起動してください。service xinetd restart

クライアント側から:

これで、サーバーのサービスを使用してリモートscript.shで実行したいと思います。script.sh次のように見えます。script.sh 10.0.0.3 3376/tcp

私の質問は次のとおりです。

サーバーでこのスクリプトを実行してクライアントから結果を取得するには、クライアントにどのような構成が必要ですか?

答え1

/etc/servicesとで定義したポートに接続します/etc/xinetd。したがって、サービスをホストするリモートサーバーであると仮定すると、次のいずれかのコマンドが機能する可能性10.0.0.3があります。script.sh

nc 10.0.0.3 3376
telnet 10.0.0.3 3376

リモートサーバーでファイアウォールを実行している場合は、3376 / tcpからの着信セッションのためにファイアウォールに穴を開ける必要があります。どのファイアウォールを実行しているのかわからないまま、これにソリューションを提供するのは賢明ではありません。 (質問を更新したい場合は、私や他の人が解決策を提供できます。)

関連情報