Периодически в комментариях можно прочитать о том, что PSN до сих пор работает с перебоями. Я потратил около недели для поиска универсальной схемы, которая заставила бы онлайн-сервисы Sony исправно работать. Признаюсь, что все делается намного быстрее, чем за неделю, так как по многим вопросам приходилось подтягивать знания, а где-то я просто откровенно тратил время, утыкаясь в стену и делая попытку за попыткой. Для тех, кто «в теме», здесь ничего нового написано не будет, но материал призван стать пищей для ума для тех, кто хотел бы к этой теме приобщиться.
Попытка 1. Amazon EC2 и HTTP-прокси.
Начал свои «изыскания» я с поднятия бесплатного сервера на Амазоне. Инструкция по развертыванию HTTP-прокси была взята из интернета. Сразу скажу, что из всех продуктов более всего в плане удобства и скорости настройки мне понравился 3proxy. Немаловажную роль сыграло и то, что с проблемами помогал разбираться сам автор этого легкого и функционального прокси-сервера, тем более, что он русскоязычный. Отличный вариант для новичков! Теперь о плохом:
1. Amazon запретил использовать свои сервера для обхода блокировок. При развертывании прокси это выражается в том, что все соединения клиента принудительно рвутся, трафик не идет. Так что Amazon заведомо нерабочий вариант для прокси-сервера.
2. Дело в том, что для корректной работы всех онлайн-сервисов PSN требуются два протокола: TCP и UDP, а HTTP — это протокол прикладного уровня (по модели OSI), работающий сверху TCP. После того, как работающий прокси-сервер был поднят на другом хостинге, сразу стало ясно, что это не работает: ни друзья, ни тусовки, ни Rainbow 6 не работали.
Попытка 2. SOCKS5 прокси
Залез на википедию и прочитал, что SOCKS версии 5 прекрасно работает как с TCP, так и с UDP, причем делает это прозрачно, то есть как клиент, так и сервер, не ощущают никакого присутствия прокси, получая и отправляя пакеты такими, какими они и задумывались. Очень удобная схема. На помощь к нам снова приходит 3proxy, которая прекрасно работает одновременно в HTTP и SOCKS5 режимах. И снова о минусах:
1. Для проброса всего трафика через SOCKS5 нужен роутер, который умеет с таким работать, либо кастомная прошивка (типа DD-WRT) с грамотно настроенными iptables. Это довольно сложно и громоздко для настройки. Тем не менее, macOS прекрасно работает с SOCKS5-проксями (не уверен насчет Windows)
В целом, вполне себе достойный вариант, который можно еще и использовать для Telegram (приятный бонус!).
Попытка 3. OpenVPN
Настраивается чуть сложнее прокси, но в теории обеспечивает полный проброс всего трафика через наш сервер. Этот вариант я более подробно описывать не буду, ограничусь лишь аргументами против:
1. Некорректно работает на macOS Sierra и выше. При расшаривании интернета с устройства на PlayStation сама «плойка» отказывается видеть DNS-сервера, из-за чего не работает вообще ничего. Варианты решения из интернета либо не работают, либо довольно сложны.
2. Требуется сторонний клиент (Tunnelblick для macOS, OpenVPN Client для Windows) для поддержания такого соединения. В принципе, программы прекрасно ставятся инсталляторами, но есть куда более удобные схемы и без сторонних программ.
Попытка 4. L2TP IPSec VPN
Совершенно случайно наткнулся в гугле на готовый скрипт по развертыванию L2TP-сервера под Ubuntu. Разворачивается это великолепие менее, чем за 5 минут, не требуя абсолютно никакого участия со стороны настраивающего. Это именно тот вариант, который мы с друзьями нынче и используем. И вот почему:
1. Как я уже упомянул выше, есть готовый скрипт на гитхабе от hwdsl2 (setup-ipsec-vpn), который может развернуть любой пользователь, даже если впервые увидел bash-консоль. Там же на гитхабе им даны подробные инструкции: что, как и куда настраивать (единственное ограничение — все на английском языке).
2. L2TP-подключение из коробки работает на macOS и windows (В 10-ке есть проблема, которая фиксится добавлением параметра в реестре, но воспроизводится не всегда и не у всех). Более того, L2TP настраивается и на роутере.
3. Обеспечивается проксирование ВСЕГО трафика. Очень анонимно и безопасно (если сервер настроен правильно).
Выбор хостинга.
Признаюсь честно, что в первую очередь проверял крупнейшие хостинги (Amazon, Google, DigitalOcean, Azure) и еще пару европейских в придачу. В итоге, остановился на Azure, потому что:
1. На первый месяц предоставляется бесплатная подписка с 12500 рублей на счету. Можно поиграться с виртуалками, чтобы подобрать сервер на заданное количество людей
2. Самый дешевый сервер на Ubuntu в Нидерландах обойдется примерно в 550-600 рублей. При этом ширина канала будет примерно 200 мбит. Этого с лихвой хватит для игр 5-6 людям (и даже больше).
3. Одновременно мы играли втроем (двое в Destiny 2, один — в Overwatch). При этом не было ни подвисаний, ни увеличения пинга. В то же время мы втроем находились в одной «Тусовке» и разговаривали, качество связи не изменилось по сравнению с прямым соединением.
4. Средний пинг в Rainbow 6 — 50-60 мс в Европейской части России. Это достойный результат, который не вызывает никаких неудобств.
5. Тип NAT не меняется (многие намучились с этим).
6. Большинство хостингов авансом снимают какую-то сумму денег для подтверждения личности.
7. Европейские хостинги 2 эшелона, как правило, в 1.5-2 раза дороже гигантов вроде Google или Microsoft и имеют лимиты по трафику в месяц.
8. Американские хостинги не подходят, так как пинг будет заведомо высоким (150-200 мс в идеальной ситуации, на практике — еще больше).
9. Есть студенческие лицензии для Azure, предоставляющие сервера чуть ли не задаром. Очевидным плюсом также является огромное количество гайдов, встроенных прямо в портал Azure, а также возможность следить за сервером с мобильного телефона (хотя такая фишка есть не только у Azure).
Пошаговое руководство
Итак, после регистрации в Azure и создании бесплатной пробной подписки необходимо выполнить следующие шаги:
1. В левом верхнем углу портала нажимаем кнопку «Создать ресурс». Выскакивает поисковая панель и самые популярные варианты, в числе которых Ubuntu:
2. Выскакивают базовые параметры настройки нашей виртуальной машины. «Имя» — это имя виртуальной машины.
«Имя пользователя» — это профиль, который будет создан на виртуальной машины для авторизации по ssh
«Тип проверки подлинности» — Используется для удаленной авторизации на сервере для его настройки. Я рекомендую использовать SSH ключ, так как это безопаснее использования пароля, но если не хочется заморачиваться с генерацией ключа, то можно выбрать и пароль.
«Группа ресурсов» — помимо виртуальной машины будут созданы группа сетевой безопасности, публичный IP-адрес и некоторые другие вещи. При пункте «Создать» необходимо придумать имя такой группе, оно может быть произвольным.
«Расположение» — собственно, какой датацентр мы будем использовать. Рекомендую выбирать «Западная Европа», так как там наибольшее количество различных конфигураций серверов по различным ценам
3. Выбираем размер нашего сервера. Здесь все зависит от ваших финансовых возможностей и количества друзей, с которыми вы готовы скидываться для аренды сервера. Рекомендую начинать с самого малого размера, за доплату можно будет и увеличить.
Далее следуют дополнительные параметры, но мы там ничего не трогаем, а просто нажимаем «OK»
В последнем пункте будет сводка с параметрами, которые мы выбрали для свое виртуальной машины
Далее необходимо подождать пару минут, пока виртуальная машина сконфигурируется и запустится. У значка колокольчика сверху появится уведомление, что сервер запустился:
Более развернутый гайд и даже видеоинструкцию можно найти на самом сайте Azure.
4. Далее нам необходимо по ssh присоединиться к нашему серверу. В Windows-системах необходимо установить клиент для таких соединений (например, Putty), в MacOS клиент встроенный, так что надо просто запустить терминал. IP-адрес машины для подключения можно посмотреть в параметрах виртуальной машины:
«Панель мониторинга» -> «Виртуальная машина» -> «Общедоступный IP-адрес»
Для подключения используем имя пользователя и пароль, придуманные в пункте «Базовые» при создании виртуальной машины.
5. Теперь нам надо создать собственный L2TP-сервер. Для этого воспользуемся созданным скриптом, который не только развертывает все, но и сразу создает нам пользователя для авторизации. Сам скрипт и все инструкции по нему можно взять вот здесь:
6. Почти закончили. Теперь нам надо разрешить подключения к нашей виртуальной машине к портам 500 и 4500. В «Панели мониторинга» выбираем пункт «Сетевая группа безопасности» и добавляем пункт в «Правила безопасности для входящего трафика».
На этом инструкцию по развертыванию L2TP-сервера можно завершать. Остается настроить соединение L2TP IPSec на клиентской машине, для этого можно прибегнуть к официальному гайду на сайте Apple (для macOS) или Microsoft (для Windows). Отлично подходит обыкновенный ноутбук. Ноутбук присоединяется к интернету по Wi-Fi, на нем настраивается L2TP-подключение, а PlayStation подключается по Ethernet к ноутбуку. Можно избежать этих морок, настроив L2TP на роутере, но это может сказываться на пинге, так как весь трафик со всех устройств в сети будет идти через VPN. Схема с ноутбуком не самая удобная, зато работает на все 100% и может использоваться лишь тогда, когда необходимо. И все, вы снова можете пользоваться всеми сервисами PSN!
Источник: DTF