avatar_qr100

Как запустить сервер в интернете и локальной сети?

Автор qr100, 2012 Март 18, 00:52

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ключевые слова [SEO] серверлокальная сетьинтернет

qr100

Скромно. Основа вывода сервера в Интернет и одновременная работа с локальной сетью.
Вопросов возникает много, проблемы всего 4.
1) параметры запуска.
2) используемый патч.
3) у вас стоит ADSL модем или роутер.
4) у вас нет своего внешнего IP адреса, хотя бы динамического. И здесь только если заказывать услугу выделенного внешнего адреса у провайдера. Звоните в техподдержку провайдера, узнавайте о предоставление внешнего адреса, подключайте услугу, а только потом читайте решение оставшихся 3-х проблем.

Параметры запуска и патч для Windows. (проблема 1-ая и 2-ая)
-console – параметр не влияет на работу сети, просто я буду его указывать, потому что предпочитаю запускать сервер в консольке, без gui интерфейса. Команда только для Windows серверов.
+sv_lan – параметр указывает серверу КС, что мы работаем с локальной сетью или нет. 1/0 – соответственно.
+ip – параметр советую опустить, тем, кто использует Windows, и никогда не указывать. Он указывает серверу на каком адресе мы будем работать. Адрес должен принадлежать вашему компьютеру. Так как нам нужно работать на все интерфейсы, т.е. и на инет и на локалку, то можно ставить +ip 0.0.0.0, можно просто не указывать его и сервер будет по умолчанию работать на всех адресах, что «найдёт» на вашем компьютере.

+port – параметр указывает на каком порту будет работать сервер. Если не указывать, то будет стандартный порт – 27015. Параметр указывает для того, что бы можно было сделать несколько серверов, а т.к. на одном порту два сервера вешать нельзя, то можно написать +port 27016 и сервер будет работать на 27016 порту.
-nomaster – если вы не хотите что бы сервер был виден в поиске серверов, фаворитах или хистори КС, то укажите, если хотите, что бы он там маячил и на него могли зайти увидев в поиске, и не зная заранее вашего адреса, то не ставьте этот параметр.
Внимание: данный параметр может стать не значительным или вовсе не работающим при наложение различных патчей. Подробности узнавайте в спецификации каждого конкретного патча. (например при использование dproto данный параметр должен присутствовать! в манах по установке это пишут)

Все остальные параметры не критичны для работы с сетью, не будем их рассматривать. На этом форуме есть полный список параметров, используйте поиск. Из нашего списка параметры в сборе примерно выглядят так (для примера, но помним что порт и nomaster писать исключительно из личных соображений): -console +sv_lan 1 +port 27015 –nomaster.
Обратите внимание на знаки «+» и «-» перед параметрами. Они имеют решающие значение. Параметры с «+» можно указать в server.cfg. Так что следите, что бы они не были и там и там, а то значения могут менять и при запуске будет одно, а из конфига поменяется на другое и будете ломать голову. Так же это отразится при смене карты, т.к. настройки возьмутся уже из конфига.

Тут более полный список параметров: /index.php?topic=15493.0

Закрываем тему параметров.

Дальше нам нужно выяснить каким образом вы подключаетесь к Сети (Сеть с большой буквы имеется ввиду Интернет).
1) Вы включили компьютер. К вам в компьютер идёт кабель откуда то с лестничной клетки. Для доступа в Сеть вам нужно запустить нечто с рабочего стола или из сетевых подключений (это нечто - vpn соединение). В таком случае в 99% случаев у вас есть внешний ip и он является только вашим, т.е. на него можно конектиться и попасть на ваш компьютер. Вам остаётся только правильно воспользоваться набором параметров, который я описал выше.
2) Вы включили компьютер. К вам в компьютер идёт кабель откуда то с лестничной клетки. У вас сразу есть Интернет, но при этом у вас нет роутера/ADSL модема. В таком случае вам лучше прочитать 4 пункт проблем, написанной в самом начале этой статьи, ибо это ваш случай. Провайдер раздаёт Интернет со своего оборудования в подъезде и через него выходят ещё десяток, а может быть и сотня, пользователей и у вас один на всех адрес.

