Redirecionar porta de escuta para o servidor de nomes Pyro

0

Estou tentando configurar um servidor de nomes Pyro4 em uma máquina remota para ser acessado localmente. A maneira como estou lidando com esse problema é usando o encaminhamento de porta ssh. Se eu tentar configurar um servidor de nomes Pyro4 na mesma porta em que o controle remoto está escutando, recebo um erro socket me informando socket.error: [Errno 98] Address already in use . Eu pensei que eu poderia redirecionar as conexões no remoto para a porta do servidor de nomes.

Para ter uma ideia do que estou tentando, veja os seguintes comandos. Primeiro, configuro o encaminhamento de porta do local para o remoto.

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

O Remote está escutando na porta 2224 . No remoto eu tenho um servidor de nomes Pyro4 em execução na porta 2225 . Então, se eu tentar configurar o encaminhamento de porta local no remoto, como segue

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

Eu recebo o seguinte erro:

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

Eu li um pouco sobre o uso de sockets para redirecionar o tráfego, mas isso parece ser uma solução muito mais envolvida.

    
por Dean Shaff 06.02.2017 / 23:30

1 resposta

0

Funciona sem problemas no meu sistema. Algo está bloqueando a porta no seu sistema. Aqui está o que eu fiz:

Meus sistemas: A = windows 7, hostname 'neptune' B = OSX El Capitan, hostname 'phobos' Ambos usando o último Pyro (mas isso não deveria importar)

Em A: (estou usando o git bash shell no Windows aqui, mas isso não importa) - faça o túnel do ssh aos phobos, tunelando os phobos: soquete 2224 - nesse shell remoto, inicie um servidor de nomes ligado a fobos: 2224 Assim:

$ 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

Você pode iniciar o servidor de nomes no host remoto diretamente assim que abrir o túnel da porta ssh, mas eu estou fazendo isso aqui da minha máquina Windows remotamente.

De qualquer forma, depois disso, as coisas funcionam como esperado de 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

Como você pode ver, é o conteúdo do servidor de nomes do NS sendo executado no Phobos através do túnel ssh.

    
por 23.02.2017 / 01:11