Узнать по ключевым словам позицию в поисковике. Бонус — схема проверки позиций в Торвизоре. Платные профессиональные сервисы

Существует три различных типа туннелирования, и все они используются для решения разных задач. Каждая задача предполагает использование SSH-сервера для перенаправления трафика из одного сетевого порта в другой. Трафик передается по зашифрованному SSH-соединению , поэтому его нельзя отследить или изменить в процессе передачи:

Туннелирование можно реализовать с помощью ssh-команды в Linux , Mac OS и операционных системах семейства UNIX . Для пользователей Windows , где нет встроенной ssh-команды , мы предлагаем бесплатный инструмент PuTTY . Он умеет подключаться к SSH-серверам . Он также поддерживает SSH-туннелирование .

Локальное перенаправление портов (port forwarding): получаем доступ к удалённым ресурсам на локальной системе

«Локальное перенаправление портов » позволяет осуществлять доступ к ресурсам, находящимся внутри локальной сети. Предположим, что нужно попасть на офисный сервер БД, сидя дома. В целях безопасности этот сервер настроен так, чтобы принимать подключения только с ПК, находящихся в локальной сети офиса. Но если у вас есть доступ к SSH-серверу , находящемуся в офисе, и этот SSH-сервер разрешает подключения из-за пределов офисной сети, то к нему можно подключиться из дома. Затем осуществить доступ к БД. Проще защитить от атак один SSH-сервер , чем защищать каждый ресурс локальной сети по отдельности.

Чтобы сделать это, вы устанавливаете SSH-соединение с SSH-сервером и говорите клиенту передать трафик с указанного порта на локальном ПК. Например, с порта 1234 на адрес сервера базы данных и его порт внутри офисной сети. Когда вы пытаетесь получить доступ к БД через порт 1234 на вашем ПК («localhost ») трафик автоматически «туннелируется » по SSH-соединению и отправляется на сервер БД.

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

Чтобы использовать локальное перенаправление, подключитесь к SSH-серверу с использованием вспомогательного аргумента -L . Синтаксис для туннелирования трафика будет следующим:

ssh -L local_port:remote_address:remote_port [email protected]

Предположим, что офисный сервер находится по адресу 192.168.1.111 . У вас есть доступ к SSH-серверу через адрес ssh.youroffice.com , и имя вашего аккаунта на SSH-сервере — bob . В таком случае необходимая команда будет выглядеть следующим образом:

ssh -L 8888:192.168.1.111:1234 [email protected]

Запустив эту команду, вы попадете на офисный сервер баз данных через порт 8888 на localhost . Если у СУБД есть веб-интерфейс, можно вписать в адресную строку браузера http://localhost:8888 . Если у вас инструмент командной строки, которому необходим сетевой адрес базы данных, то направьте его на localhost:8888 . Весь трафик, отправленный на порт 8888 на ПК, будет перенаправлен на 192.168.1.111:1234 внутри офисной сети:


Это слегка сбивает с толку, если надо подключиться к серверному приложению, запущенному в той же системе, где и сам SSH-сервер . К примеру, есть SSH-сервер , работающий на порте 22 на офисном ПК. Но у вас также есть сервер баз данных, работающий на порте 1234 в той же системе по тому же адресу. Вам нужно подключиться к БД из дома, но система принимает только SSH-подключение через 22 порт , и сетевой экран не пропускает любые внешние подключения. В таком случае можно запустить следующую команду:

ssh -L 8888:localhost:1234 [email protected]

При попытке подключиться к БД через 8888 порт на вашем ПК, трафик будет передаваться с помощью SSH-подключения . Когда он достигнет системы, в которой работает SSH , SSH-сервер отправит его на порт 1234 на «localhost », принадлежащий тому же ПК, на котором запущен SSH-сервер . То есть, «localhost » в приведённой выше команде означает «localhost » с перспективы удалённого сервера:


Чтобы сделать это в PuTTY на Windows , выберите опцию Connection > SSH > Tunnels . Далее опцию «Local ». В поле «Source Port » укажите локальный порт. В поле «Destination удалённый_адрес:удалённый_порт .

Например, если нужно настроить SSH-тоннель , как это сделано выше, то введите 8888 в качестве порта-источника и localhost:1234 в качестве целевого адреса. После этого нажмите «Add » и затем «Open », чтобы открыть SSH-подключение . До подключения SSH туннелирования нужно ввести адрес и порт самого SSH-сервера в разделе «Session »:


Дистанционное перенаправление портов: открываем доступ к локальным ресурсам на удалённой системе

