无法通过 pinggy tcp ssh 隧道连接到服务器

问题描述 投票:0回答:1

我正在尝试在不同网络中的客户端和服务器之间设置 TCP 通信。 由于我没有公共服务器并且不想设置端口转发,因此可以选择使用 TCP 隧道服务,例如 pinggy。

我通过 SSH 会话使用 pinggy 到他们的服务器。使用以下命令创建隧道:

ssh -p 443 -o StrictHostKeyChecking=no -o ServerAliveInterval=30 -R0:localhost:5000 [email protected]

我设置了一个简单的

server.py
,如下所示:

import socket

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(('127.0.0.1', 5000))

server.listen()
while True:
    conn, addr = server.accept()
    print(f"Connection attempt: {addr}")

和一个

client.py

import socket

client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(("...a.free.pinggy.link", 33143))

客户端的 IP 和端口由隧道服务提供,该服务设置为将任何内容从其服务器转发到我的本地主机:5000

我首先在计算机上运行

server.py
,然后运行
client.py
。 客户端完成时没有错误,但服务器上从未检测到连接尝试。

每次尝试连接到 pinggy 隧道时,界面都会正确显示这一点并增加总连接数,因此该部分似乎设置正确。服务器似乎没有转发/接收信号。

  • 将地址配置更改为完全在本地运行,无需通过 pinggy 进行隧道传输,因此代码本身似乎没有问题。

  • 我尝试过使用ngrok(与pinggy非常相似,但不是通过ssh),它工作得很好。

  • 我希望 pinggy 通过 ssh 运行不会成为问题,因为使用它将 TCP 连接转发到本地托管的 minecraft 服务器也可以。

  • 本来以为是防火墙问题,所以暂时关闭了,无济于事。 如果 pinggy 成功将流量转发到我的世界服务器,为什么它不能与运行 python 套接字的服务器一起工作?

tcp ssh-tunnel python-sockets
1个回答
0
投票

不清楚您是否在 Windows / Linux / Mac 中。但根据Pinggy FAQ,Windows ssh 客户端有时难以连接到“localhost”等域。所以建议在命令中使用IP地址。

ssh -p 443 -o StrictHostKeyChecking=no -o ServerAliveInterval=30 -R0:127.0.0.1:5000 [email protected]
© www.soinside.com 2019 - 2024. All rights reserved.