我最近一直在学习有关套接字编程的知识,并且刚刚开始学习关于tcp / ip套接字。我的学习资料提供了一个daytime
通过运行telnet 127.0.0.1 13
预期的结果(应打开telnet会话)连接到localhost服务的示例。我的文件中有一个“ daytime 13/tcp
”条目/etc/services
,并且xinetd
正在运行服务,但是当我尝试telnet命令时,我立即收到“拒绝连接”的信息。
问:为什么不能通过telnet进入白天服务?
问:还有其他可以接受telnet连接的localhost服务吗?我尝试通过telnet随机选择在中有tcp
条目的服务/etc/services
,但是所有这些都给出了相同的“连接被拒绝”错误。
我的短期目标是将学习材料的成功telnet连接复制到localhost tcp服务-如果不是inetd
,则进行其他操作;否则,请执行其他操作。我只想通过练习来学习。
>telnet 127.0.0.1 13
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
>telnet 127.0.0.1 49000
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
>telnet 127.0.0.1 9009
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
>uname -a
Linux linuxbox 3.11.10-301.fc20.x86_64 #1 SMP Thu Dec 5 14:01:17 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
该/etc/services
不表明哪些服务实际运行。请参阅/ etc / services的用途。您将需要找到正在运行的服务(或启动一个服务)。通过查看,您可以看到正在收听的内容netstat -nlt
。特定的服务会有所不同,但是您会看到类似以下内容的信息:
$ netstat -nlt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp6 0 0 :::3306 :::* LISTEN
tcp6 0 0 :::111 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 ::1:631 :::* LISTEN
tcp6 0 0 ::1:25 :::* LISTEN
所以:
daytime
服务可能未运行。如果它没有出现在列表中(并且您可以从上面的列表中看到我没有在运行),那么该端口上没有任何监听。如果已安装该服务,则可能会启动它。还有许多其他潜在服务,具体取决于安装和激活的内容。在上面的清单中,端口25
正在侦听,这是邮件服务。因此我可以通过telnet
端口25进行连接。由于默认情况下未安装telnet,因此我使用nc
connect进行连接,但是原理是相同的:
$ nc 127.0.0.1 25 220 centos7.feedthecoder.com ESMTP Postfix HELO me.theworld.com ...
编辑:正如评论中提到的,这当然可能是防火墙问题。通常,安装不会阻塞127.0.0.1
,但这始终是可能的。
另外,根据您的发布,daytime
可能不会安装,这将是进一步的障碍。如果已安装,则应该可以通过正常的服务启动(例如service start daytime
,或等效的发行版)启动它。
编辑:事实证明,这daytime
完全是xinetd
作为内部服务提供的。因此,尽管上面有关列出服务的信息正确无误,但要daytime
确保xinetd
已安装并且文件/etc/xinetd/daytime-stream
已disabled
设置为no
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句