«Дистанционное перенаправление портов » — ситуация, противоположная локальному перенаправлению, и используется не так часто. Она позволяет открывать доступ к ресурсам на локальном ПК через SSH-сервер . Предположим, что на локальном ПК настроен веб-сервер. Но ваш ПК защищён сетевым экраном, который не пропускает входящий трафик на сервер.

Если есть доступ к удалённому SSH-серверу , можно подключиться к этому SSH-серверу и использовать дистанционное перенаправление портов. Ваш SSH-клиент укажет серверу перенаправлять трафик с определённого порта – скажем, 1234 – на SSH-сервере на указанный адрес и порт на вашем ПК или внутри локальной сети. Когда кто-то подключается к порту 1234 на SSH-сервере , этот трафик автоматически «туннелируется » по SSH-соединению . Любой, кто подключается к SSH-серверу , сможет получить доступ к серверу, запущенному на вашем ПК. Это достаточно эффективный способ обхода фаерволов.

Чтобы воспользоваться дистанционным туннелированием IP , используйте ssh-команду с аргументом —R . Синтаксис здесь будет практически таким же, как и в случае с локальным перенаправлением:

ssh -R remote_port:local_address:local_port [email protected]

Предположим, что нужно создать серверное приложение, прослушивающее порт 1234 на вашем ПК. Оно доступно через порт 8888 на удалённом SSH-сервере . Адрес SSH-сервера ssh.youroffice.com , а ваше имя пользователя на SSH-сервере bob . Значит, команда будет следующей:

ssh -R 8888:localhost:1234 [email protected]

Затем кто-то может подключиться к SSH-серверу через порт 8888 , и это подключение будет туннелировано на серверное приложение, запущенное на порте 1234 ПК , с которого вы подключались:


Чтобы сделать это в PuTTY для Windows , выберите опцию Connection > SSH > Tunnels . Далее – опцию «Remote ». В поле «Source Port » укажите удалённый порт. В поле «Destination » введите целевой адрес и порт в формате локальный_адрес:локальный_порт .

Например, если нужно настроить SSH-тоннель , как это сделано выше, то укажите 8888 в качестве порта-источника и localhost:1234 в качестве целевого адреса. После этого нажмите «Add » и затем «Open », чтобы открыть SSH-подключение . До подключения нужно будет ввести адрес и порт самого SSH-сервера в разделе «Session ».

После этого пользователи смогут подключаться к порту 8888 на SSH-сервере и их трафик будет передаваться на порт 1234 на вашей локальной системе:


По умолчанию, удалённый SSH-сервер будет слушать только подключения с того же хоста. Другими словами, доступ будет только у людей из той же системы, на которой запущен SSH-сервер . При туннелировании трафика так делается в целях безопасности.

Нужно включить опцию «GatewayPorts » в sshd_config на удалённом SSH-сервере , если хотите изменить эти настройки.

Динамическое перенаправление портов: используем SSH-сервер в качестве прокси

Также существует «динамическое перенаправление портов », которое работает по тому же принципу что прокси или VPN-сервер . SSH-клиент создаёт SOCKS-прокси , который можно настраивать под собственные приложения. Весь трафик, отправляемый через прокси, будет отправляться через SSH-сервер . Принцип здесь схож с локальным перенаправлением – берётся локальный трафик, отправленный на определённый порт на вашем ПК, и перенаправляется через SSH-соединение на удалённый адрес.

Предположим, что вы используете общедоступную Wi-Fi сеть. Но хочется делать это безопасно. Если у вас есть доступ к SSH-серверу из дома, то можно подключиться к нему и использовать динамическое перенаправление. SSH-клиент создаст SOCKS-прокси на вашем ПК. Весь трафик, отправленный на этот прокси, будет отправляться через подключение к SSH-серверу . Никто из тех, кто использует общедоступную Wi-Fi сеть, не сможет отслеживать ваши перемещения в сети или закрывать доступ к сайтам. С перспективы сайтов, которые посещаете, будет казаться, что вы заходите на них с домашнего ПК.

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

Например, если медиа-сервер находится по адресу 192.168.1.123 в вашей домашней сети, то можно добавить адрес 192.168.1.123 в любое приложение при помощи SOCKS-прокси и получить доступ к медиа-серверу, как будто вы находитесь внутри домашней сети.

Чтобы воспользоваться динамическим перенаправлением, запустите ssh-команду с аргументом —D :

ssh -D local_port [email protected]

Предположим, что у вас есть доступ к SSH-серверу по адресу ssh.yourhome.com , а ваш логин на SSH-сервере – bob . Нужно использовать динамическое перенаправление для того, чтобы открыть SOCKS-прокси по порту 8888 на текущем ПК. Тогда команда для SSH туннелирования будет выглядеть следующим образом:

