Soh*_*ain 5 python sockets tcp amazon-ec2 amazon-web-services
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()
Run Code Online (Sandbox Code Playgroud)
Client.py(在我的本地电脑上运行)
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()
Run Code Online (Sandbox Code Playgroud)
授予所有入站和出站 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
>>>
Run Code Online (Sandbox Code Playgroud)
通过rdp客户端连接到EC2实例完美
当我在本地主机上运行这两个脚本时,它们似乎工作正常。但对于 AWS EC2 实例,则不然。我哪里做错了?
小智 3
我刚刚遇到你的情况:
正如 Chris Williams 在回复您的问题时提到的,在 EC2 实例上绑定侦听套接字时不能使用公共 IP 地址。将其更改为使用私有 IP,它应该可以工作。
另请确保从 AWS 安全组启用要绑定的端口的流量。
| 归档时间: |
|
| 查看次数: |
3459 次 |
| 最近记录: |