无法从linux机器telnet到localhost

时间:2017-02-02 12:34:05

标签: linux telnet

我在Linux机器上运行Python服务器:

# Echo server program
import socket

HOST = ''                 # Symbolic name meaning all available interfaces
PORT = 50007              # Arbitrary non-privileged port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
conn, addr = s.accept()
print 'Connected by', addr
while 1:
    data = conn.recv(1024)
    if not data: break
    conn.sendall(data)
conn.close()

当我尝试使用telnet连接到上面的服务器时,我收到此错误:

  

服务器查找失败:localhost:50007:telnet,名称或服务未知

为什么我会收到此错误,如何避免错误?

2 个答案:

答案 0 :(得分:2)

python程序看起来不错。 来自telnet的错误看起来像你一直在尝试使用类似SSH的命令行进行连接。

  

$ telnet localhost:50007

与SSH不同,Linux的telnet客户端不使用:语法进行连接。

尝试,

  

$ telnet localhost 50007

如果您的套接字有问题,telnet将返回“拒绝连接”或类似状态。 您可以使用 -

验证服务器是否已正确初始化并侦听指定的端口
  

$ netstat -an | grep 50007

如果netstat返回类似下面一行的内容,那么您的服务器正在侦听所有接口。

  

tcp 0 0 0.0.0.0:50007 0.0.0.0:* LISTEN

答案 1 :(得分:0)

  • 如果您的应用程序正在侦听50007端口,请尝试检查netstat -a
  • 尝试使用IP 127.0.0.1代替''