问题标签 [xinetd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
733 浏览

c - 从listen and fork到xinetd

我有一个 C 网络软件,目前在侦听和分叉模式下工作。它正在侦听某个服务器套接字并接受传入连接。然后它调用提供新接受的套接字的核心服务器函数。

现在我正在尝试使该软件也可以在 xinetd 后面运行(取决于一些运行时参数)。我试图直接调用提供文件描述符 0 而不是接受的套接字的核心服务器函数,但是这种方法不起作用。程序立即以 SIG_PIPE 停止。

这种行为有什么明显的原因吗?我的核心功能执行一些低级套接字调用和信号处理。那应该在 xinetd 后面工作吗?

0 投票
1 回答
1561 浏览

python - python xinetd客户端没有收到数据

我正在尝试使用 xinetd 远程运行命令(traccejob)。当我通过 telnet 连接时,一切正常。不幸的是,我编写的客户端似乎没有从服务器接收数据。代码如下所示:

服务器:

客户:

客户端进程在 sock.recv(1024) 行停止。我一生都无法说出为什么 sock.recv 没有从套接字读取输出。可能是编码问题?如果有帮助,xinetd.d 文件如下所示:

其中 tracejob_xinetd.py 是上述服务器。

有小费吗?提前致谢。

0 投票
1 回答
3525 浏览

ubuntu - 解决xinetd“传输端点未连接”

我正在尝试让一个简单的 websocket 代理与 xinetd 一起使用。

代理在这里:https ://github.com/kumina/wsproxy (vnc 的基本代理)

这是我的 xinetd/wsproxy 配置:

还尝试了各种更改,例如 'wait=yes' 和 'wait=no' 仍然是相同的结果

我在 syslog 中有一百个这样的条目:

最后:

xinetd 正在运行,并且也在 netstat 中。

拔掉我的头发,找不到它为什么不运行。

(运行 ubuntu 11.04 x64)

有任何想法吗 ?

0 投票
1 回答
133 浏览

xinetd - CENT OS xinetd 服务

我想用 /etc/services 在我的 CENT OS Linux 机器上打开 pop3 端口。并在/etc/xinet.d/上添加pop3脚本修改该文件后,无法重启/etc/rc.d/init.d/xinetd。该目录中没有 xinetd 文件。

如何在没有 xinetd 启动脚本的情况下重新启动 xinetd。

谢谢。

0 投票
1 回答
974 浏览

java - 如何将 JRMP (RMI) 与加密 (ssl) 和 xinetd 一起使用?

所以,我正在滚动我自己的基于 Java 的应用程序服务器(因为 Glassfish 等人不适用于非基于 Web 的应用程序),当然,加密是绝对必须的。因此,我使用标准编写了一个基本的 ssl 解决方案SslRMIClientSocketFactory,和SSLRMIServerSocketFactory. 到目前为止,一切都很好。不过,我还有一些其他问题,例如允许但不要求使用客户端证书(就像您 ssh 进入系统时一样),但我愿意考虑改天再做一次练习。

然而,在此过程中,我注意到自 2005 年左右以来随着“Java 5.0”的出现,我们显然对使用xinetd基于 'nix 的解决方案有所帮助。在我看来,这样做的“新”帮助是能够从较低级别(如 xinetd - via )“继承”套接字信息System.inheritedChannel

我想我需要一个在 RMI 解决方案中一起使用加密和 xinetd 的示例,并在这里找到了一篇很棒的文章 The New RMI - 或者,至少,如果不是应该附带的示例代码,那就太好了文章不见了。有点烂,我猜。(有人有副本吗?!)文章中可见的示例太不完整,文本依赖于您拥有示例代码的事实。那好吧。简单地说,我不太明白 - 使用System.inheritedChannel显然不像将其插入现有的 RMI Registry 相关代码那么简单 - 你显然必须创建一个套接字工厂,或者我只是不明白 - 因此,寻找一个例子。

于是我去打猎。我发现 Apache 的人做了类似的事情,这里描述了RMI Service Exporter,但是,它使用了我宁愿避免使用的技术 - SpringBeans,如果你愿意的话。而且,因为这是一个重要的例子,坦率地说,我对如何在我的工作中使用这种类型的解决方案有点迷茫。

我一直在寻找并发现乍一看似乎是一个名为InitializeRegistry的出色解决方案,但它根本没有对 SSL 的任何引用,我马上就迷路了。例如,它将自己描述为:

创建和导出一个注册表(使用继承的通道,如果有的话,如下所示),并将指定的名称绑定到该注册表中的指定代理。

我的问题是语言。特别是,我没有使用代理,即使我使用了,我也不知道为什么这很重要。而且我认为我将对象绑定到 RMI 注册表,而不仅仅是名称。也许如果有人可以澄清他们在做什么,这是一个很好的例子......

最后,我在 StackOverflow 上偶然发现了一个很棒的回复——这是有史以来最糟糕的回复之一,谈论Java RMI、SSL 和压缩。压缩不符合我的需求,但它是一个有启发性的讨论。不过,我看不出它如何帮助我理解如何同时将 RMI 与 SSL 和 xinetd 一起使用......

谢谢你。

更新:

为了回应 EJP 提出的答案(对此我很感激),我从InitializeRegistry.java上面引用的示例开始。我将 accept() 方法更新为:

但是,此代码无法编译,抱怨:

  • createSocket()不能从静态上下文中调用 - 我找不到任何解决方案
  • 它找不到“符号”“ .accept()”——两者中的第二个。

删除 final.accept()会导致错误倒计时,只是无法createSocket()从此代码的静态上下文中使用“非静态方法”。但是当我尝试从类中删除“静态”时,它到处都是,无法使用无处不在的“ this”引用。OTOH,我不知道如何制作SSLSocketFactory.createSocket()静态!

...是否可以安全地假设accept()用于访问传递的套接字 (!!) 的那个就足够了,并且不需要我尝试包含的后续一个?嗯……

我很乐意尝试一下,看看我能不能把它建成。

顺便说一句,我想我会setUseClientMode(false)在以后使用......是吗?

进一步思考......

我意识到这可能InitializeRegistry.java是一个糟糕的起点,并回到“第一原则”,发现当它第一次接受channel它时,它可能会误入歧途System.inheritedChannel,并将其转换为 a ServerSocket,所以覆盖的想法ServerSocketFactory是,嗯,“很多工作”。然后它就撞到了我:

这里的重点是尝试确保未经请求的连接请求到达正在侦听的目标。但更重要的是,注册表中必须有一个对象才能使用它,为此,人们也需要任何创造这种情况的东西。因此,确保创建对象的代码作为 SYSTEM SERVICE 运行,而不用担心将其作为 NETWORK SERVICE 来解决,这同样好,也更容易。

因此,我在下注。...不过,删除这个问题似乎很可惜,因为这可能会为其他人提供指导——这是 StackOverflow 中唯一一个涉及这个主题的查询。

再次感谢。

0 投票
3 回答
2420 浏览

php - Xinetd 用 PHP 获取远程 IP

您好,我有 xinetd 的这项服务:

我的文件 test1.php:

我无法获取远程IP:

因为我可以得到远程IP??

0 投票
1 回答
956 浏览

proxy - nginx和xinetd有什么区别?

nginx 和 xinetd 有什么区别?

我什么时候应该更喜欢 nginx,什么时候应该更喜欢 xinetd?

也许我错了,但我觉得他们都是代理人。我知道 nginx 做得更多,但是 - 有什么 xinetd 做得更好吗?

0 投票
1 回答
1400 浏览

linux - Xinetd 禁用标准错误重定向

我只是为我的一个二进制文件设置了 xinetd 以作为服务运行。但是在我看来,stdout 和 stderr 都被重定向到套接字流中。

无论如何要禁用 stderr 吗?我在 xinetd 设置的服务器字段中尝试:server = binary 2>/dev/null但它不起作用

谢谢

0 投票
4 回答
22678 浏览

python - 从没有换行符或 EOF 的 sys.stdin 读取

我想从我的 gps-tracker 接收数据。它通过 tcp 发送数据,所以我使用 xinetd 来监听一些 tcp 端口和 python 脚本来处理数据。这是 xinetd 配置:

在 /etc/services 中配置

和 Python 脚本 gps.py

跟踪器以原始文本形式发送数据字符串,例如

问题是 python 脚本中的 sys.stdin 没有收到行尾或文件结尾字符,并且 sys.stdin.readline() 永远存在。我试图用 python 脚本从另一台电脑发送数据

如果消息是'hello',它会失败,但如果消息是'hello\n',没关系,一切都很好。但我不知道如何告诉 tracker 或 xinetd 在消息末尾添加这个 '\n'。如何在没有 EOF 或 EOL 的情况下从 sys.stdin 读取数据?

0 投票
2 回答
14754 浏览

linux - 使用 xinetd 接收传入连接时执行脚本

我希望 xinetd 在某个端口收到连接时执行 shell 脚本。为此,请遵循本教程:[在此处输入链接描述][1]

不幸的是,整个事情都不起作用,因为我希望这就是我要向您展示我的配置的原因。

xinetd 调用的脚本位于/usr/local/bin。它可以毫无问题地执行:

/etc/xinetd.d/testservice 有这个内容:

在 /etc/services 我添加了这一行:

然后我重新启动了xinetdservice xinetd restart

最后,我尝试连接到客户端:

有人可以告诉我这里出了什么问题吗?

以下是 /var/log/syslog.1 中的一些行:

其他服务似乎在运行:

网络统计-an | egrep 'Proto|LISTEN'

也许这也有帮助: