Провайдер тут перекинул всех своих абонентов через NAT. Синоним – перекинул через хуй.
Поясню – раньше каждому абоненту выделялся пусть и динамический, т.е. меняющийся время от времени, но все же публичный IP, и к моему роутеру можно было подключиться из интернета. Это нужно для запуска игровых серверов, чтобы поиграть с друзьями через интернет, корректной работы торрентов, а самое главное – удаленного подключения. Для всего этого я пробрасывал порты через встроенный в роутер NAT. Теперь же провайдер не дает каждому пользователю выделенный публичный IP-адрес, а выделяет один IP адрес на целую группу абонентов. Т.е. получается, что абоненты находятся в локальной сети, а в интернет ходят через NAT, находящийся у провайдера. Так что теперь при попытке подключиться к роутеру из интернета ничего не получается: ведь за одним и тем же публичным IP-адресом скрывается не один, а несколько абонентов, и непонятно с кем осуществлять соединение.
Все было бы не так трагично, если бы провайдер выделил каждому абоненту диапазон портов – т.е. при обращении по тому единому адресу, но с указанием конкретного порта, все-таки можно было бы достучаться до собственного роутера из интернета. Но нет. Говнопровайдер он говнопровайдер и есть.
Проблема усугубляется тем что у меня не одно, а целых три таких подсоединения в разных концах города, и мне позарез необходима возможно удаленно подсоединяться к компьютерам, подключенным к интернету через такое подсоединение. А удаленка теперь не работает, так что придется искать какое-то другое решение.
В общем виде оно выглядит так. Поскольку входящее соединение невозможно, необходим какой-то вспомогательный узел в интернете, способный помочь связать два компьютера за NAT а то и вообще туннелировать весь трафик между ними. В принципе, если вы платите за выделенный сервер какому-нибудь хостинг провайдеру, то вы можете запустить обратный SSH, если провайдер это не запрещает конечно. Проблема в том, что настройка обратного SSH не всегда под силу опытным сисадминам, не говоря уж о простых пользователях, которым и надо помогать по удаленке. Так что нужно искать что-то попроще.
Первый вариант – это VNC. Один умелец с форума прикрутил ее к GTalk. Если кто не знает, GTalk – это проприетарная болталка на базе православного
XMPP протокола, более известного как jabber. Т.е. соединение между двумя компьютерами, недоступными из интернета напрямую, обеспечивают сервера gtalk. Программа довольно проста в использовании – нужно скачать ее, запустить .exe файл, ввести с двух сторон один и тот же gmail адрес электронной почты и пароль к нему. После успешного подсоединения, тот чьим компьютером нужно управлять нажимает кнопку Show Desktop, после чего запускается обычный VNC клиент со всеми присущими ему возможностями.
Недостатком подобного решения, помимо не совсем стабильной работы, является низкая скорость – ведь соединение идет по сути через IM-клиент. Вторым существенным недостатком является конкретная реализация идеи: к сожалению, в оболочке не предусмотрено сохранение логина и пароля, автоматический логин и включение удаленного доступа при подключении удаленной стороны. Проще говоря, его нельзя запустить в фоне и подключиться к компьютеру без ввода пароля и нажатия кнопок на удаленной стороне, что делает такое решение недопустимым для серверов и прочих компьютеров, где пользователя нет.
Всех этих проблем лишен TeamViewer. Данное ПО является лидером в области удаленного доступа по двум причинам – оно вообще не требует настройки на
стороне удаленного пользователя и бесплатно для некоммерческого использования. Хотя рекламой платной версии бесплатная конечно же задалбывает. Да и выпускается программа под большинство операционок, включая мобильные, что приятно.
В принципе, ПО даже необязательно устанавливать, что важно когда удаленный пользователь не является администратором на собственном компьютере. Для этого пользователю нужно скачать quick support версию TeamViewer, запустить ее и сообщить удаленной стороне цифры которые программа вывела на экране. Удаленная сторона должна скачать полный клиент, но ставить его тоже необязательно – можно выбрать пункт запуска без установки. Вводим переданные удаленной стороной цифры, и можно подключаться к десктопу.
Понятное дело что для подключения к удаленной машине без участия пользователя, программу все же придется установить и включить возможность подключения к компьютеру в любое время. После чего создать аккаунт на TeamViewer или указать существующий, если он у вас есть, и добавить туда этот компьютер. Собственно, и все. Теперь на другой машине через Teamviewer нужно залогиниться, используя тот самый аккаунт, и в списке появятся все удаленные машины, которые вы привязали к данному аккаунту.
Так что даже за NATом жизнь есть. Чем лично мне не нравится такой вариант – так это тем что раньше я был сам себе хозяин и соединения шли напрямую. А теперь я вынужден пользоваться услугами третьей стороны, которая сегодня предоставляет эти самые услуги, а завтра нет.