ssh -D 8888 [email protected]

После этого можно настроить браузер или другое приложение на использование локального IP-адреса (127.0.0.1) и порта 8888 . Весь трафик этого приложения будет перенаправляться через туннель:


Чтобы сделать это в PuTTY для Windows , выберите опцию Connection > SSH > Tunnels . Далее – опцию «Dynamic ». В поле «Source Port » укажите локальный порт.

Например, если вам нужно настроить SOCKS-прокси на порт 8888 , то введите 8888 в качестве порта-источника. После этого нажмите «Add » и затем «Open », чтобы открыть SSH-подключение .

Любому системному администратору приходится постоянно работать удаленно, но случаются ситуации, когда нужно срочно подключиться к узлам внутренней сети, доступ к которым снаружи закрыт. Хорошо если есть доступ на другие узлы данной сети, но бывает, что доступа из глобальной сети нет вообще, в этих случаях обычно используют TeamViewer или аналогичное ПО, но если к такой сети есть возможность подключиться через SSH или установить соединение с промежуточным SSH-сервером, то можно быстро и просто организовать доступ без привлечения стороннего ПО.

Очень часто, когда речь заходит об удаленном доступе к сетям с низким уровнем безопасности, первое что приходит на ум - это VPN, однако ради административных соединений поднимать VPN не всегда целесообразно, особенно если речь идет об аутсорсинге или "приходящем админе". Кроме того, не всегда условия связи позволяют поднять устойчивое VPN-соединение, особенно если приходится использовать мобильные сети.

При этом практически в любой сети можно найти устройство или сервер, к которому возможен доступ по SSH, либо имеется такой промежуточный сервер, например, VPS в глобальной сети. В таком случае отличным решением будут SSH-туннели, которые позволяют с легкостью организовывать безопасные каналы связи в том числе и через промежуточные узлы, что снимает проблему наличия выделенного IP-адреса.

Строго говоря, SSH-туннели не являются полноценными туннелями и это название следует рассматривать как сложившееся в профессиональной среде устойчивое наименование. Официальное название технологии - SSH Port Forwarding - это опциональная возможность протокола SSH, которая позволяет передать TCP-пакет с одной стороны SSH-соединения на другую и произвести в процессе передачи трансляцию IP-заголовка по заранее определенному правилу.

Также, в отличие от VPN-туннелей, которые позволяют передавать любой трафик в любом направлении, SSH-туннель имеет точку входа и может работать только с TCP-пакетами. По факту это больше всего похоже на проброс портов (о чем и говорит официальное название), только поверх протокола SSH.

Рассмотрим работу SSH-туннеля более подробно. В качестве примера возьмем классический случай обеспечения доступа к некоторому удаленному серверу по протоколу RDP.

Допустим, что в удаленной сети существует целевой сервер с адресом 192.168.0.105, но доступа к нему из внешней сети нет, единственное устройство к которому мы можем подключиться - это маршрутизатор с адресом 192.168.0.1 с которым мы можем установить SSH-соединение.

Остановимся на очень важном моменте: все параметры SSH-туннеля устанавливает инициатор подключения, он же SSH-клиент , вторым концом туннеля всегда является сервер, к которому мы подключаемся, он же SSH-сервер . В данном контексте следует понимать клиент и сервер сугубо как стороны соединения, например, в роли SSH-клиента может выступать VPS-сервер, а в роли SSH-сервера ноутбук админа.

Точка входа может располагаться с любой стороны соединения, там открывается TCP-сокет с указанными параметрами, который будет принимать входящие подключения. Точка выхода принимать соединения не может, а только маршрутизирует пакеты в соответствии с правилами трансляции.

Рассмотрим схему выше. Мы установили SSH-туннель с локальной машины к удаленному маршрутизатору, указав локальную точку входа 127.0.0.1:3389 и правило трансляции 192.168.0.105:3389 . Еще раз обращаем ваше внимание, что правило трансляции не указывает на точку выхода, а определяет узел, которому будут посланы пакеты по выходу из туннеля. Если вы укажете недействительный адрес, либо узел не будет принимать соединения, то SSH-туннель установится, но доступа к целевому узлу не будет.

Согласно указанной точке входа служба SSH создаст локальный TCP-сокет, который будет ожидать подключений на порт 3389. Поэтому в окне RDP-подключения указываем в качестве назначения localhost или 127.0.0.1 , RDP-клиент открывает динамический порт и отсылает пакет с адресом назначения 127.0.0.1:3389 и адресом источника 127.0.0.1:61256 , о реальном назначении получателя пакета ему ничего не известно.

