Меню

Как сделать из своего компьютера игровой сервер



Как сделать свой сервер из домашнего ПК?

Многие начинающие и не очень программисты (или просто пользователи компьютера ) сталкивались с такой задачей: » Как сделать свой сайт и разместить его в интернете без покупки сервера?» спойлер несложно !

Первым делом, необходимо определиться с конфигурацией, которая у вас работает. Белый или серый IP-адрес выдан Вам для подключения? Как подключен интернет дома? Какая операционная система установлена на компьютере и как будет запускаться сайт? Нужно доменное имя?

Разберем подробнее, что нам нужно:

Белый или серый IP-адрес выдан Вам для подключения?

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

  • От 10.0.0.0 до 10.255.255.255 с маской 255.0.0.0 или /8;
  • От 172.16.0.0 до 172.31.255.255 с маской 255.240.0.0 или /12;
  • От 192.168.0.0 до 192.168.255.255 с маской 255.255.0.0 или /16;
  • От 100.64.0.0 до 100.127.255.255 с маской подсети 255.192.0.0 или /10.
    Если непонятно про маски — воспользуйтесь калькулятором .

Как подключен интернет дома?

Необходимо понять структуру вашей сети. Работаете вы через маршрутизатор (роутер) по WiFi, или напрямую Ethernet-кабель подключен к компьютеру.

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

Для того, чтобы открыть порт можно ввести в поисковике фразу: « Как открыть порт на роутере . « , вместо точек указав модель Вашего роутера. Процедура несложная, занимает пару минут времени.

Приведу пример (роутер Tenda n301):

1. Заходим по IP в панель администрирования роутера (обычно, это адрес1 или адрес2 ). Для работы необходимы логин и пароль для настройки.

2. Открываем порт 80, предварительно загуглив, как это сделать, и узнав серый адрес своего компьютера, например так . Сайты работают на двух портах: 80 и 443. Разница в шифровании передаваемой информации. Нам достаточно 80 порта, без шифрования.

3. Сохраняем настройки.

Какая операционная система установлена на компьютере и как будет запускаться сайт?

Ваш сайт, должен запускаться WEB-сервером. Наиболее распространенные WEB-сервера — Nginx, Apache, IIS. Как создать сайт будет написано в другой статье.

В случае с ОС семейства Windows необходимо создать правила Брандмауэра.

1. Открываем панель управления -> Система и безопасность -> Брандмауэр Защитника Windows. Слева в меню пункт «Дополнительные параметры».

2. Правила для входящих подключений. Создать правило. Для порта -> Далее -> Указываем порт (80 — HTTP) -> Далее -> Разрешить подключение для всех типов сетей. Задаем имя правила и жмем «готово».

Если у Вас установлена ОС на базе ядра Linux. Ищите информацию по «фаерволу», который установлен, будь то Iptables, ufw или что-то другое, и открывайте наш 80 порт для входящих соединений.

Итак, мы запустили WEB-сервер (пускай даже с первоначальными настройками), настроили роутер и в итоге — получили работающий сервер на домашнем ПК, но как теперь на него зайти?

Ответ: нужно в браузере ввести свой белый IP адрес. Если все настроено правильно, то роутер «пробросит» ваше соединение и выведет информацию с запущенного WEB-сервера.

Всегда вводить IP адрес для сайта — скучно и неудобно, поэтому все сайты используют доменные имена . Допустим у нас есть доменное имя «пример.рф». Чтобы ввести в браузере адрес пример.рф и попасть на домашний сайт необходимо привязать доменное имя к IP адресу. Подробнее описывать не буду. На сайтах, где можно приобрести доменное имя, есть хорошие инструкции для этого.

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

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

Источник

Быстро создаем и запускаем игровой сервер для любой игры

