1

Участвующие машины: (клиент)A - B - C (выход)
A/B - Cygwin SSH / SSD, C - Linux

Что я хочу:

  1. Http (s) и трафик носков A будут проходить через B, C.
    Назначением является любой IP, так что один -L не работает.

  2. Трафик A - B, B - C должен быть зашифрован. (Поэтому я пытаюсь использовать SSH)

Что я сделал настройку:

  1. Прокси-сервер (3proxy) работает на C: http (s) на 3998, socks5 на 3999.
    Я проверил прокси-сервер. работает как для 127.0.0.1, так и для внешнего IP.

  2. Команда ssh на A: (Я хочу переслать локальный: 3998 C: 3998, локальный: 3999 C: 3999)
    ssh -At -L 3998: B: 6998 пользователь B @ B ssh -At -L 6998: C: 3998 пользователь C @ C
    ssh -At -L 3999: B: 6999 userB @ B ssh -At -L 6999: C: 3999 userC @ C
    Я протестировал многопользовательский логин: работает.

  3. Используйте 127.0.0.1:3998 в качестве http (s) прокси. Используйте 127.0.0.1:3999 в качестве прокси-сервера.

Проблема:
Firefox не работает ни с http, ни с socks, жалуясь, что соединение сброшено.
(Cygwin) Wget не работает с http

Сообщение об ошибке типа «канал 8: открытие не удалось: подключение не удалось: соединение отказано» отображается на консоли ssh.

Подробности с -vvv:

on A:
   $ export http_proxy=http://127.0.0.1:3998; wget www.bing.com
   --2014-04-13 08:54:14--  http://www.bing.com/
   Connecting to 127.0.0.1:3998... connected.
   Proxy request sent, awaiting response... Read error (Connection reset by peer) in        headers.
   Retrying.

on C:
   root@C:~# debug1: Connection to port 3998 forwarding to B port 6998 requested.
   debug2: fd 9 setting TCP_NODELAY
   debug3: fd 9 is O_NONBLOCK
   debug3: fd 9 is O_NONBLOCK
   debug1: channel 3: new [direct-tcpip]
   channel 3: open failed: connect failed: Connection refused
   debug2: channel 3: zombie
   debug2: channel 3: garbage collecting
   debug1: channel 3: free: direct-tcpip: listening port 3998 for B port 6998, connect
    from 127.0.0.1 port 65460 to 127.0.0.1 port 3998, nchannels 4
   debug3: channel 3: status: The following connections are open:
     #2 client-session (t4 r0 i0/0 o0/0 fd 6/7 cc -1)

Я также пробовал переадресацию только на C:

(one tty) ssh -vvv -L 127.0.0.1:1234:127.0.0.1:3998 root@127.0.0.1
(another tty) export http_proxy=http://127.0.0.1:3998; wget www.bing.com

Это сработало, и я даже запутался, почему это не сработало в моей настройке.

================================================== ===============================
Если я использую эту команду, то она работает ?!

ssh -At -L 3998:127.0.0.1:6998 userB@B ssh -At -L 6998:127.0.0.1:3998 userC@C

Но это не работает

ssh -At -L 3998:ip_of_B:6998 userB@B ssh -At -L 6998:ip_of_C:3998 userC@C
ssh -At -L 3998:ip_of_B:6998 userB@B ssh -At -L 6998:127.0.0.1:3998 userC@C

Может ли кто-нибудь объяснить мне это?

Я понятия не имею, как openssh реализует -L, чтобы он вел себя так странно.

0