С точки входа данный пакет будет отправлен на другую сторону SSH-туннеля, а адрес назначения согласно правила трансляции будет изменен на 192.168.0.105:3389 , и SSH-сервер примет дальнейшее решение согласно собственной таблицы маршрутизации, заменив адрес источника на свой собственный, в противном случае целевой сервер попытается отправить ответный пакет на локальный адрес.

Таким образом RDP-клиент работает с локальным сокетом и далее этого узла RDP-пакеты не уходят, внутри туннеля они передаются поверх протокола SSH в зашифрованном виде, а вот между SSH-сервером и RDP-сервером в сети 192.168.0.0 устанавливается обычное RDP-соединение, в открытом виде. Это следует учитывать при использовании небезопасных протоколов, твердо запомнив, что если правило трансляции указывает за пределы узла с точкой выхода, то такое соединение (между точкой выхода и узлом назначения) не защищается посредством SSH.

Разобравшись в общих чертах как работают SSH-туннели перейдем к практическим вариантам их использования, в качестве платформы мы будем рассматривать Linux-системы семейства Debian/Ubuntu, но все нижеизложенное с небольшими поправками будет справедливо для любой UNIX-подобной системы.

SSH-туннель с локальной точкой входа

Туннели с локальной точкой входа используются для получения доступа к узлам в удаленной сети при возможности установить SSH-соединение с одним из ее узлов, что предполагает наличие у удаленной сети выделенного IP-адреса.

Мы будем рассматривать все тот-же вариант, RDP-подключение к удаленному серверу, оранжевым пунктиром на схеме обозначено безопасное SSH-соединение, синими стрелками - обычное TCP-подключение.

В самом простом варианте мы просто устанавливаем соединение с клиентского ПК к маршрутизатору в удаленной сети, указывая в правиле трансляции целевой узел:

Ssh -L 127.0.0.1:3389:192.168.0.105:3389 [email protected]

Ключ -L указывает на то, что точка входа расположена локально, затем через двоеточие указываются адрес и порт точки входа и адрес, порт правила трансляции. Точкой выхода является узел, к которому мы подключаемся, т.е. rt.example.com .

Если в вашей сети также присутствует маршрутизатор (или иной Linux-сервер), то можно сделать точкой входа его, что позволит подключаться к удаленному серверу любому RDP-клиенту из локальной сети. В теории для этого следует поднять такой туннель:

Ssh -L 192.168.31.100:3389:192.168.0.105:3389 [email protected]

В таком случае служба SSH должна будет открыть TCP-сокет на интерфейсе 192.168.31.100, но на практике этого не произойдет. Это связано с особенностями реализации OpenSSH, который является стандартом для подавляющего большинства UNIX-подобных систем.

По умолчанию OpenSSH открывает точку входа только на локальном интерфейсе . В этом несложно убедиться:

Для того, чтобы предоставить доступ к TCP-сокету с внешних интерфейсов следует использовать ключ -g , либо добавить в конфигурационный файл /etc/ssh/sshd_config опцию:

GatewayPorts yes

Однако после этого сокет будет принимать соединения с любого сетевого интерфейса инициатора:

Это значит, что порт 3389 будет открыт на всех сетевых интерфейсах, поэтому если точка входа является пограничным устройством, то следует ограничить доступ к сокету, например, средствами iptables. Для примера заблокируем доступ из внешней сети (интерфейс eth0):

Iptables -A INPUT -i eth0 -p tcp --dport 3389 -j DROP

Таким образом рабочий туннель следует поднимать командой:

Ssh -L -g 3389:192.168.0.105:3389 [email protected]

Обратите внимание на еще один момент: если точка входа совпадает с локальным интерфейсом, а для OpenSSH это всегда так, то его можно опустить, сразу начиная команду с порта точки входа.

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

SSH-туннель с удаленной точкой входа

Туннель с удаленной точкой входа позволяет наоборот опубликовать любую локальную службу в удаленной сети, одно из наиболее частых применений - доступ в сети без выделенного IP-адреса, однако это требует "белый" IP со стороны сети администратора.

В первом варианте удаленный сервер сам устанавливает подключение с маршрутизатором локальной сети. Это можно сделать простой командой:

Ssh -R 3389:127.0.0.1:3389 [email protected]

Ключ -R указывает открыть точку доступа с удаленной стороны туннеля, затем указываем порт для TCP-сокета и трансляцию, так как приходящие на точку выхода пакеты следует обрабатывать локально, то также указываем локальный интерфейс.

Внимательный читатель заметит, что мы не указали ключ -g , да, это так. Дело в том, что для туннелей с удаленной точкой входа данный ключ неприменим и следует использовать опцию

GatewayPorts yes