Доброго времени суток, уважаемые читатели! Скорее всего вы задавались вопросом: как создать свой сервер для какой-либо игры?. В этой статье хочу привести вам пример создания игрового сервера на базе Яндекс.Облака по средствам сервиса Compute Cloud. Имея свой выделенный сервер(VDS/VPS) мы точно будем знать какие процессы на нем происходят. В отличии от имеющихся на рынке хостинг-провайдеров, предлагающих свои услуги по размещению и быстрому развертыванию сервера. Недобросовестные хостеры могут поставить на свою машину до 50 серверов , ради своей выгоды и в ущерб не знающему пользователю. Данная модель очень прибыльна, но для клиента имеет очень много негативных последствий.

Имея свою вирутальную машину мы сможем полностью управлять всеми процессами на ней. Сможем обеспечить комфортную работу нашего сервера. Сервера Яндекс.Облака достаточно гибкие, имеют отличную пропускную способность и геолокацию. Конечно же, выделенный IP адрес. Так же на своей машинке мы можем запустить несколько серверов. Столько, сколько совесть нам позволит.

Ну что? Приступим к развертыванию сервера на облаке от Яндекса? К ак запустить и подготовить сервер к работе я рассказал в предыдущей статье . А сейчас продолжим, имея : чистый, готовый сервер. Программы для работы: PuTTy, WinSCP .

Читайте также:  Как сделать цветы из ленточек своими руками мастер класс

Приступим. Подключаемся через SSH-ключ используя WinSCP.

Далее для пущей безопасности и более удобного администрирования( если планируем создавать более 1 сервера ) можем создать различных пользователей нашего виртуального сервера. Мы же будем запускать из под текущего пользователя — admin. Теперь нам потребуются файлы сервера. Для примера, все игры на движке Source от VALVE имеют удобную утилиту SteamCMD. Которая позволяет установить любой сервер на движке Source. Так же Valve имеет богатое комьюнити и множество инструкций по установке и настройке серверов и не только — Valve Developer Community.

Грубо говоря, имея SteamCMD и AppID сервера (Берется из Dedicated Servers List ) мы можем легко установить самую актуальную версию сервера. Список большой и разнообразный. Приступим? Покажу на примере сервера CS:GO.

Для начала создаем папку для нашего SteamCMD на сервере и переходим в нее.

Источник

Как сделать хостинг игровых серверов — практические советы

Игровой сервер — это вещь упрямая. Он требует как можно больше оперативной памяти. Так, для хостинга серверов San Andreas Multiplayer, Counter Strike и Rust нужно от 8 ГБ, для Minecraft уже от 16 и выше. При этом нужно знать, что это затраты только на саму операционную систему. Процессоры лучше использовать E3 Series и E5 Series, но сгодится и i7 Series.

  • Панель TCadmin — она стоит от 500 рублей;
  • Выделенный сервер для панели (не VPS!) — от 5000 рублей;
  • Выделенный сервер для игровых серверов — от 5000 рублей;
  • Если собираетесь MySQL выносить отдельно — еще один выделенный сервер, можно от 1500 рублей;
  • WHMCS — в случае Nulled 0 рублей, в случае лицензионки — стоимость лицензии, от 1184 рублей;
  • Затраты на рекламу.

Что нельзя делать:

  • Продвигать проект спамом.
  • Делать черный пиар.
  • Атаковать конкурентов.
  • Стремиться к монополии.

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

Дальше. Вы не можете все время принимать тикеты даже всей командой. Создайте специальную базу знаний с основными вопросами. К примеру, заносите туда вопросы пользователей. Это сильно облегчит задачу. Также постарайтесь .чтобы игрокам было удобно играть. Найдите датацентр, доступ к которому одинаков для всех. Пинг должен быть не менее 15 мс, а с высокой нагрузкой — 30 мс. Пинг выше 30 мс уже будет мешать играть, как и слабый процессор сервера. Канал лучше найти от 500 Мбит/с до 1 Гбит/с. Чем выше пропускная способность, тем больше игроков сможет подключиться.

Наркоманством будет, если станете использовать панель типа GamePL, LitePanel или такую же. Они просто не рассчитаны на большое качество посетителей, так как используя screen запускают для каждого сервера отдельный процесс, который кушает память. А ведь игровой сервер — это не VPS/VDS, его не ограничишь жестко.