Роутер или модем. (проблема 3-я)
По сути проблема из-за этих двух устройств появляется потому, что люди не знают как они работают, а точнее по средством чего они маршрутизируют трафик. (трафик – все скачанные/отданные объёмы информации проходящая через ваше устройство). Знали бы – делали всё сами. Кто знает – молодец, выскакивать не обязательно.
Случай первый: у вас есть роутер или модем. вы включаете компьютер и Интернет уже есть.
Параметры сетки такие:
1) локальная машина
адрес компа: 192.168.1.2
адрес шлюза: 192.168.1.1 (внутренний адрес вашего роутера/ADSL модема)

2) роутер/ADSL модем
У роутера/ADSL модема есть внешний адрес, который они получили от Интернет провайдера после того, как подключились к серверу провайдера (там забита учётная запись указанная в договоре с провайдером, адрес сервера. Устройство само подключается и следит за соединением).

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

Цитировать192.168.0.0/16 (192.168.0.0 - 192.168.255.255)
маска /16 = 255.255.0.0

172.16.0.0/12 (172.16.0.0 - 172.31.255.255)
маска /12 = 255.240.0.0

10.0.0.0/8 (10.0.0.0 - 10.255.255.255)
маска /8 = 255.0.0.0

- эти диапазоны зарезервированы под малые или большие локальные сети, офисного или городского масштаба.
Если у вас нечто похожее на описанную мной конструкцию то у вас на роутере/ADSL модеме настроен NAT.
Как работает NAT и что он вообще делает(моя редакция, простыми словами)?:
NAT это протокол маршрутизации. Он служит преобразователем адресов локальных устройств в (ну допустим) один внешний адрес. Т.е. если вы сидите за устройством с NAT, и вы обладаете адресом вида 192.168.1.2, то NAT все пакеты идущие с этого адреса маркирует и выпускает в Сеть уже со своим внешним адресом (внешним адресом полученным роутером/ADSL модемом от провайдера). Когда пакеты возвращаются с информацией он проверяет маркировку и, уже зная на какой внутренний адрес отправить пришедшие пакеты, направляет их на локальный адрес.
Здесь становится понятна проблема – люди из Сети ломятся на ваш адрес, попадают на модем, которому и принадлежит ваш внешний адрес и всё... протокол NAT работает только в одну сторону и не знает куда ему девать пакеты пришедшие извне, без маркировки. Максимум что можно добиться в таком случае – подключиться к самому роутеру/ADSL модему но понятно, что клиентом Counter Strike это не получится =).
Решение есть и оно очень простое – пробросить внешний порт на внутренний адрес. Что это значит? – расскажу опять немного теории. Все сетевые приложения работают по определённому протоколу. Будь то набор протоколов TCP/IP или UDP. (есть ещё, остальное нас не интересует). В чём в них разница – нам тоже не интересно. А так же сетевые приложения работают на каком либо порту. Порты эти виртуальные. Для UDP в его классическом применение вообще нет понятия порт, но в КС оно имеется – так уж разработчики придумали обмен между клиентом и сервером, а зачем и почему для нас сейчас тоже не важно. КС работает по умолчанию на 27015 UDP порту. Параметры позволяют сменить порт (об этом читать в начале статьи). Теория кончилась.
Когда клиент КС коннектится на адрес принадлежащий роутеру/ADSL модему, то он по мимо адреса есть ещё и порт коннекта – вот именно по нему и можно узнать, что делать с трафиком пришедшим на роутер/ADSL модем! Само решение звучит просто – перебросить 27015 порт протокола UDP на внутренний адрес, т.е. на ваш компьютер, где запущен сервер CS.
Реализация. Открываем любимый браузер, вбиваем туда адрес основного шлюза(смотреть в сведениях о сетевом подключении) и жмём на кнопку <Enter>. Логин и пароль для доступа ищите где хотите (в документации указаны заводские стандартные учётные данные или у того, кто настраивал, если не подходит). Далее надо найти настройки NAT (NAT settings). У каждого производителя это в разных местах, так что полазайте там просто, думаю, что за пол минуты найдете. Дальше либо Virtual server или Port forwarding – тоже зависит от производителя устройства. Обычно даётся минимум 4 поля для заполнения:
- Port Range – внешний порт или диапазон портов(нам нужен 27015)
- IP address (Local IP) – на какой адрес кидать (из примера 192.168.1.2)
- Local Port – на какой порт локальной машины (указывайте тот же, что и внешний. В вашем случае нет смысла ставить разные значения) (27015)
- Выбрать потокол – нужен нам протокол (UDP)
Возможно ещё будет Protocol No. и Description – заполнять не обязательно, но в дискрипшн лучше записать что то типа «это сервер кс на моём компе». Что бы не забыть потом что это такое, и когда пробросов со временем может появиться десяток, будет видно что это такое + другим настройщикам будет понятно что это такое.
После применения и перезагрузки устройства будет проброшен порт 27015 и теперь кто будет по этому номеру порта и по протоколу UDP конектиться к вашему внешнему адресу, будет автоматически переброшен на ваш компьютер, как говорят, за NAT`ом.

Случай второй: у вас есть роутер или модем. вы включаете компьютер и что бы был Интернет надо запустить нечто с рабочего стола или из сетевых подключений.
1) Ваш роутер/ADLS модем настроены в режиме bridge.
2) После запуска и соединения в 99% случаев у вам присвоится внешний ip и он является только вашим, т.е. на него можно конектиться и попасть на ваш компьютер. Вам остаётся только правильно воспользоваться набором параметров, который я описал в начале статьи.

Я пишу 99%, а не 100%, потому что после этого вам всё равно может выдаваться ip не смотрящий в Сеть, а он лишь будет являться очередной лесенкой NAT. Всё зависит от заморочек провайдера.


Опосля.
В виду того, что у провайдера ограниченное количество ip адресов, который он может выдавать своим клиентам и, как правило, ввиду экономической выгоды/мотивации ip адресов меньше чем абонентов, то вам может выдаваться динамический ip адрес, который при следующем коннекте будет уже другой. И, допустим, вы сказали ваш внешний ip вашему товарищу, а после повторного подключения соединения к провайдеру у вас уже другой адрес, то понятное дело, что ваш товарищ уже обладает не актуально информацией и воспользоваться ей не может... С этим тоже уже давно научились бороться!

Dynamic DNS.
Это такая штука, которая позволяет на ваш ip адрес назначить не просто доменное имя типа bravo.homenet.ru, а ещё поддерживает динамическое обновление адреса для этого доменного имени. Как бы не менялся ваш адрес, ваше доменное имя будет всегда ссылаться на новый адрес. Но всегда должен быть запущен dyndns клиент (или как его назвали на dyndns.com - dyndns updater). Уже во всех современных роутерах и ADSL модемах есть встроенный dyndns клиент. У кого нет роутера/ADLS модема или на устройстве нет dyndns клиента, можно скачать программу с официального сайта: dyndns.com
Итак, как же?
Идём на dyndns.com и регистрируемся. Кто сидит без роутера или ADSL модема, под Windows, тому СЮДА. Там можно увидеть в правом верхнем углу сайта кнопку цвета детской неожиданности с надписью «Download Now» (даунлоад нау – скачать сейчас). Качайте. Это как раз тот самый DynDNS Updater. (400Кбайт весит).
После захода под своей учётной записью:
1) Смотрим на меню слева и жмём «My Account»
2) Дальше в первом столбике мы нажимает «My Hosts»
3) Затем на странице находим «Add New Hostname»
---a. Видим поле для ввода имени хоста и рядом напротив можно выбрать домен в котором это имя будет. Например если вписать bravo, а выбрать домен ath.cx, то доменное имя в итоге получится bravo.ath.cx
---b. Wildcard вам не надо, не ставьте галочку.
---c. Service type ставим Host with ip address
---d. Дальше надо указать IP адрес, что бы можно было завести запись в DNS сервере. Просто необходимый пункт и без него нельзя завершить создание домена. Укажите любой. Можно нажать на Use auto detected ip address ... и туда вставится ваш текущий Ip адрес. Но я рекомендую всё же изменить его, что бы было сразу видно работу dyndns клиента, после ввода настроек в нём и проверке, обновился ли адрес или нет.
---e. Галочка mail routing вам не нужна. Это на тот случай, если надо, что бы dns сервер передавал ещё и MX записи нужные для почтовых серверов.
Скажу сразу, что многие доменные имена уже заняты и придётся как то подбирать и выбирать из того, что есть. Зарегистрированные доменные имена он выдать вам не может.

Итак, запись доменного имени на DNS сервере мы создали. Теперь надо научиться автоматически обновлять ip адрес у этого доменного имени.

Далее инструкция для тех, кто не может/не хочет использовать клиент DynDNS роутера/ADSL модема. Вы скачивали DynDNS Updater. Запускайте инсталлятор. При установке лучше всё оставить так, как там уже стоит, за исключением галочки Install DynDNS Updater as a Windows Service. Дальше просто клацаем по кнопка Agree, Next или что там ещё будет, что бы только установить таки эту программу.
Запускаем. Сразу спрашивает логин и пароль – вводите учётные данные, которые вы только что регистрировали. Дальше оно ищет все ваши зарегистрированные хосты. Находит и выводит их список. Ну у вас там наверное будет один хост. Ставите галочку. Жмёте Apply. Всё. Белая галочка, в зелёном кружке в левом нижнем углу программы свидетельствует о том, что у вас всё пучком. Можно закрыть окно программы. Её иконка будет висеть в трэе (рядом с часами), откуда её можно лёгко достать при необходимости. В самой программе есть все необходимые ссылки для управления акаунтом и добавления новых хостов, что бы не лазить по сайту в поисках куда там нажать, что бы добавлять хосты.

Для тех, кто решил использовать DynDNS клиент своего роутера или модема.
... Вам придётся искать где эти настройки у вас в роутере/ADSL модеме. Я, например, использую роутер Asus WL500W, и у меня это в меню IP Config – Miscellaneous -> DDNS Setting. (wl500*, wl600* не отличаются в этом плане от wl500w |wl600* -ADSL модемы).
1) На вопросы типа «Enable the DDNS Client?» Ставите естественно «YES». Я к тому, что бы не было такого, что вы забыли просто включить DDNS клиент, а настройки забили и удивлялись бы, почему оно не фурычит.
2) Server – скорее всего у вас надо будет выбрать из списка. Выбирайте www.dyndns.com (модет стоять www.dyndns.org – это старый их адрес, и он тоже рабочий)
3) User Name or E-mail Address –скорее всего у вас будет просто User Name, а у меня вот так вот. Тем не менее в Asus WL500* сериях авторизация по e-mail не работает, так что пишите имя пользователя.
4) Hostaname – тот хост который мы регистрировали (можно любой из зарегистрированных вами взять) – из примера: bravo.ath.cx
5) Enable wildcard? - нам не надо, т.е. «NO»

Всё. Жмите применить. Перезагружайте роутер/ADSL модем и проверяйте, обновляется ли ваш хост при смене ip у вас. Должно быть всё пучком.

прошу замечания и дополнения!

Редакция статьи за 30 июня 2011г

Кредиты:

bravo

Похожие темы (5)