Я пытаюсь использовать свой сервер в качестве «прокси» с 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