Назад | Перейти на главную страницу

SSH-туннель не работает должным образом

Я пытаюсь туннелировать через общедоступный IP-адрес на порт 80 частного сервера. Я точно знаю, что apache работает на порту 80, потому что, если я использую ssh в общедоступный IP-адрес, я могу получить доступ к частному серверу через lynx. Я использую следующую команду:

ssh <remote_public_id> -N -L 9080:<private_ip_of_other_server>:80

Затем доступ http: // локальный: 9080 говорит, что невозможно подключиться. Я делаю это из OSX. Запустив ssh -version, я получаю следующее, если это важно:

OpenSSH_5.2p1, OpenSSL 0.9.8l 5 Nov 2009

По просьбе Эрнеста вот небольшая отладка. Это после того, как я ввожу свой пароль. Удален IP-адрес в целях безопасности.

debug3: packet_send2: adding 48 (len 63 padlen 17 extra_pad 64)
debug2: we sent a password packet, wait for reply
debug1: Authentication succeeded (password).
debug1: Local connections to LOCALHOST:9080 forwarded to remote address <private_ip>:80
debug3: channel_setup_fwd_listener: type 2 wildcard 0 addr NULL
debug1: Local forwarding listening on ::1 port 9080.
debug2: fd 4 setting O_NONBLOCK
debug3: fd 4 is O_NONBLOCK
debug1: channel 0: new [port listener]
debug1: Local forwarding listening on 127.0.0.1 port 9080.
debug2: fd 5 setting O_NONBLOCK
debug3: fd 5 is O_NONBLOCK
debug1: channel 1: new [port listener]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.

А потом эта отладка, когда я делаю запрос:

debug1: channel 3: free: direct-tcpip: listening port 9080 for zmanda port 80, connect from ::1 port 64917, nchannels 5
debug3: channel 3: status: The following connections are open:
  #2 direct-tcpip: listening port 9080 for zmanda port 80, connect from ::1 port 64912 (t4 r0 i0/0 o0/0 fd 6/6 cfd -1)
  #3 direct-tcpip: listening port 9080 for zmanda port 80, connect from ::1 port 64917 (t4 r1 i3/0 o3/0 fd 7/7 cfd -1)
  #4 direct-tcpip: listening port 9080 for zmanda port 80, connect from ::1 port 64918 (t3 r-1 i0/0 o0/0 fd 8/8 cfd -1)

debug3: channel 3: close_fds r 7 w 7 e -1 c -1
debug2: channel 4: open confirm rwindow 2097152 rmax 32768
debug2: channel 4: rcvd eof
debug2: channel 4: output open -> drain
debug2: channel 4: obuf empty
debug2: channel 4: close_write
debug2: channel 4: output drain -> closed
debug2: channel 4: read<=0 rfd 8 len 0
debug2: channel 4: read failed
debug2: channel 4: close_read
debug2: channel 4: input open -> drain
debug2: channel 4: ibuf empty
debug2: channel 4: send eof
debug2: channel 4: input drain -> closed
debug2: channel 4: send close
debug3: channel 4: will not send data after close
debug2: channel 4: rcvd close
debug3: channel 4: will not send data after close
debug2: channel 4: is dead
debug2: channel 4: garbage collecting
debug1: channel 4: free: direct-tcpip: listening port 9080 for zmanda port 80, connect from ::1 port 64918, nchannels 4
debug3: channel 4: status: The following connections are open:
  #2 direct-tcpip: listening port 9080 for zmanda port 80, connect from ::1 port 64912 (t4 r0 i0/0 o0/0 fd 6/6 cfd -1)
  #4 direct-tcpip: listening port 9080 for zmanda port 80, connect from ::1 port 64918 (t4 r1 i3/0 o3/0 fd 8/8 cfd -1)

debug3: channel 4: close_fds r 8 w 8 e -1 c -1

Итак, проблема заключалась в нескольких вещах.

  1. Веб-приложение работает через SSL, поэтому мне пришлось использовать порт 443 вместо 80.
  2. По какой-то причине вы не можете перенаправить 443 на другой локальный порт. Так что мне пришлось переслать на 443.

Последняя команда выглядела так:

sudo ssh gdboling@<public_ip> -N -L 443:<private_host>:443