在 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 上的传入会话。在不知道您正在运行哪个防火墙的情况下,为此提供解决方案是不明智的。 (如果您想更新您的问题,那么我或其他人可以提供解决方案。)

相关内容