Участвующие машины: (клиент)A - B - C (выход)
A/B - Cygwin SSH / SSD, C - Linux
Что я хочу:
Http (s) и трафик носков A будут проходить через B, C.
Назначением является любой IP, так что один -L не работает.Трафик A - B, B - C должен быть зашифрован. (Поэтому я пытаюсь использовать SSH)
Что я сделал настройку:
Прокси-сервер (3proxy) работает на C: http (s) на 3998, socks5 на 3999.
Я проверил прокси-сервер. работает как для 127.0.0.1, так и для внешнего IP.Команда 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
Я протестировал многопользовательский логин: работает.Используйте 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, чтобы он вел себя так странно.