2017-10-10 227 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