на стороне SSH-сервера.

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

Iptables -P INPUT DROP
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT

Первое из них задает запрещающую политику по умолчанию для входящих пакетов, второе разрешает входящие пакеты, инициированные самим хостом (ответы на исходящие пакеты), а третье разрешает все подключения из локальной сети. Наконец четвертое правило открывает 22 порт для входящих SSH-подключений, таким же образом можно открыть любой другой порт для внешних подключений.

Второй вариант представленный на схеме предусматривает, что SSH-туннель поднимают маршрутизаторы сетей, в этом случае команда будет выглядеть следующим образом:

Ssh -R 3389:192.168.0.105:3389 [email protected]

Снова обратим ваше внимание, что точка входа у нас располагается на противоположной стороне туннеля, поэтому трансляция указывается для стороны инициатора туннеля, т.е. в данном случае SSH-клиент устанавливает два соединения: одно SSH с rt.example.com, а второе RDP c 192.168.0.105, тогда как при туннеле с локальной точкой входа инициатор устанавливает единственное соединение с SSH-сервером.

Двойной SSH-туннель

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

Обратим внимание на схему выше. SSH позволяет строить целые цепочки туннелей, соединяя точку входа следующего с точкой выхода предыдущего. Таким образом, чтобы получить туннель с ПК админа на RDP-сервер, при этом оба узла с "серыми" IP-адресами, нам нужно создать два туннеля с промежуточным узлом.

Туннель с локальной точкой входа на ПК админа:

Ssh -L 3389:127.0.0.1:3390 [email protected]

И туннель с удаленной точкой входа на RDP-сервере:

Ssh -R 3390:127.0.0.1:3389 [email protected]

Мы специально указали на удаленном сервере нестандартный порт для большей наглядности и теперь давайте посмотрим, как все это работает. Начнем с RDP-сервера, он поднимает туннель с удаленной точкой входа, открывая на промежуточном сервере TCP-сокет, который будет принимать подключения на порт 3390, в качестве трансляции укажем сам RDP-сервер - 127.0.0.1:3389, т.е. все пришедшие на вход этого туннеля пакеты будут направлены на локальный порт 3389.

Туннель с локальной точкой входа на ПК админа открывает локальный сокет на порт 3389, куда будет подключаться RDP-клиент, в качестве трансляции мы указываем точку входа второго туннеля - 127.0.0.1:3390.

Как мы уже говорили, никаких ограничений на количество туннелей в цепочке нет, однако на практике потребность в туннелях с более чем одним промежуточным узлом возникает достаточно редко. При этом следует помнить, что с каждым новым промежуточным узлом будет падать надежность всей схемы, а итоговая скорость будет упираться в скорость самого медленного участка пути.

Динамический SSH-туннель

В отличие от рассмотренных выше динамический туннель работает иначе, он открывает на хосте локальный TCP-сокет, который можно использовать как SOCKS4/SOCKS5 прокси для выхода в интернет через удаленный SSH-сервер. Это может быть полезно для обхода некоторых ограничений, когда поднимать полноценный VPN в другой юрисдикции нет необходимости, а использовать публичные прокси или VPN нельзя по соображениям безопасности.

Такой вид туннеля особенно удобен, если требуется разовый выход в интернет с другого узла. Простой пример: мой хороший знакомый привез из Штатов два операторских контрактных iPhone и попросил их разблокировать. Сложностей данная операция не таит, если условия контракта не были нарушены, то достаточно зайти на сайт оператора и заполнить заявку на разблокировку. Но проблема оказалась в том, что у оператора T-Mobile доступ к данному разделу сайта был доступен только для жителей США, а соединения с публичных прокси и VPN отвергались как небезопасные.

Динамический SSH-туннель позволил быстро решить эту проблему используя VPS в Штатах. Чтобы создать такой туннель введите команду:

Ssh -D 1080 [email protected]

Где 1080 - порт на котором будет доступен наш SOCKS-прокси. Остается только настроить браузер на использование локального прокси-сервера.

Еще одним плюсом подобного метода является то, что прокси-сервер существует только локально на вашем хосте, никаких дополнительных портов во внешнюю сеть открывать не надо, а между клиентом и сервером существует только SSH-соединение.

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

Несколько слов о безопасности

Хоть это и выходит за рамки темы статьи, мы не могли упомянуть об одной особенности, которая может преподнести достаточно неприятные сюрпризы. Подняв SSH-туннель одной из приведенных выше команд, вы получите кроме туннеля также открытую консоль на сервере, к которому подключаетесь. Внимательно посмотрите на строку приглашения на скриншоте ниже.

