Skip to content


PuTTY: делаем Windows полезным

В данной статье будет описано как строить SSH-туннели с помощью PuTTY.

1. Локальный проброс порта

Рассмотрим следующую ситуацию. Мы находимся внутри корпоративной сети, у нашего компьютера адрес 192.168.0.2, доступ во внешний мир полностью закрыт (то есть никакого NAT-а, proxy и т.п.). Влиять на политику ограничения доступа у нас возможности нет, но зато есть SSH-доступ на один из серверов с маршрутизируемым IP-адресом, который доступен из Интернет. Внутренний адрес этого сервера, пусть будет для примера 192.168.0.3. Структура сети изображена на рисунке:

Схема сети
Предположим, что нам очень нужно подключиться, к примеру, по SSH на некоторый удалённый сервер с IP-адресом 212.212.212.212 где-то далеко в Интернет. Для этого запускаем PuTTY, создаём SSH-подключение к серверу 192.168.0.3 (далее по тексту SSH-сессия 1), идем в пункт Tunnels:
Local port forwarding
и указываем, что локальный порт 2222 нашего компьютера должен быть поставлен в соответствие порту 22 на сервере с IP-адресом 212.212.212.212. Далее жмем кнопку "Open", авторизуемся на сервере 192.168.0.3. Затем создаём ещё одно подключение (далее по тексту SSH-сессия 2), но уже на localhost, порт 2222 и жмём кнопку "Open":Окно создания нового подключения


В результате SSH-сессия 2 будет туннелироваться (т.е. будет установлена внутри ранее установленной SSH-сессии 1). Для удалённого сервера 212.212.212.212 всё будет выглядеть так, как будто к нему подключается 111.111.111.111:
Схема подключения через SSH-туннель

2. Удалённый проброс порта

В этом случае подключение внутри SSH-туннеля устанавливается в другую сторону – от удаленного сервера на наш локальный компьютер. Может быть полезно, если требуется открыть доступ к локальным сервисам нашего компьютера. Рассмотрим ту же сеть, что и в пункте 1, но для простоты предположим, что теперь у нас есть NAT:
Локальная сеть с NAT, remote port forwarding
Здесь уже у нас есть возможность подключаться через SSH напрямую к 212.212.212.212 благодаря наличию NAT-а. А вот 212.212.212.212 подключиться на 192.168.0.2 без специальных ухищрений, понятное дело, не сможет, т.к. 192.168.0.2 не подключен к Интернет непосредственно. Предположим, что пользователю, сидящему под X-ами на 212.212.212.212 нужно через remote desktop попасть на наш компьютер 192.168.0.2. Для этого в SSH-сеансе подключения с 192.168.0.2 на 212.212.212.212 нужно изменить настройки в разделе Tunnels следующим образом:
Remote ssh port forwarding setup
В результате после успешной авторизации на 212.212.212.212 можно увидеть следующее:

#lsof -i -nP | grep 3333
sshd  18598   avz   11u  IPv4 592868957   TCP 127.0.0.1:3333 (LISTEN)

То есть sshd ожидает подключений на TCP-порт 3333, которые затем по SSH-туннелю будут перенаправлены на 192.168.0.2 порт 3389. И юзер сидящий за 212.212.212.212 сможет с помощью rdesktop увидеть наш рабочий стол:

Remote port forwarding via putty

3. Socks-proxy

В этом случае мы можем использовать сервер с SSH-демоном как промежуточный (proxy). Схема сети как в случае #1 (без NAT и штатных прокси):
Схема сети
Чтобы заставить PuTTY испольнять роль socks-прокси, нужно параметры SSH-сессии с 192.168.0.2 на 192.168.0.3 изменить следующим образом:
DynamicВ результате после успешной авторизации со стороны клиента можно будет наблюдать следующее:

C:\>netstat -ano | find "1080"
  TCP    127.0.0.1:1080     0.0.0.0:0      LISTENING       2392
C:\>tasklist | find /i "2392"
putty.exe                2392 Console        0             5420 КБ

