我正在尝试将 xinetd(或 inetd)与 netcat 一起用作 TCP 代理。此设置在 Linux 上运行没有问题。
在 Cygwin 下,无论是作为服务还是从 Cygwin 命令行,(x)inetd 都无法打开 netcat,并出现错误“没有这样的文件或目录”。
我已经尝试指定/usr/bin/nc
, /usr/bin/nc.exe
, /cygdrive/d/cygwin/usr/bin/nc.exe
,d:\cygwin\bin\nc.exe
和 TON 的正向闪烁、反斜杠、Windows 路径和 Cygwin 路径的其他组合。不管怎样,我明白了errno 2, no such file or directory
。
有任何想法吗?我需要这个尽快工作。
编辑:我认为这可能与它在d:\cygwin
(蹩脚的硬编码?)中有关,但我在 cygwin on 的机器上对其进行了测试,C:\
那里也存在问题。
xinetd 与任何其他 unix 导入的进程一样,可以看到 unix 目录。因此,您不需要使用任何 Windows 目录格式,尤其是反斜杠变体。
第二:cygwin 将他们的大部分二进制文件安装
/bin
到/usr/bin
./bin/nc.exe
不在您列出的尝试之间。如果某些东西从命令行使用完整路径,它也需要从 xinetd 工作。
除此之外,还有另一个潜在的麻烦来源。配置 xinetd 是一个常见的语法问题。您的服务应如下所示:
...因此,对于“服务器”设置,您不应该插入任何参数!他们需要通过插入到上面的“server_args”中。如果你犯了这个错误,你会得到上面的文件未找到问题。