Вверху мы видим приглашение локального хоста, а внизу, после поднятия туннеля - уже удаленного сервера. Это удобно, если нужно проверить канал связи или выполнить определенные настройки с удаленной стороны, но в обычной жизни это может привести к серьезным неприятностям, если вы забудете или не обратите внимание на то, к какому серверу подключена консоль и выполните на удаленном сервере команды, предназначенные локальному узлу, особенно если вы подключаетесь с правами суперпользователя.

Поэтому после того, как вы проверили работоспособность туннеля запускать его следует с ключом -N, который запрещает выполнение команд на удаленном сервере, например:

Ssh -N -L -g 3389:192.168.0.105:3389 [email protected]

И, конечно же, не следует использовать для подключения к серверу аккаунт суперпользователя, лучше всего заведите для этих целей обычную учетную запись.

SSH-туннели в Windows

На протяжении всей статьи мы рассматривали SSH-туннели на примере Linux-систем и у пользователей Windows могло сложиться впечатление, что им данные возможности недоступны. Но это не так, под Windows существует множество SSH-клиентов, которые поддерживают создание тоннелей. Мы будем рассматривать наиболее популярного из них - PuTTY . Также под Windows можно запустить и SSH-сервер, но это требует определенной квалификации и не всегда можно добиться стабильной работы, поэтому этот вариант мы рассматривать не будем.

Откроем PuTTY и в левой части дерева перейдем в Connection - SSH -Tunnels :

Перед нами откроется следующее окно, основные настройки туннеля сосредоточены внизу, и мы выделили их красной рамкой. Source port - предназначен для указания порта точки входа, которая всегда располагается на локальном интерфейсе (127.0.0.1). Destination - трансляция, т.е. куда будут отправлены пакеты с точки выхода. Радиопереключатели Local - Remote - Dynamic задают тип туннеля и аналогичны ключам -L , -R и -D .

После того, как вы заполнили все необходимые поля можно добавить туннель кнопкой Add . Чтобы разрешить внешним узлам доступ к локальному сокету точки входа установите галочку Local ports accept connections from other hosts . В данном случае следует также ограничить доступ к открытым портам средствами брандмауэра Windows или стороннего сетевого фильтра.

Сервер, к которому мы подключаемся, задается в ином разделе - Session , который знаком каждому, кто хоть раз использовал PuTTY, там же вы можете сохранить параметры сессии для дальнейшего использования.

Как видим, SSH дает в руки администратора гибкий и мощный инструмент для безопасного удаленного доступа без необходимости открытия портов или организации VPN-каналов. Надеемся, что данный материал окажется вам полезен и позволит освоить новые возможности на первый взгляд привычных инструментов.

  • Теги:

Please enable JavaScript to view the

Согласитесь, ни одну работу нельзя качественно сделать вслепую, не видя результатов своих действий и не оценивая динамику изменений.

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

Отследить позиции можно тремя способами:

  • онлайн-сервисами;
  • скачав специальные десктопные и мобильные приложения;
  • вручную.

Чем примечателен каждый из способов проверить позицию сайта по ключевым словам - разберемся дальше с фактами, цифрами и примерами.

Также узнаем, какие сервисы позволяют проверить позиции сайта бесплатно , и какие ограничения они имеют.

Ручная проверка

Но сначала включите режим инкогнито в браузере (поскольку поисковые системы персонализируют выдачу под вашу историю запросов, местонахождение и другие факторы):

  • в Firefox: Меню - Инструменты - Начать приватный просмотр (или просто комбинация Ctrl+Shift+P);
  • в Google Chrome: Меню - Новое окно в режиме инкогнито (Ctrl+Shift+N);
  • в Opera: Меню - Создать приватное окно (Ctrl+Shift+N).

Повторимся!

Этот метод наименее точный и его следует применять только в случае перепроверки результатов работы автоматизированных методов определения позиций сайта или для беглого анализа 3–5 поисковых запросов.

Профессионалы никогда не используют данный метод как основной.

Для проверки в Яндекс

В Yandex для проверки ранжирования (то есть распределения страниц по позициям в поисковой системе) в новом окне откройте поисковик Яндекс, введите ключ и нажмите кнопку поиска.


Если интернет-площадка продвигается в определенном регионе (а вы территориально в другом регионе), также не забудьте задать его в Яндексе (кнопка Настройка - Изменить город).

Для проверки в Google

В Google сама процедура аналогична. Но обратите внимание, что он может отслеживать местоположение и менять результаты поиска даже при просмотре через режим инкогнито.

Это видно внизу страницы поиска Google, как на скрине ниже. Чтобы исключить этот фактор, нажмите на надпись «Учитывать мое местоположение» - функция отключится.