То есть putty, выполняющийся с PID-ом 2392, начинает слушать порт 1080, ожидая подключений. Далее берем любое приложение, умеющее работать с SOCKS-прокси, например Firefox, и указываем ему использовать наш прокси:
Firefox proxy configuration dialogТеперь все запросы от броузера будут проходить через сервер 192.168.0.3. В логах веб-сайтов, по которым мы таким образом будем ходить, будет отображаться внешний IP-адрес нашего сервера - 111.111.111.111.

P.S. Из help-файла Putty 0.58:
Question A.10.3: What does ‘PuTTY’ mean?
It's the name of a popular SSH and Telnet client. Any other meaning is in the eye of the beholder. It's been rumoured that ‘PuTTY’ is the antonym of ‘getty’, or that it's the stuff that makes your Windows useful...
:)


P.P.S. Другой способ туннелирования трафика описан в заметке Разворачивание трафика на основе policy routing. Весьма рекомендую к прочтению.

Posted in *nix, Windows.

Tagged with , , , .


55 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. Кирилл says

    Добрый день.
    Я убедительно прошу Вас ознакомиться с моей перепиской с техподдержкой онлайн-Flash-игры Танки Онлайн, из которой будет ясна моя проблема.
    Мне кажется, что Вы сможете мне помочь советом, и я готов оплатить Ваши услуги или отблагодарить каким-нибудь способом.

    С уважением,
    Кирилл

    Вот наша переписка:

    Вопрос в поддержку:

    Дррузья, пропадаю без Танков. Вы можете спасти мою страдающую душу и тело. ))
    Сначала у нас в организации (оставим этичность игр на работе за скобками) перекрыли определенные порты (в нашем случае необходимые для Танков 5190, 5222 и 5223. Я расстроился, но потом установил на комп программу Tor, а на Firefox - плагин Torbutton. Причем версию Firefox пришлось ставить старую, ибо новые Torbutton не поддерживают. (( (примечание - если просто запускать Firefox при включенном Tor, то в браузере перестает работать Flash). Вот так заморочился, но все худо-бедно работало, пусть и медленнее из-за работы через Tor. Теперь еще одна напасть - сервер отказывает в соединении (см. приложенный скриншот). Это продолжается уже несколько дней, и я перепробовал уже кучу всего - очистку кэша браузера, очистку Flash-плеера, установку плагина Noscript, попытался запустить игру через Stadalone FlashPlayer, перегружал комп, пинговал соединение с сервером Танков (потери пакетов нет) и т.д. Короче - уже ничего не понимаю, и слезы горя катятся из моих глаз.
    Помогите, братцы!

    Вот ответ Вашего сотрудника, после которого модератор темы решил, что вопрос себя исчерпал:

    Ответ сотрудника на форуме:
    На скриншоте – именно признак недоступных игровых портов.
    Лучшие выходы в вашей ситуации – альтернативный выход в интернет либо подход с ящиком пива к сисадмину (во втором случае возможны варианты, но принцип вы, надеюсь, поняли).

    Вот мой ответ сотруднику:

    По техническим причинам альтернативный выход в интернет мне не удастся организовать, то есть нужно попробовать использовать тот, что есть. )) И поход к админам с пивом тоже не сработает, так как все IT-политики у нас в конторе определяет центральный офис в Париже, через который и идет весь трафик. Они и зарубили нужные для игры порты.
    Я попробовал даже соединиться с игрой через мой домашний компьютер с помощью программы Teamviewer, и зашел в игру легко, но задержки дикие, и играть невозможно. Соответсвенно кровь из носу нужно понять, на каком этапе происходит сбой.
    Напомню, что я СОЕДИНЯЛСЯ с игровым сервером с браузером Firefox со встроенным Tor-клиентом. Только лишь неделю назад начались вот эта глюки.

  2. Андрей Кручинин says

    2Кирилл

    Уж извиняюсь что влезаю раньше автора статьи. Сразу оговорюсь - вопрос решается если порт 22 НЕ закрыт админами. Если закрыт - увы и ах... Тут никак.

    По мне так вопрос просто решается.
    1. Арендуете сервер VPS. Из предустановленного ПО ничего не надо
    2. Произвести оплату как хотите. Вам выдадут пароль root-а.
    3. Создаете коннект в putty с именем root и логином который вам дали.
    4. Порты перебрасываются как в пункте 3 по нужным вам портам. Но с указанием купленного сервера.

    Да. Самое главное!!! Не забывайте оплачивать жалкие n Евро в месяц :-) Если так хочется играть - то почему бы и нет? Не великие деньги.

    P.S. Для прикола счас подключился к локальной базе данных через сервер свой же... Все работает. Естественно с небольшими тормозами, но это и понятно. А так бесплатная схема типа TeamViewer-а получается. Сейчас буду по работе запускать на VNC аналог TeamViewer-а. И полноценная тех. поддержка будет и бесплатно!

    /* реклама вырезана */

  3. omni says

    Здравствуйте, подскажите как разрулить следующую ситуацию:
    есть сервер (sshd с доступом только по ключу), есть клиент с доступом на этот сервер. Проблема в следующем: на клиенте есть приложение, которое работает через ссх, но не поддерживает ключи. Так вот, как с помощью путти расшарить сессию на локальный порт? Знаю что провернуть такое можно, т.к. когда-то (очень давно) уже делал подобное, но не через пути, а через что не помню и по-моему использовал для связки TAP интерфейс.
    Если знаете более простой вариант, пожалуйста подскажите.

    • Admin says

      Приложение, которое работает через ссх, но не поддерживает ключи - это что-то очень странное. Как оно называется?

  4. omni says

    название ничего не даст, это программа для внутреннего пользования (типо биллингового интерфейса), писалась очень давно (когда фряха была где-то версии 4,5) и если уж добавлять поддержку ключей, то лучше сразу переписать весь код, кроме модулей, а это как минимум - лень, как максимум - некогда(

    • Admin says

      А рутовых прав у Вас на сервере случайно нет? Если вдруг есть (или можете попросить кого-то, у кого есть), то достаточно просто поменять значение параметра "PasswordAuthentication" в конфиг-файле SSH-сервера (обычно это /etc/ssh/sshd_config в случае OpenSSH). В противном случае используйте следующий подход.
      1. Запустите на сервере ещё один SSH-сервер под своим пользователем на непривилегированном порту (выше 1024), например на порту 2222 (надо найти порт, не закрытый firewall-ом), не забыв разрешить в конфиге авторизацию по паролю.
      2. Подключитесь с помощью putty к своему самосборному SSH-серверу на порт 2222, с такой конфигурацией в разделе tunnels: "L22 127.0.0.1:2222" (в первой части статьи вроде описано как "расшарить сессию на локальный порт", если я правильно понял что Вам требуется).

      Тогда Вашему приложению нужно будет подключаться на 127.0.0.1 порт 22 и авторизоваться по паролю (авторизация будет идти с помощью Вашего самосборного SSH-сервера). Если приложение умеет подключаться на любой порт (а не только на стандартный 22), то пункт 2 можно пропустить и сразу заставить приложение подключаться к серверу на порт 2222.

  5. omni says

    К сожалению не совсем подходошло, по той причине что схх какие-то злые "пидарги" брутфорсят, поэтому оставлять «PasswordAuthentication» даже на нестандартном порту не безопасно. Тем не менее можно попробовать ограничить 2222 только для локального доступа. Спасибо за совет.

  6. Admin says

    Нестандартные порты обычно не брутфорсят (разве что кто-то целенаправленно пытается расхачить именно Вашу систему). В моей практике перенос SSH на нестандартный порт минимум на 5-ти разных серверах полностью решил проблему подбора паролей. К тому же, если пароль достаточно сложный и представляет собой случайный набор символов, то даже на стандартном порту насчёт брутфорса можно не беспокоится.

  7. Олег says

    очень понравилась статейка !!!

  8. Олег says

    Вопрос: Имеется домашняя сеть из 2-х компьютеров. На одном установлен Tor, через который все ходит в интернет. Как сделать, чтобы приложение, не имееющее Socks и находящееся на другом комьютере могло выходить в инет через Tor (:9050)?

    • Admin says

      1. Редактируем torrc на компе с tor-ом, добавляя в него строку "SocksListenAddress 192.168.0.102" (192.168.0.102 - для примера, заменить на настоящий IP-адрес компа в локальной сети). Это нужно потому, что по умолчанию polipo (компонент tor-а, исполняющий роль socks-прокси) ожидает подключений только на loopback-интерфейсе с адресом 127.0.0.1.
      2. На компе с tor-ом проверяем, что firewall разрешает подключения с "другого" компьютера на TCP-порт 9050.
      3. Берём прогу типа SocksCap, которая трафик любого приложения умеет пропускать через socks-прокси, настраиваем её на использование socks-прокси 192.168.0.102:9050.

  9. Дмитрий says

    Спасибо автору! Статья очень помогла!

  10. Vladimir says

    Отличный материал, спасибо автору.
    Помогите новичку.
    Есть локальная сеть с 2-мя серверами под Debian.
    1-й сервер имеет выделенный IP и отвечает за раздачу Интернет .
    2-й сервер является файловым сервером.
    Необходимо организовать удаленное администрирование серверами под Windows при помощи Putty.
    Если с 1-м сервером более менее понятно, то со 2-м нет ясности. Новичок в удаленном администрировании и с Debian. Периодически отключается принтер под Debian на 2-м сервере и приходится терять время на подключении принтера через gnom по месту.
    Спасибо заранее.

  11. Евгений says

    Спаисбо за статью. Хотелось бы уточнить кое что для себя.
    Есть PC1 с запущеным на нём приложением( Steam ) находяшимся в Украине и соответственно украинским IP (x.x.x.x), есть PC2 с ssh находящийся в России (y.y.y.y). Клиент Стим использует диапазон портов 27000-27015.
    Каким образом надо настроить PUTTY tunnel на РС1, что бы стим "думал" что он подключен через РС2. И второе : что делать если надо пробросить бОльшее количество портов черерз PUTTY, последняя версия понимает только 35 портов.

  12. Admin says

    Vladimir, насколько я понял, Вам нужно попадать на сервер 2 удалённо с помощью Putty, учитывая, что сервер 2 напрямую из Интернет недоступен. Да ещё и так, чтобы иметь доступ к графической оболочке. Если я всё правильно понял, то Вам должна помочь вот эта заметка: http://avz.org.ua/wp/2012/07/18/x-session-connecting-from-windows-via-x11vnc/ в комбинации с вариантом туннеля "Локальный проброс порта", описанном в этой статье.

  13. Admin says

    Евгений, по 1-му вопросу: putty настроить как описано в 1-ой части статьи, повторив сие действо 16 раз (для портов 27000, 27001 и т.д. до 27015).
    По второму вопросу: использовать putty как socks-прокси (описано в 3-ей части статьи), если этот steam умеет работать через socks proxy. А если не умеет, то есть возможность его "научить", с помощью дополнительного софта типа FreeCap/SocksCap.

  14. Денис says

    Доброго дня.
    Скажите пожалуйста возможно ли с помощью Putty решить такую проблему.
    Есть win HTTP-прокси сервер (192.168.1.1:8080) с установленным Traffic Inspector.
    Хочется забирать почту с pop.mail.ru/.yandex.ru из локальной сети (192.168.1.40) консольной утилитой "getmail", которая не умеет работать через прокси. Поговаривют, что есть программа FreeCap, но она GUI-вая, а хочется из консоли.

    Заранее благодарю за ответ.

    • Admin says

      Нет, putty тут ничем не поможет. Тут самое простое решение, на мой взгляд, сделать проброс портов на Вашем win-сервере. Не знаю, умеет ли это Traffic Inspector, но вот софтины типа WinRoute точно умеют. Тогда getmail будет подключаться на 192.168.1.1:110, а на самом деле попадать на pop.mail.ru:110. Если бы на 192.168.1.1 был SSH-сервер, тогда можно было бы и обойтись только putty. Кстати, под винду вроде есть SSH-серверы, но бесплатных и работоспособных мне найти не удалось (правда, задавался я этим вопросом несколько лет назад, с тех пор должно было уже что-то появится).

  15. Денис says

    Раньше проброс портов стоял, но потом админ устал и отказался от этого дела. Задал этот вопрос параллельно на форуме и разговор зашел о Thunderbird, который у нас на работе отлично работает через прокси, Но форумчанин один, написал "птичка и любые почтовики никогда не умели и не могут уметь работать через прокси, без наличия в прокси метода коннект" Что за метод КОННЕКТ такой я не знаю. Может у меня не HTTP-прокси, надо узнать. Попробую поговорить с админом.
    Спасибо.

    • Admin says

      Повеселило Ваше "админ устал" :)) Он, что пакетики вручную мешками через прокси таскал? Да, Thunderbird отлично работает через прокси. Метод CONNECT поддерживается почти всеми современными проксями, если его админ специально не отключил. А поговорить с админом - это да, хорошая идея. Так как админ должен знать побольше нас с Вами вместе взятых о конфигурации софта в вашем офисе.

  16. Денис says

    Устал он от того, что юзверей много, постоянно пробрасывать порты для множества почтовых серверов надо, а так же часто отвечать на звонки, "как настроить почту?".
    Может вы попросту посоветуете другую программу, которая бы могла забирать почту и могла бы встраиваться в WSH-скрипты?
    Обязательно условие - независимость от реестра, и легковестность.
    А я то дурак увидел в голове нечто: Putty создает туннель напрямую на pop.mail.ru через прокси, а getmail настраивается уже на 127.0.0.1:port. А вы не в курсе, может поможет ncat?
    Неужели не существует аналога FreeCap в консольном обличие, вот в линуксе есть, а в винде нету? Тоска.

    • Admin says

      Что ж ему то мешало один раз для всех серверов пробросить? И вывесить инструкцию на внутреннем корпоративном сайте по настройке почты. А чтобы работала схема "Putty создает туннель напрямую на pop.mail.ru через прокси, а getmail настраивается уже на 127.0.0.1:port", Вам потребуется SSH-сервер. Если такого в наличии не имеется, могу предоставить один из своих (на каких-то взаимовыгодных условиях). Про другие проги не скажу, но хотел бы заметить, что очень многий софт под линукс можно скомпилить и под винду. Так что попробуйте поискать что-то линуксячее, а потом если найдётся что-то подходящее, то пробовать собирать под винду.

      Ncat я не юзал, но судя по описанию, может весьма пригодится в Вашей ситуации:
      "Among Ncat’s vast number of features there is the ability to chain Ncats together, redirect both TCP and UDP ports to other sites, SSL support, and proxy connections via SOCKS4 or HTTP (CONNECT method) proxies (with optional proxy authentication as well). Some general principles apply to most applications and thus give you the capability of instantly adding networking support to software that would normally never support it."

  17. Альберт says

    Доброго дня.
    Есть свой SSH сервер. Подключаюсь удаленно из любой сети. На андроид машине под рутом настроил с полпинка - socks прокси, доступ к удаленным машинам за сервером даже к портам 0-1024, например самба. На машине с win7(+putty) все хорошо кроме 0-1024. Пытался добавить Loopback adapter с другим ip, результат 0. Очень надо самбу. Спасибо.

  18. Альберт says

    Все получлось. Вопрос снят. После пляски с бубном, netstar, netsh, сервисом самбы, лупбэками и проксированием из шела. Результат того стоил: доступ к удаленным машинам за натом и фаерлам сервера по всем портам, включая 0-1024 из другой машины с Win7. Задача была, скажем не тривиальная, но результат того стоит. SSH рулит.

  19. Admin says

    А можно подробнее? Как получилось побороть проблему? Я так понимаю, дело было в специфических настройках безопасности в Windows 7?

  20. Денис says

    Доброго дня всем. Писал выше про свою "проблему".
    Так вот собственно нашелся способ из палочек и соплей:
    Беру утилиты: ncat, которая входит в комплект nmap и утилиту проверки почты getmail

    В одной консоли запускаю:
    ncat -l 127.0.0.1 8800 -c "ncat 217.69.139.74 110 --proxy 192.168.1.1:8080" -v
    ncat слушает на локальной машине 8800 порт, после подключения к которому запускается 2 копия ncat прокладывающая туннель на pop.mail.ru (217.69.139.74) через прокси 192.168.1.1:8080

    Во второй консоли (простейший пример):
    getmail -u LOGIN -pw PASS -s 127.0.0.1 -port 8800 -nodelete -xtract -plain
    Почта распаковывается вместе с вложениями, далее все придется разбирать ручками/скриптами. После коннекта, ncat отрубается.

    Уважаемый админ, если будут какие либо мысли, был бы рад услышать. Сам не силен в сетях.
    Спасибо.

  21. Admin says

    Денис, вполне пристойное решение, мне тут добавить нечего. Что касается разбора писем и выкусывания вложений, то я в своё время использовал набор самопальных скриптов на основе uudeview, catdoc, iconv.

  22. Альберт says

    to Admin
    В вин7 есть новшества с сервисами по низким портам. 139 вроде как рудимент был в хр, в 7ке вроде умер. Я про самбу :-)
    Коротко делал так:
    Через netstat посмотрел свободен ли 445. Увидел что нет, ну понято - nitbios работает из коробки. Вот она родная самба на автомате, по моему, даже в висте такого нет. Ну да ладно, перевел её чтоб была по требованию, чтоб отпускала порт локал хоста. Добавил несколько лупбэков - каждый для своего ресурса самбы. В лупбэках потавил екзотичные йп из домашних сетей, но не сети сервера и не своей ! Жестко зажал маской (255), выключил netbios, и убрал все лишнее, кроме ipv4 :-) . Дальше проксировал через netsh каждый лупбэк чтоб слушал 445 и принимал по высокому порту. На каждый лупбэк - свой высокий! Ну а дальше путти (только китти лучше) проброс с высокого на лупбэке на машину за сервером по 445. Просто шарм какой-то, все заработало ! Да, ребутится не забываем, это-ж не линокс.

  23. sharhan says

    #lsof -i -nP | grep 3333

    sshd 18598 avz 11u IPv4 592868957 TCP 127.0.0.1:3333 (LISTEN)

    странно, у меня после успешного подключения не появилось, может что не так в файле настроек sshd_conf?

  24. sharhan says

    Необходимо было добавить в файл настроек sshd_conf "AllowTcpForwarding yes" ну /etc/init.d/ssh restart сделать.
    Спасибо за статью

  25. Underwerse says

    Ребят, в чем мб проблема - на этапе второго подключения (localhost на 2222) путти выдает ошибку - connection refused. На 22 коннектится, но результата ессно нет.
    ЗЫ: я не этих дел мастер, но позарез нужен туннель...

  26. Admin says

    Underwerse, если хотите какого-то адекватного совета, опишите максимально подробно вашу ситуацию.

  27. Underwerse says

    Делаю по п.1 в топе статьи. Цель в следующем:
    Есть устройство, к которому нужен доступ с моего удаленного удаленного компа (мультиплексор, сокращенно мукс - IP 10.174.45.x/28). Этот мукс имеет роутинг до сервера управления (IP 172.16.128.x) через роутер (IP 10.174.45.y), соотв-но с сервера пингуется и роутер, и мукс (т.е. вся подсеть 10.174.45.0). Я с компа посредством Cisco VPN Client подключаюсь к серверу управления, и пингую его с компа (комп получает от VPN сервера IP вида 172.16.150.x). Мне нужно как-то сделать, чтобы я с компа пинговал напрямую мукс, т.е. полагаю, нужен как раз туннель через сервер управления.
    Как такое сделать? По способу, описанному в самом начале статьи, не получается (см. предыдущее сообщение).
    Спасибо заранее, если кто-то знает

  28. Admin says

    По-моему, тут вам даже putty не нужен. Нужно просто правильно настроить маршрутизацию. Покажите, пожалуйста,
    следующее:
    1) вывод команд "ipconfig /all", "route print" до и после подключения по vpn на сервер управления (набирать их в консоли "удаленного компа");
    2) вывод команд "ipconfig /all", "route print" на сервере управления;
    3) скриншот раздела "tunnels" в putty

    И вот еще что меня немного смущает в постановке задачи: "мне нужно как-то сделать, чтобы я с компа пинговал напрямую мукс". На самом деле, вам, наверное, не пинг мукса нужен, а возможность подключения к муксу на какой-то TCP-порт. Если я угадал, то напишите на какой именно порт. А вот если ТОЛЬКО пинг, то, боюсь, putty тут не поможет особо.

  29. Lexx says

    Сделал как в статье по второму варианту, но как сделать так, чтобы было 212.212.212.212:3333 а не 127.0.0.1:3333

    то есть хочу, чтобы с телефона, набрал 212.212.212.212:3333 через программу RDP и был доступ.

    Спасибо за статью

  30. Admin says

    Lexx, попробуйте установить галочку "Remote ports do the same (SSH-2 only)". Правда, в HELP-е от Putty есть такое: "Note that this feature is only available in the SSH-2 protocol, and not all SSH-2 servers support it (OpenSSH 3.0 does not, for example)". Так что от сервера зависит, получится или нет. А даже если и не получится, то сможете добиться желаемого, скомбинировав способ 1 со способом 2.

  31. Денис says

    Здравствуйте. Возможно ли понизить пинг до московского сервера с помощью настройки SSH? Живу на Дальнем Востоке. Сделал трассировку до сервера который меня интересует (онлайн игра Warface) в итоге на седьмом прыжке пинг резко подрыгивает, вот результат - 6 8 ms 8 ms 8 ms 80.73.85.241
    7 130 ms 131 ms 130 ms 95.167.92.38 Так же сделал трассировку до yandex и в обоих случаях на седьмом прыжке почему-то пинг подскакивает. Можно ли пинг понизить? Например сделать ssh-тунели в обход седьмого прыжка? Можете написать мне в почту.

  32. ПК says

    Денис, почитайте комментарий выше от denn, датированный 27.09.2010, и ответ на него - там довольно полно раскрывается Ваша проблема.

  33. Алексей says

    Не получается что-то запустить туннелирование из-под win8.
    Коннектится, подключается, все как обычно (под вин7 много опыта положительного). А туннелирование не идет :( до сервера запрос не доходит, умирает на обращении к 127.0.0.1:3050 (firebird)
    Может, есть мысли? Или путти в вин8 теряет функционал?

  34. schmel says

    Есть сервер с несколькими внешними IP адресами

    auto eth0 eth0:1 eth0:2 eth0:3
    iface eth0 inet static
    address 85.85.32.19
    netmask 255.255.255.248
    gateway 85.85.32.18

    iface eth0:1 inet static
    address 85.85.32.20
    netmask 255.255.255.248
    gateway 85.85.32.18

    iface eth0:3 inet static
    address 85.85.32.21
    netmask 255.255.255.248
    gateway 85.85.32.18

    Putty успешно подключается по всем 3м ip. Но, вот на какой бы IP я не подключился socks proxy использует только первый ip eth0 интерфейса. Как можно сделать так, чтобы при подключении на конкретный ip, socks proxy использовала бы его, а не первый на интерфейсе?

  35. Admin says

    schmel, по-моему, средствами одного только putty никак. Чтобы достичь желаемого, Вам, скорей всего, придётся поиграться c NAT-ом на сервере с адресами 85.85.32.*. Если там linux, то через iptables можно такое замутить 100%.

  36. xBSD says

    Putty создает туннель как Socks5, а можно как-то сделать HTTP/HTTPS, Socks4 ?
    Одна прога не работает с Socks5, только Socks4.
    Попробовал cоксофицировать прогу через Proxifier - не помогло - частично работает - потом говорит нет подключения. Разработчик отказывается Socks5 делать.

  37. M&Ms says

    Нахожусь в штатах , пинг до сервера в питере 150 , хочу зделать туннель чтоб пинг улучшить , помогите , я нуб нубом ...

  38. Павел says

    Дабы ничего не настраивать ручками достаточно скачать программу SSH Manager и пользоваться.

  39. Иван says

    Как правильно сделать прокси с помощью PuTTy?

    Имеется VPS Windows 2008 (допустим IP: 1.1.1.1) на котором запускаем PuTTy.
    Так же имеется хостинг с SSH, IP которого (допустим: 2.2.2.2) будем использовать как основной прокси.

    Необходимо с любого ПК иметь возможность использовать этот прокси. То есть на домашнем ПК прописываем в браузере 1.1.1.1, а на самом деле наш ip отображается как 2.2.2.2

  40. Admin says

    Иван, такой use case описан в статье.

    1) На 1.1.1.1 запускаем putty, подключаемся к 2.2.2.2 по рецепту номер 3 (socks proxy), не забыв про галочку "Local ports accept connections from other hosts".

    2) на 1.1.1.1 в firewall-е разрешаем подключения на выбранный в пункте 1) порт

    3) на любом ПК прописываем 1.1.1.1 в роли socks proxy.

  41. Иван says

    Спасибо, все работает. Еще бы понять - как коннектиться к 1.1.1.1 с паролем. Чтобы доступ к 1.1.1.1 был по логину и паролю.

  42. valikoo says

    Прекрасная статья! Но у меня не работает (((
    два компа в локалке домашней
    pc-1 и pc-2
    pc-2 по рдп (3389) видит pc-1 отлично
    ставлю putty на pc-2 , на pc-1 bitwise ssh
    делаю туннель с pc-2 remote 3333 127.0.0.1:3389 на pc-1 просто по локалке
    как в статье написано.
    на pc-1 появляется LISTENING 3333
    подключаюсь по рдп - сразу почти пишет, что "не удаётся подключиться...."
    фаерволы отрубил, антивирь отрубил
    что может быть???

  43. Andrew says

    Есть такой вопрос, вообщем если отключены порты Ethernet и по IP нет доступа к системе, можно как-то иначе получить доступ или открыть порты Ehthernet?

  44. valikoo says

    народ, я разобрался что у меня было!
    Через интерфейс такое подключение глючит видимо! Используйте PLINK.EXE и параметры командной строки - тогда заработает!

  45. igor123 says

    А лучше используйте SSH Tunnel Manager для SSH

  46. ActiveNum says

    А что если мне нужно объединить 2 и третий случай? Хочется чтобы запросы с удаленного браузера шли через прокси, расположенной в лвс! Как быть в таком случае?

  47. xfiles says

    Добавлю. Если нужно поддерживать ssh-сессию в рабочем состоянии на нестабильном канале или оставить на длительное время, поможет MyEnTunnel. Протестировано на Windows 10 Pro. Из интересного,
    -N - не открывать удаленный шелл, только port forward
    На примере RDP, открыть доступ в серую сеть, на закладке tunnel:

    3389:real_ip:33338 | 33338:127.0.0.1:3389

    33338 - любой, будет светиться открытым, по необходимости ограничить доступ.
    Дополнительно включить loopback ping (откроется пара дополнительных портов)
    в итоге если соединение зависнет (на длительное время порты могут остаться LISTEN без фактичего проброса трафика, и mstsc в таком случае будет давать ошибку), то будет выполнено переподключение ssh tunnel.
    При этом хорошо настравается автозагрузка при старте ОС, таймауты. Можно настроить Windows default user shell, и обеспечить подключение по RDP.

  48. dorofeev says

    Здравствуйте, какие книги (кроме маан ssh) советуете прочитать, чтобы понять, что происходит "под капотом", описанным здесь? Спасибо.

1 2

You must be logged in to post a comment.