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에서 들어오는 세션을 위해 방화벽에 구멍을 뚫어야 합니다. 어떤 방화벽을 실행하고 있는지 알지 못한 채 이에 대한 솔루션을 제공하는 것은 현명하지 않습니다. (질문을 업데이트하고 싶다면 저나 다른 사람이 해결책을 제공할 수 있습니다.)

관련 정보