将监听端口重定向到 Pyro 名称服务器

将监听端口重定向到 Pyro 名称服务器

我正在尝试建立一个Pyro4远程机器上的名称服务器可供本地访问。我解决这个问题的方法是使用 ssh 端口转发。如果我​​尝试在远程正在监听的同一端口上设置 Pyro4 名称服务器,我会收到一条socket错误消息,告诉我socket.error: [Errno 98] Address already in use。我想我可以将远程连接重定向到名称服务器端口。

为了让您了解我正在尝试什么,请参阅以下命令。首先,我设置了从本地到远程的端口转发。

dean@local$> ssh -l dean -L 2223:localhost:2224 remote

远程正在监听端口2224。在远程,我有一个在端口 上运行的 Pyro4 名称服务器2225。然后,如果我尝试在远程设置本地端口转发,如下所示

dean@remote$> ssh -N -l dean -L 2224:localhost:2225 remote &

我收到以下错误:

bind: Address already in use
channel_setup_fwd_listener_tcpip: cannot listen to port: 2224
Could not request local forwarding.

我读过一些关于使用套接字重定向流量的内容,但这似乎是一个更复杂的解决方案。

答案1

它在我的系统上运行正常。有东西阻塞了您系统上的端口。以下是我所做的:

我的系统:A = Windows 7,主机名“neptune”B = OSX El Capitan,主机名“phobos”均使用最新的 Pyro(但这并不重要)

在 A: 上(我在这里使用 Windows 上的 git bash shell,但这没关系) - 建立到 phobos 的 ssh 隧道,隧道连接 phobos:2224 套接字 - 在该远程 shell 中,启动绑定在 phobos:2224 上的名称服务器,如下所示:

$ ssh -l irmen -L 2223:phobos:2224 phobos
Last login: Tue Feb 21 22:09:15 2017
phobos:~ irmen$ cd Projects/Pyro4/src
phobos:src irmen$ python3 -m Pyro4.naming -n phobos -p 2224
Broadcast server running on 0.0.0.0:9091
NS running on phobos:2224 (192.168.178.20)
Warning: HMAC key not set. Anyone can connect to this server!
URI = PYRO:Pyro.NameServer@phobos:2224

打开 ssh 端口隧道后,您也可以直接在远程主机上启动名称服务器,但我在这里是从我的 Windows 机器远程执行此操作。

无论如何,此后,事情按照 A 的预期进行:

$ hostname
Neptune
$ python -m Pyro4.nsc -n localhost -p 2223 list
--------START LIST
Pyro.NameServer --> PYRO:Pyro.NameServer@phobos:2224
    metadata: ['class:Pyro4.naming.NameServer']
--------END LIST

如您所见,这是通过 ssh 隧道在 Phobos 上运行的 NS 的名称服务器内容。

相关内容