简单的Python TCP服务器在Amazon EC2实例上无法工作

5 投票
1 回答
3583 浏览
提问于 2025-04-18 16:47

我正在我的EC2上运行一个简单的Python TCP服务器,监听6666端口。我已经创建了一个入站TCP防火墙规则来开放6666端口,并且对外发出的端口没有任何限制。

但是,我无法从外部连接到我的实例,使用telnet或netcat测试时总是无法建立连接。不过,从本地连接是可以的。

有没有什么想法可能出了问题?



    #!/usr/bin/env python

    import socket


    TCP_IP = '127.0.0.1'
    TCP_PORT = 6666
    BUFFER_SIZE = 20  # Normally 1024, but we want fast response

    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind((TCP_IP, TCP_PORT))
    s.listen(1)

    conn, addr = s.accept()
    print 'Connection address:', addr
    while 1:
        data = conn.recv(BUFFER_SIZE)
        if not data: break
        print "received data:", data
        conn.send(data)  # echo
    conn.close()


1 个回答

10

你的TCP_IP只是在本地监听,因为你把监听的IP设置成了127.0.0.1。
TCP_IP = "0.0.0.0"改成这样,它就会在“所有”接口上监听,包括你对外的IP地址。

撰写回答