Я получаю доступ к удаленной базе данных, используя переадресацию портов локального и удаленного из окна Windows. Он работает как шарм, используя шпатлевку для перенаправления портов, но он не работает, когда я пытаюсь переправить с помощью Ruby/Net :: SSH. Вот мой фрагмент кода:Переадресация портов с помощью Ruby/Net :: SSH для удаленного соединения с db
require 'rubygems'
require 'net/ssh'
Net::SSH.start(remote_host, user_name, :password => password) do |ssh|
ssh.logger.sev_threshold=Logger::Severity::DEBUG
ssh.forward.local(5555, 'www.google.com', 80) # works perfectly
ssh.forward.local(4444, remote_host, 1234) # db connection hangs up
ssh.loop { true }
end
Порт на google.com отлично работает при тестировании с помощью браузера. Порт, перенаправленный на мой Linux-сервер, где мой сервер db прослушивает порт 1234, не работает. Когда я пытаюсь подключиться к localhasot: 4444 соединение зависает. Журналы:
DEBUG -- net.ssh.service.forward[24be0d4]: received connection on 127.0.0.1:4444
DEBUG -- tcpsocket[253ba08]: queueing packet nr 6 type 90 len 76
DEBUG -- tcpsocket[24bde64]: read 8 bytes
DEBUG -- tcpsocket[253ba08]: sent 100 bytes
DEBUG -- net.ssh.connection.channel[24bdcc0]: read 8 bytes from client, sending over local forwarded connection
А потом ничего!
Я использую нетто-SSH 2.0.22/рубиновый 1.8.7
Попробуйте прокомментировать google вперед и просто сделайте один вперед. Это помогает? – barrycarter
К сожалению, это не сработает. – nakhli