无法使用 python 通过 tcp 连接到我的谷歌云虚拟机实例

Neo*_*Neo 2 python firewall google-compute-engine google-cloud-platform server

情况

\n\n

我用 python 写了一个简单的程序。这是一个简单的套接字聊天程序。在我的程序中,客户端只需连接到一个地址(ip、端口)并发送一条消息,而此时服务器已准备好并接收消息并打印它。我可以保证程序是正确的,因为我在我的电脑上尝试过。

\n\n

我在 Google Cloud Platform 上有一个 VM 实例,我可以通过 ssh 进行操作,这是 google cloud 提供的一种简单方法。我可以确保服务器正在运行。

\n\n

问题

\n\n

我在我的谷歌云服务器上启动一个简单的 TCP 服务器、Python 程序。然后我在计算机上启动客户端程序。但我收到这个错误:

\n\n
\n

ConnectionRefusedError: [WinError 10061] 由于目标计算机主动拒绝而无法建立连接

\n
\n\n

或同等的中文:

\n\n
\n

ConnectionRefusedError: [WinError 10061] \xe7\x94\xb1\xe4\xba\x8e\xe7\x9b\xae\xe6\xa0\x87\xe8\xae\xa1\xe7\xae\x97\xe6\x9c\xba\xe7 \xa7\xaf\xe6\x9e\x81\xe6\x8b\x92\xe7\xbb\x9d\xef\xbc\x8c\xe6\x97\xa0\xe6\xb3\x95\xe8\xbf\x9e\xe6\x8e \xa5\xe3\x80\x82

\n
\n\n

我该如何解决这个问题并连接到我的谷歌云服务器?

\n\n

我想也许防火墙拒绝了我的计算机的连接,但不知道如何解决。

\n

Joh*_*ley 5

此错误意味着您的程序没有侦听0.0.0.0port XYZ

检查您的程序是否正在侦听localhost. 如果更改为0.0.0.0表示所有可用网络。localhost意味着不侦听任何网络接口,只接受来自计算机内部的连接。

然后仔细检查端口号。

要查看是否有监听,请运行以下命令 (Linux):netstat -at

寻找与您的端口相符的线路XYZ

当您启动程序时,请确保在创建侦听器时不会出错。如果您尝试使用低于 1024 的端口号,则需要使用 root 权限启动该程序。