После нажмите Ctrl+F5, чтобы очистить кэш и обновить страницу, и получите достоверный результат.

Для ручного определения позиции в Google US

Войдите в браузер Opera и включите VPN.


Так можно достичь наибольшей достоверности результатов.

Платные online-сервисы

Если необходимо отслеживать результат по большому количеству ключей (от 15 и выше), ручная проверка ранжирования начинает отнимать слишком много времени и не точны.
Тут пригодятся платные онлайн-сервисы. Некоторые из них могут только проверить позиции, другие же обладают расширенным функционалом для комплексного аудита и продвижения.

Самые популярные многофункциональные сервисы (сравнение)

Сервис Рынок Платная версия Пробная версия Бесплатная версия
СНГ, US, EU Оплата за проверку - от 0,001$ за 1 Есть С ограничением функционала
СНГ От 0,05 рублей за 1 позицию - С ограничением функционала (до 200 проверок)
СНГ, US, EU Тариф 19$/месяц (с доп.функционалом) - С ограничением функционала (до 10 ключевиков)
СНГ, US, EU Тарифы от 999 рублей/месяц Есть -
СНГ, US, EU от 0,03 рублей за 1 позицию Есть Есть
СНГ, US, EU От 3,29$/месяц - -
СНГ, US, EU От 0.05 рублей за 1 позицию - С ограничением функционала
СНГ От 0.025 рублей за 1 позицию - С ограничением функционала (100 позиций)

*все цены указаны на январь 2018 года

Детальнее про каждый из них:

Бесплатные online-сервисы от Яндекс и Google

Простые сервисы с базовыми возможностями есть у самих Yandex и Google - это инструменты Вебмастер. Они полностью бесплатны, что плюс, но не 100% точные, что минус.

Данные туда могут «подтягиваться» с опозданием, поэтому динамика изменений будет не вполне достоверной. Зато общую картину вы увидеть сможете, поэтому для своего ресурса это вполне достойный вариант. А вот специалистам с массой проектов лучше обратить внимание на любой из сервисов выше.

После публикации этой статьи, мы получили официальный комментарий от представителей Яндекс.

Михаил Сливинский Руководитель службы по работе с вебмастерами в Яндекс

Поясню и уточню про Яндекс.Вебмастер:

  1. В «последних запросах» - список недавних запросов с кликами/показами/ctr, но без посуточной динамики
  2. В «истории запросов» - есть динамика и по 3000 популярных запросов, и по группам
  3. «Данные туда могут «подтягиваться» с опозданием, поэтому динамика изменений будет не вполне достоверной.» - это неверный вывод. Данные из поисковых логов, т. е. именно так видели сайт пользователи. Позиции часто дробные именно потому, что даже в течение одного дня пользователи из одного региона могли видеть сайт на разных позициях. Действительно, на сбор данных нужно время, поэтому есть задержка в пределах нескольких дней. Но от этого данные не становятся недостоверными, разумеется. И мы работаем над уменьшением этого времени.

Теперь давайте детально посмотрим на каждый из Вебмастеров.

Отслеживание позиций в Яндекс Вебмастере

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

Сбор позиций проводится в Яндекс и Google. Ключи можно добавить вручную (Меню Операции с таблицей - Добавить) или скопировать из других вкладок программы.

Для настройки региональности используйте кнопки в панели состояния (внизу окна). Для начала сбора выберите Яндекс или Google в меню Релевантные страницы, позиции и анализ.


Кроме KeyCollector можно использовать:

Desktop-программы актуальны, если не хватает обычных сервисов, перечисленных выше. Однако требуют более высокого уровня знаний.

Англоязычные online- и десктоп-сервисы для мониторинга позиций

Среди бесплатных англоязычных программ стоящей считается Rankware :

  • поддерживается ОС Windows и Macintosh;
  • позволяет провести отслеживание позиций сайта без ограничений по числу запросов;
  • бесплатно работает для одного проверяемого веб-ресурса;
  • имеет возможность расширить функционал при покупке платной лицензии;

Вот так выглядит интерфейс последней версии программы:

Англоязычные инструменты съёма позиций сайта (сравнение)

Сервис Рынок Платная версия Пробная версия Бесплатная версия
US От 16$/месяц Есть, 2 недели -
US От 49,95$/месяц Есть, 30 дней -
US От 10$/месяц - С ограничением функционала (до 10 позиций)
US 29$/месяц Есть, 2 недели -
US 124,75$ - -
US 69,95$/месяц - Есть

Детальнее про каждый из них:

1. SerpBook.com . Доступна API-интеграция, работа с ключевыми словами, настройка локального поиска, нужная нам проверка мест в поисковой выдаче. Автоматически собирает данные и формирует отчет, что поможет отследить динамику ранжирования. Сервис платный, от 16 $/месяц, есть двухнедельный trial-режим.


2. MicroSiteMasters.com при проверке ранжирования показывает текущие позиции в Google, плюс изменения за заданный период (повышение или понижение страницы в поисковой выдаче). От 49,95 $/месяц, есть 30-дневный тестовый режим.


3. SerpFox.com . Разработчики заявляют, что их технологии проверки одни из наиболее совершенных и точных. Есть настраиваемые отчетности, сбор данных за прошедшее время (к примеру, вы можете посмотреть динамику ранжирования за прошлый год и до нынешнего момента для более масштабного анализа). От 10 $/месяц, бесплатные проверки доступны для 10 позиций.


4. RankWatch.com . Также есть архив для просмотра данных за прошедшее время, продвинутые отчеты с визуализацией, e-mail-уведомления, настройка локального поиска и не только. От 29 $/месяц, есть двухнедельный trial-режим.


5. Link-assistant кроме мониторинга ранжирования работает для аудита сайтов, проверки SEO-параметров и не только. Съем позиций осуществляется в Google, Yahoo, Bing. Позволяет делать проверки вручную, еженедельно или трижды в день. Количество ключевиков не ограничено. Стоимость лицензии - от 124,75 $.


6. SeoProfiler служит для проверки ранжирования (в том числе анализа конкурентов), плюс есть инструменты для работы со ссылками, аудита веб-ресурсов, SMM и не только. Новички могут протестировать сервис бесплатно, платные тарифы - от 69,95 $/месяц.

Мобильные приложения на iOS и Android для мониторинга позиций

Если вы работаете со смартфона или планшета, удобным вариантом будет использование приложений для Android или iOS. Существуют приложения платные, и бесплатными, при этом первых, что закономерно, больше, а функционал у них обширнее и удобнее.

Примеры приложений:

SEO Watcher (на Android), который даже в бесплатной базовой версии позволяет провести анализ позиции сайта в Гугл и Яндекс по 5 поисковым запросам.


SEO Serp Mojo (на Android) дает возможность проверять неограниченное количество URL, ключевых слов, видеть историю ранжирования для всех отслеживаемых ключевиков, работает с Google и даже Bing с Yahoo, которые на СНГ-рынке не особо актуальны.


SEO Tool - «яблочный» собрат приложений выше. Он работает с двойкой самых крупных поисковиков у нас, плюс с Mail и парой других менее популярных систем.

Возможности приложений практически одинаковы - все они работают по одному и тому же принципу. Для проверки нужно выбрать количество поисковых запросов, ключевые слова, требуемый поисковик и URL вашего сайта.

Из всех приложений в Apple Store и Play Market лучше выбирать те, которые находятся в ТОПе - это гарантирует корректную работу и безопасность установки. Для поиска англоязычных программ используйте слова «rank tracker» или «ranking tracker».

Итоги

Если вы только начинаете углубляться в тонкости продвижения или владеете небольшим интернет-ресурсом, рекомендуем начинать с бесплатных сервисов Яндекс и Google или тестовых режимов на платных онлайн-ресурсах.

Так вы разберетесь в стандартных функциях, инструментах и показателях без финансовых затрат. Уже потом, когда базовый функционал исчерпает себя и данных с бесплатных сервисов перестанет хватать, можно постепенно пробовать платные версии для продвинутых пользователей и масштабного анализа.

Мониторили позиции своего сайта одним из сервисов выше? Поделитесь опытом и напишите фидбек в комментариях!

Дорогие друзья, сегодня я решил собрать воедино все программы и сервисы для проверки позиций сайта. На систематизацию материала и написание этого поста у меня ушло 5 дней.

Мне время от времени пишут вопросы о том, каким способом можно отслеживать позиции по продвигаемым поисковым запросам и каким инструментом для мониторинга пользуюсь я. Чтобы каждый раз не отвечать и просто давать ссылку на свой блог, я решил сделать сегодняшнюю подборку. Лень - двигатель прогресса 😉 !

Есть две большие группы инструментов для мониторинга позиций - программы и сервисы. Есть еще скрипты и приложения для Android и iOS. И есть еще англоязычные инструменты. О них я тоже расскажу.

Программы для проверки позиций сайта

Это одна из немногих SEO программ, которая работает как на Windows, так и на MacOS и Linux. Приведу скриншот одного из отчетов Rank Tracker:

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

https://www.whitespark.ca/local-rank-tracker - этот сервис предлагает интересные графики с динамикой позиций, а также позволяет отслеживать позиции по городам:



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: