Как заставить работать PSN

Периодически в комментариях можно прочитать о том, что 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:

Пункт Ubuntu Server в разделе «Популярные» то, что нам нужно

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

Читайте также