2017-10-10 243 views
0

服务器('10 .42.102.11 ')←----→设备(' 192.168.253.205' )的Telnet超过在python SSH隧道

|

SSH(22)

|

本地主机(我)

with SSHTunnelForwarder(
     ('10.42.102.11', 22), 
     ssh_username="serv_usr", 
     ssh_password="serv_pass", 
     remote_bind_address=('192.168.253.205', 2323), 
) as tunnel: 
    telnet = Telnet() 
    #telnet.open('127.0.0.1', 2323) 
    telnet.open('192.168.253.205', 2323) 
    telnet.close() 

的结果:

File "/usr/lib/python2.7/telnetlib.py", line 227, in open 
    self.sock = socket.create_connection((host, port), timeout) 
    File "/usr/lib/python2.7/socket.py", line 571, in create_connection 
    raise err 
socket.error: [Errno 110] Connection timed out 

我无法找到我在做什么这里拧(手动连接是否正常)

回答

2

当您转发端口通常连接到转发到远程服务器的本地地址起动转矩。在这里你试图连接到192.168.253.205,这是不可达(并且不能单独通过隧道)。我认为你丢失的部分是local_bind_address给你本地端口连接。

with SSHTunnelForwarder(
    ('10.42.102.11', 22), 
    ssh_username="serv_usr", 
    ssh_password="serv_pass", 
    remote_bind_address=('192.168.253.205', 2323), 
    local_bind_address=('0.0.0.0', 10022) 

这应该允许您连接到本地端口10022(或任何可用的选择端口)将被转发到2323在远程机器上:

telnet.open('127.0.0.1', 10022) 
+0

我已经改变了我的代码你的提示,并得到这样的错误: '2017-10-10 16:46:55,142 |错误|无法建立从('127.0.0.1',10022)到隧道远端的连接 错误:sshtunnel.SSHTunnelForwarder:无法建立从('127.0.0.1',10022)到隧道远端的连接' – User007

+0

我想这是对超时的改进。你应该确保所有的数字都是正确的 - 如果你打开服务器的SSH会话,你可以在端口2323上点击192.168.253.205? –

+0

我想你是对的。我实际上可以手动连接。 – User007