Server.py(在我的AWS EC2实例上运行)
import socket
s = socket.socket()
host = socket.gethostbyaddr('aws.ec2.public.ip')[0]
port = 12345
s.bind((host, port))
s.listen(5)
while True:
c, addr = s.accept()
print('Got connection from', addr)
c.send('Thank you for connecting'.encode())
c.close()
Client.py(在我的本地PC上运行)
import socket
s = socket.socket()
host = socket.gethostbyaddr('aws.ec2.public.ip')[0]
port = 12345
s.connect((host, port))
print(s.recv(1024).decode())
s.close()
授予所有入站和出站TCP流量
服务器代码未显示错误。但是客户端代码说
Traceback (most recent call last):
File "/Users/sohamjain/Desktop/client.py", line 7, in <module>
s.connect((host, port))
TimeoutError: [Errno 60] Operation timed out
>>>
通过rdp客户端连接到EC2实例非常正常
当我在本地主机上运行这两个脚本时,它们似乎工作正常。但是,如果使用AWS EC2实例,则不会。我哪里做错了?
我刚遇到您的情况:
正如克里斯·威廉姆斯(Chris Williams)在对您的问题的答复中提到的那样,在EC2实例上绑定侦听套接字时,不能使用公共IP地址。更改为使用私有IP,它应该可以工作。
另外,请确保为从AWS安全组绑定的端口启用流量。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句