【问题标题】:Connecting to myself through my public IP through TCP通过 TCP 通过我的公共 IP 连接到我自己
【发布时间】:2013-06-07 06:16:54
【问题描述】:

我正在尝试使用我的公共 IP 连接到我自己的机器。如果我使用127.0.0.1连接成功,但是使用公网IP会出现以下错误:"ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it"

根据 MSDN,错误可能是因为没有服务器应用程序正在运行;但是,在运行“client.py”之前,我确实先运行了“server.py”脚本。我应该怎么做才能解决这个问题?

server.py

from socket import *
sock = socket(AF_INET, SOCK_STREAM)
sock.bind(('127.0.0.1', 8888))
sock.listen(10)
conn, _ = sock.accept()

client.py

from socket import *
sock = socket(AF_INET, SOCK_STREAM)
sock.connect((MY_PUBLIC_IP, 8888))

【问题讨论】:

  • 在 server.py 中:您必须将套接字绑定到您的公共 IP - 或者这是一个错字?
  • 默认情况下 mysql 新安装只允许从 localhost 连接。检查这是否是您的问题并更改配置以允许远程连接。
  • @djf 尝试这样做会给出“OSError: [WinError 10049] The requested address is not valid in its context”。
  • [WinError 10049] 是一个完全不同的错误。它表示MY_PUBLIC_IP 不是该机器上的 IP。确保它是正确的。您的问题可能与以下内容重复:stackoverflow.com/questions/4657347/…

标签: python sockets tcp


【解决方案1】:

服务器只监听环回地址。 试试这个:

sock.bind(('0.0.0.0', 8888))

【讨论】:

    【解决方案2】:

    如果你有的话,它很可能是你的防火墙或路由器。尝试将防火墙配置为允许访问该端口,如果您使用的是路由器,请尝试进行端口转发。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-25
      • 2016-03-10
      • 1970-01-01
      • 1970-01-01
      • 2012-02-03
      • 2014-05-23
      • 2016-01-11
      • 1970-01-01
      相关资源
      最近更新 更多