- есть steam-аккаунт,
- есть игра (здесь рассматривается Team Fortress 2), работающая по протоколу UDP (HL*, CS, TF2, и т.д.),
- есть компьютер, не имеющий выхода в интернет, на котором предполагается играть,
- есть другой компьютер, имеющий выход в интернет, до которого есть соединение с "игрового" компьютера.
Предположим, возникла потребность играть в интернете с "закрытого" игрового компьютера через компьютер, имеющий интернет.
Сразу оговорюсь, что, вероятно, самым простым способом было бы установление VPN-соединения на нужную машину, установление шлюза по умолчанию на том конце VPN-cоединения (винда эту опцию включает по умолчанию), и играть. Однако, этот способ имеет ряд минусов, распространяться о которых можно долго, да и смысла в этом нет. Здесь этот способ рассматриваться не будет.
Проницательный слушатель нашего курса знает, что такую проблему можно решить с помощью прокси. Наиболее популярными у организаций являются HTTP и HTTPS прокси, в частности, прокси-сервер SQUID. Сразу сообщаю: steam через HTTP(S)-прокси работать будет, игра - не будет, обзор серверов работать не будет. Причина кроется в том, что HTTP-прокси обслуживают TCP-соединения, а игры и обзор серверов работают по UDP (даже если стим запустить с ключом -tcp).
Что же делать? Как жить дальше?
Решение есть: нам нужен другой прокси. Который позволит работать с UDP-соединениями. И такой прокси есть, и имя ему 3proxy. Нам от него нужна конкретная особенность - поддержка прокси SOCKS5. Итак, что нам потребуется:
1. На сайте 3proxy можно скачать отдельный файл для socks5, но мы не будем усложнять себе жизнь и возьмем нормальный универсальный 3proxy-***.zip, распакуем его.
2. Нам для запуска 3proxy потребуется создать конфиг. Красноглазый слушатель нашего курса с радостью потратит свободное время на редактирование 3proxy.cfg.sample из папки cfg, а мы просто создадим конфиг 3proxy.cfg с ультрасложным содержимым (просто одно слово в файле):
Код: Выделить всё
socks
3. Чтоб удобней было, можно прописать 3proxy как службу Windows, выполнив 3proxy.exe --install "C:\....\3proxy\3proxy.cfg"
Убрать потом службу, если надо - 3proxy.exe --remove
4. В принципе, серверная часть у нас готова к работе. Если есть файрволл - разрешаем ей исходящие TCP (для стима) и UDP (для игры и обзора серверов) соединения везде, а входящие - между прокси и игровым компьютером по всем портам, т.к. у нас будет использоваться не только заданный в конфиге порт - особенности UDP.
5. Что нам нужно теперь, чтобы заставить наш зоопарк (стим, игру, обзор серверов в стим, обзор серверов в игре) ходить через прокси? Для этого (спасибо Fire666 за наводку) существуют проксификаторы. Проксификаторы - софт, который заставляет соединения другого софта проходить через прокси. Чем это интересно? А вот чем: такое грубое поведение софта многим не нравится - к примеру, антивирусам и излишне активным файрволлам. Фактически, то, что это "съедает" VAC - по большому счету, уступка со стороны Valve, такое безобразие надо пресекать :) Следствие из этого - возможно, придется добавить определенные исключения в ваш антивирус.
Проницательный слушатель нашего курса уже догадывается, что нам подойдет не любой проксификатор, а тот, который умеет работать с SOCKS5 и UDP. Соответственно, популярный Proxifier нам не подойдет, не захотел работать и sockscap, freecap. Запустился TF2 с утилитой Super Socks5Cap (можно скачать кем-то выложенный дистр здесь, пока ссылка не стухнет).
6. Итак, ставим Super Socks5Cap, покупаем exe-файл, не требующий регистрацию :) и запускаем, настраиваем (Setup).
Нам понадобится указать, собственно, прокси - адрес нашей серверной машины, тип SOCKS5, порт (1080, если стандартный).
Program via tunnel config - убираем чекбокс Not Tunnel UDP Data, ставим чекбокс UDP use NAT bind mode.
Misc - убираем Check New Version.
Далее, добавляем (Add) приложение - Steam.exe и hl.exe.
7. Собственно, готово, можно запускать Super Socks5Cap, потом из окошка SuperSocks5Cap стим, потом тф2.
Не все игры пойдут через проксификатор. Например, UDP-соединения AssaultCube так и не перенаправляются через Socks5Cap, соответственно - соединиться с сервером нельзя.
Альтернатива 3proxy:
baneme писал(а):Вместо 3proxy можно использовать последнюю версию HandyCache socks5 udp поддерживает
Заодно опишу вариант ICS, хотя он к прокси отношения и не имеет. Предположим, у вас есть ноутбук с wi-fi и обычной витой парой RJ45, т.е. есть 2 подключения. Через wifi имеем интернет, через LAN соединяемся (напрямую) с компьютером, на котором хотим играть (и вообще, выйти в интернет). Решается следующим образом:
1. На ноуте идем в Сетевое окружение - Свойства - выделяем оба подключения сразу, щелкаем правой кнопкой и создаем "подключение типа мост".
2. На компе в Сетевое окружение - Свойства - Подключение LAN - Свойства - TCP/IP - Свойства - выставляем получение IP-адреса автоматически, в "Дополнительно" всё лишнее убираем, если есть.
Т.к. в этом случае ноут у нас сам раздает IP-адреса и делит между ними подключение wifi, то просто два любых компа в общегородской сети по подобной схеме настроить, конечно, не получится.
Тут всё примерно понятно, на компе с выходом в интернет имеем хост VPN, на клиенской машине настраиваем подключение VPN (Мастер подключений в свойствах Сетевого окружения поможет). Если шлюз в удаленной сети (а по умолчанию это так и ставится), то после подключения всё должно работать.