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