首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问inetd服务?

如何访问inetd服务?
EN

Unix & Linux用户
提问于 2021-02-08 10:52:53
回答 2查看 214关注 0票数 2

因此,我根据这个示例https://en.wikipedia.org/wiki/Inetd创建了一个简单的inetd错误日志记录服务。

代码语言:javascript
复制
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
  const char *fn = argv[1];
  FILE *fp = fopen(fn, "a+");

  if (fp == NULL) 
    exit(EXIT_FAILURE);

  char str[4096];
  /* inetd passes its information to us in stdin. */
  while (fgets(str, sizeof str, stdin)) {
    fputs(str, fp);
    fflush(fp);
  }
  fclose(fp);
  return 0;
}

我把这一行附加到/etc/services/

代码语言:javascript
复制
errorLogger 9999/udp

这条线到/etc/inetd.conf

代码语言:javascript
复制
errorLogger dgram udp wait root /usr/local/bin/errlogd errlogd /tmp/logfile.txt

我现在怎么能查到这个?我在本地网络中的Raspberry Pi上配置了服务。我是否需要编写访问UDP端口9999的客户端程序,还是可以通过SSH完成?

我已经试过了

代码语言:javascript
复制
ssh pi@raspberrypi -p 9999

但上面写着ssh: connect to host raspberrypi port 9999: Connection refused

我还重新加载了systemd服务。

代码语言:javascript
复制
sudo service inetd reload

但没什么用。

EN

回答 2

Unix & Linux用户

发布于 2021-02-08 14:35:24

由于您提到了日志记录服务,所以可以使用logger命令向其写入:

代码语言:javascript
复制
logger --udp --port 9999 --server 127.0.0.1 'test msg'

另一个通用实用程序是socat

代码语言:javascript
复制
echo 'test msg' | socat -u - udp-sendto:127.0.0.1:9999
票数 3
EN

Unix & Linux用户

发布于 2021-02-08 16:09:59

您已经在UDP端口9999上创建了一个侦听服务。为了写到这一点,您需要使用一个可以创建UDP数据包的工具,而ssh不是其中之一。

netcat工具可以生成UDP数据包,例如,我使用的版本如下,

代码语言:javascript
复制
echo hello | nc -u -q1 remoteHost 9999    # Some versions of nc still also need "-w1"
票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/633291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档