Теперь о том, почему нельзя брать VPS/VDS. Такие сервера всегда привязаны к провайдеру — например, к FistVDS, и нагрузка на них значительно усилит давление на выделенный сервер провайдера. В результате в один прекрасный момент провайдер отключит сервер вообще, чтобы сохранить ресурсы. И все клиенты, а точнее, их сервера, у Вас скажут «Айлюлю». Как показывает практика, при достаточно сильной нагрузке сервера не восстанавливают вообще.

В заключение повторю, что не стоит надеяться на халяву и общедоступное ПО. Однажды оно подведет вас. А размещение в ненадежном источнике испортит все в пару минут.

Источник

Как создать свой собственный VPS сервер на домашнем ПК

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

Мы рассмотрим несколько простых вариантов «без заморочек» со всеми плюсами, минусами и ограничениями, а так же один не самый простой вариант, прелесть которого обнаруживается, если вы собираетесь работать с тремя — четырьмя терминалами.

Простые варианты

Вариант 1. Подключение по протоколу RDP.

Этот вариант подходит не всем. Дело в том, что, во-первых, настроить подключение по протоколу RDP можно только в Windows 7/8/10 версий Pro, Ultimate и Enterprise. Если у вас версия Starter или Home, придется переустанавливать систему, что часто довольно неудобно. Ну и во-вторых, вам нужен «белый» ip, чтобы использовать RDP протокол.

На сегодняшний день для домашних и частных сетей выделены и зарезервированы несколько диапазонов серых IP адресов:

  • с 10.0.0.0 по 10.255.255.255 — используется на предприятиях и крупных компаниях;
  • c 172.16.0.0. по 172.31.255.255 — так же используются в производственных и корпоративных сферах;
  • с 192.168.0.0. по 192.168.255.255 — домашние и малые корпоративные сети.

Узнать ваш ip адрес можно из консоли. Нажмите Win+R, в появившемся окне введите cmd и в консоли впечатайте ipconfig. Найдите значение IPv4 — это и есть ваш ip адрес. Если он входит в один из диапазонов, указанных выше — ваш ip-адрес серый. Но это не страшно, вы всегда можете приобрести у вашего провайдера белый ip-адрес за символические 2-10 долларов в месяц.

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

Для подключения потребуется ввести в утилиту «Удаленный рабочий стол» название компьютера:

Вариант 2. Подключение с помощью TeamViewer.

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

Читайте также:  Как сделать электромобиль своими руками из жигулей

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

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

Вариант 3. Подключение с помощью LiteManager.

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

Программа проста в установке и управлении, а качество соединения вполне достаточное для удаленной работы с терминалами.

Вариант 4. Подключение с помощью Chrome Remote Desktop.

Это самый простой вариант из всех возможных. Все, что вам нужно иметь — аккаунт Google и возможность установить на компьютере браузер Chrome. После установки браузера и регистрации учетной записи, переходим в меню расширений:

Оттуда переходим в интернет-магазин Chrome и ищем расширение под названием Chrome Remote Desktop. После установки расширения машина автоматически добавится в список доступных.

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

Сложный вариант

Но что же делать, если нам нужно много терминалов на каждом компьютере? Устанавливать каждый из них отдельно, перетаскивая все индикаторы, советники, заново все настраивая и оптимизируя? К счастью, этого не требуется. Дальше я расскажу про немного более сложный способ, использующий виртуальные машины.

Прелесть виртуальной машины в том, что вы можете настроить всю систему один раз, а затем буквально двумя кнопками создать абсолютный клон

Прежде чем начать, нужно запастись некоторым софтом. Вам понадобятся всего две вещи: образ операционной системы для установки на виртуальную машину (подойдет любой образ Windows, но в видео я использую Windows 7) и специальная программа под названием Virtual Box.

Создание виртуальной машины

