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

SSH-туннель не работает

Я пытаюсь использовать свой сервер в качестве «прокси» с ssh. Однако настройка туннелирования с

ssh -D localhost:8000 user@myserver

не работает.

Я тестировал это на разных машинах с ssh и putty - он подключается отлично, но когда я устанавливаю настройки своего браузера соответствующим образом, я просто получаю сообщение об ошибке «Соединение было сброшено». Я пробовал отслеживать трафик с помощью wirehark, но даже не увидел туннельного трафика. Я явно установил AllowTcpForwarding на «да», но я все еще не могу использовать туннель.

При запуске ssh в подробном режиме я не получаю никаких ошибок, но

debug1: Connection to port 8000 forwarding to socks port 0 requested.
debug1: channel 3: new [dynamic-tcpip]
debug1: channel 3: free: dynamic-tcpip, nchannels 4

Что я делаю не так?

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

У меня была такая же проблема с несколькими браузерами, и это оказалось проблемой конфигурации. В этом случае следующая команда должна работать и показывать IP-адрес удаленного компьютера:

links -socks-proxy localhost:8000 www.myipaddress.com

Первый комментарий к вопросу верен, поскольку браузер может попытаться использовать прокси-сервер HTTP вместо прокси-сервера SOCKS, и в этом случае я вижу точно такой же вывод из ssh как в сообщении OP. И хотя я установил прокси-сервер SOCKS, проблема заключалась в том, что я не отключил HTTP-прокси. Как только это было сделано, все заработало, как ожидалось.

Правильная команда:

ssh user@server -D 8000

Если вы по-прежнему не можете подключиться, проверьте, не использует ли этот порт другой процесс. Самый простой способ сделать это:

netstat --listen |grep 8000

В таком случае просто используйте другой порт.

У меня была такая же проблема, я решил добавить -g параметр к команде:

$ ssh -D 12324 localhost:8000 user@myserver -g

Также включение в sshd_config на ssh сервере:

PermitTunnel yes

И конечно:

service ssh restart