Нажимаем кнопку Создать и видим следующее окно:

Источник

Как создать свой игровой сервер?

Наверняка вы когда-то хотели, чтобы не вы играли на сервере, а у вас играли, играли на вашем сервере. Популярность игровых серверов всегда на высшем уровне, каждый раз выходят новые игры, моды, которые с нетерпением хочется опробовать. Помимо новых игр, есть игры и проекты, которые мы знаем еще с далеких 2000 годов, вспомните к примеру игру Counter-Strike 1.6, сколько же много было создано игровых серверов и как часто мы на них играли.

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

Если вы действительно хотели бы создать свой игровой сервер, первое что Вам нужно сделать, это определиться с выбором сервера, где вы будете размещать файлы игрового сервера. Для этого обратим внимание на ADMINVPS — это российская компания предоставляющая услуги по аренде сервера, хостинга, VPS/VDS и т.д.

Для начала, давайте зайдем на сайт и выберем услугу VPS/VDS. После этого авторизуйтесь и пройдите процедуру регистрации VPS/VDS. На данном сайте процедура регистрации и оформления очень проста и займет у вас не более 10 минут. После оформления вы получите бесплатное администрирование, бесплатное бэкап место, круглосуточную поддержку, которая может Вам в решении ваших проблем.

Сайт предоставляет множество услуг, не только сервера, но и хостинг для ваших сайтов.

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

Поэтому с хостингом Вам также может помочь ADMINVPS.

Почему именно VPS/VDS сервера?

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

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

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

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

О том, как работать с плагинами, мы поговорим в другой статье.

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

Переходите по ссылки и приобретайте свой хостинг – ADMINVPS

Читайте также:  Что можно сделать из гранита своими руками

Источник

Agones, создаем многопользовательский игровой сервер. Архитектура и установка

Agones (от др.-греч. agōn — «соревнование») позволяет развернуть кластер игрового сервера используя Kubernetes с возможностью Auto-Scaling. Этот open-source проект был создан в 2018 году, уже набрал 2500 звезд, был на Google I/O 2019, и на Хабре, к великому удивлению, еще не был упомянут. В топике описан краткий экскурс в архитектуру и инструкция по запуску тестового сервера на локальной машине. Если интересно, добро пожаловать под кат, вперед!

Описание проекта

Agones представляет собой Custom Resource (расширение Kubernetes API).

Проект в действительности требует большего внимания, так как позволяет запускать единичный игровой сервер (GameServer) или же целый «флот» серверов (Fleets) посредством конфигурационных yaml файлов, через Agones API. В свою очередь, каждый сервер дает оповещения о его жизненном цикле (GameServer lifecycles), описывая текущий статус (health checking, connection information). Сервера в кластере имеют возможность автоматического масштабирования (Fleet Autoscaling), которые интегрированы с базовыми возможностями Kubernetes. В дополнение, есть вывод статистики на панели (dashboard) с помощью Prometheus, Grafana или Stackdriver, экспортируются метрики посредством OpenCensus, что позволяет добавить собственный экспортер. Пример dashboard’a в Stackdriver:

Архитектура, основные элементы

Сам по себе Agones берет на себя задачу запуска, автоматического расширения и хостинга игровых серверов используя в основе Kubernetes. Это позволяет сосредоточиться на разработке самого сервера многопользовательской игры, вместо разработки ее инфраструктуры и дальнейшей поддержки. Можно использовать любой игровой сервер, который может быть запущен на linux, причем он может быть написан на любом языке программирования.

Agones Kubernetes API делится на три основных пакета (packages), в каждом из которых находятся ресурсы: agones.dev (GameServer, GameServerSet, Fleet), allocation.agones.dev (GameServerAllocation), autoscaling.agones.dev (FleetAutoscaler). Как и в других ресурсах Kubernetes для их запуска используется yaml файлы.

Краткое описание каждого ресурса:

  • GameServer — создает некий шаблон, который позволяет использовать обычные Pod параметры, с некоторыми дополнениями, такие как hostPort и containerPort для игрового сервера. Agones SDK предоставляет дополнительный контейнер «помощник» (sidecar), с которым GameServer в процессе будет постоянно общаться
  • GameServerSet — структура данных для нескольких GameServer, очень схоже с отношением между Depoyment и ReplicaSet
  • Fleet — создает несколько готовых GameServer, используется GameServerAllocation для распределения ресурсов
  • GameServerAllocation — запрашивает GameServer из Fleet для использования и помечает, что он готов для использования игроками, благодаря этому GameServer не будет автоматически удален
  • FleetAutoscaler — автоматически расширяет или, наоборот, уменьшает количество серверов во Fleet

Диаграмма (отсюда) показывает жизненный цикл GameServer ресурса:

Фиолетовыми стрелками отмечена работа Agones SDK, красным — API пользователя, синим — контроллер игрового сервера, желтым — контроллер приложения.

Установка

В данном и последующих разделах используются команды с инструкции на официальном сайте, с некоторыми дополнениями. Рекомендуется использовать Kubernetes версии 1.12 (протестировано разработчиками). Для теста на локальном компьютере можно использовать minikube, который потребует kubectl и гипервизор (Hyper-V или VirtualBox) поддерживаемый операционной системой.

Для установки кластера и Agones необходимо запустить следующие команды:

Последняя команда скачивает конфигурационный файл Agones создающий Custom Resource Definitions (CRD) через Kubernetes API.

Запуск GameServer

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

Для подтверждения того, что сервер работает можно использовать NetCat, для linux программа обычно идет в поставке с системой, для windows её нужно скачать, к примеру здесь. NetCat нужно запустить с параметром -u (UDP запрос), указывая адрес minikube (лучше скопировать адрес с команды minikube ip ) и активный порт GameServer:

Если после запуска команды в консоли появится ответ «ACK: hello», то сервер работает, его можно выключить следующей командой, которая инициализирует :

Статус сервера проверяется командой kubectl describe gameserver , он должен поменяться на Shutdown.

Вносим изменения в GameServer

Используя предыдущий пример изменим ответ сервера. Для начала скопируем репозиторий проекта:

Из корневой папки проекта запустим следующее, чтобы создать docker image и сохранить его в minikube. Для windows предварительно нужно запустить minikube docker-env | Invoke-Expression , для linux eval $(minikube docker-env) . Это позволит создавать docker images напрямую в minikube.
Создадим docker image:

Эта команда может занять некоторое время, так как весь репозиторий проекта будет копироваться в image. Этого можно избежать, если в директории оставить только папку sdks, файл main.go и Dockerfile.

Далее в examples\simple-udp\gameserver.yaml изменим строку 28 на image: agones-go:modified и создадим новый GameServer:

Проверим изменения и выключим сервер:

Если после запуска команд в консоли появится ответ «ACKNOWLEDGED: hello», то внесенные изменения прошли успешно.

Запускаем сервер локально

Итерировать изменения для удобной разработки можно и без Kubernetes, используя только Agones SDK. Во время работы игрового сервера SDK общается через TCP с маленьким gRPC сервером, который Agones запускает в контейнере под тем же namespace. Такой контейнер в Kubernetes называется sidecar. Поэтому, для локальной разработки необходимо запустить процесс SDK. Для этого потребуется запустить его исходный файл с параметром -local , который включает режим ‘local mode’. Этот режим говорит процессу быть в пассивном режиме и никуда не подсоединяться, только лишь выводить логи в консоль, чтобы можно было видеть, что делает SDK во время работы игрового сервера.

Скачать последний agonessdk-server можно в релизах официального репозитория проекта. По умолчанию, после запуска SDK сервера создается болванка конфигурации GameServer, которая используется для GameServer() и WatchGameServer() SDK запросов. При запуске можно указать и собственный конфигурационный файл в формате yaml или json, для этого потребуется параметр -file или его сокращенная версия -f вместе с параметром -local .

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

Источник