# База знаний.

<figure><img src="/files/YWgHpEVznSXRlHD0qhxk" alt=""><figcaption></figcaption></figure>

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

{% hint style="info" %}
Если по какой-либо причине Вы не нашли ответ на ваш вопрос, Вы всегда можете обратиться к нам в техническую поддержку в [панели управления](https://my.qwins.co).
{% endhint %}

1. Установка программного обеспечения:
   * Предоставляем детальные инструкции по установке различных программ на разных операционных системах. Это включает в себя шаги по загрузке и установке программ, а также активации лицензий, если требуется.
   * Мы также можем предоставить руководства по устранению распространенных проблем, которые могут возникнуть в процессе установки программного обеспечения.
2. Использование наших услуг:
   * Мы предлагаем подробные инструкции по использованию наших услуг и функций. Это может включать регистрацию на нашем веб-сайте, создание аккаунта, настройку профиля и основные действия, которые пользователь может выполнять с помощью нашего сервиса.
3. Поддержка и решение проблем:
   * Если у Вас возникают проблемы с установкой программного обеспечения или использованием наших услуг, мы предоставляем поддержку и руководство для их устранения.
   * Наши базы знаний содержат часто задаваемые вопросы и ответы на них, а также решения для типичных проблем, с которыми сталкиваются пользователи.

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


# Ответы на частозадаваемые вопросы.

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

<figure><img src="/files/VQcWRdndunU3falj3iQx" alt=""><figcaption></figcaption></figure>

1. **Какая виртуализация используется для создания VPS?**

Ответ: KVM.

2. **Возможно-ли заказать дополнительные IP адреса к серверу?**

Ответ: Да, возможно. Количество не ограничивается, Вы можете приобрести столько IP адресов, сколько Вам потребуется.&#x20;

3. **В каких странах расположены виртуальные серверы?**

Ответ: Германия, Нидерланды, Финляндия, Эстония, Польша, Швеция. Город в котором размещается сервер Вы можете узнать на сайте qwins.co при покупке сервера.&#x20;

4. **Трафик безлимитный?**

Ответ: Трафик безлимитный при использование его в политике fair use. Торренты разрешены, в случае если это не несет жалоб на услугу, а также не создает коллосальные нагрузки по сети.&#x20;

5. **Как долго ждать активации сервера?**

Ответ: до 120 секунд.

6. **Какие ОС поддерживаются на вашем хостинге?**

Ответ: Ubuntu, Debian, CentOS, Alma Linux и Windows.&#x20;

7. **VPN разрешен?**

Ответ: Да, мы не запрещаем устанавливать VPN на наших серверах.

9. **Какие способы оплаты у вас имеются?**

Ответ: Мы поддерживаем оплату банковской картой различных стран, криптовалюты и Perfect Money.

10. **Имеется ли тестовый период?**

Ответ: Нет. Вы можете заказать сервер, а если он не будет соответствовать Вашим требованиям, мы с радостью расширим его функционал или вернём Вам деньги согласно нашей [политике возврата средств](https://qwins.co/client/terms.pdf).


# Что такое IOPS?

<figure><img src="/files/dOeFvDkVxh6FNwOnPj7n" alt=""><figcaption></figcaption></figure>

### Введение <a href="#vvedenie" id="vvedenie"></a>

IOPS (Input/Output Operations Per Second) — это стандартная метрика, используемая для оценки производительности хранилища, включая жёсткие диски (HDD) и твердотельные накопители (SSD). Этот показатель имеет решающее значение в веб-хостинге, виртуальных серверах и выделенных серверах, так как он напрямую влияет на скорость обработки данных и общую производительность всей системы.

IOPS измеряет количество операций ввода/вывода, которые устройство хранения может выполнить за одну секунду. Одна операция обычно представляет собой чтение или запись блока данных.

### Значение <a href="#znachenie" id="znachenie"></a>

На серверах IOPS определяет, насколько быстро сервер может читать и записывать данные. Это критически важно для приложений с высокими требованиями к производительности, таких как большие базы данных или корпоративные веб-сайты.

{% hint style="info" %}
На виртуальных и выделенных серверах от QWINS Hosting не установлено никаких лимитов на количество IOPS. Это позволяет Вам использовать накопители в полной мере без искусственных ограничений.
{% endhint %}

### Влияние на IOPS <a href="#vliyanie-na-iops" id="vliyanie-na-iops"></a>

* Скорость диска: Как правило, SSD-накопители обеспечивают гораздо более высокий IOPS по сравнению с HDD.

{% hint style="info" %}
На наших виртуальных серверах используются только NVMe-накопители.
{% endhint %}

* Размер блока данных: Большие блоки данных могут снижать IOPS, так как на обработку каждой операции требуется больше времени.
* Очередь команд: Глубина очереди команд (количество операций, ожидающих обработки) также влияет на IOPS.

Исходя из вышеперечисленной информации можно сделать вывод, что IOPS — ключевой показатель производительности для систем хранения данных, влияющий на скорость и производительность всех типов серверов.


# Регистрация в панели управления и дальнейшее управление ей.

Все просто!

<figure><img src="/files/8rPqahWP8wc66VlnU6Z1" alt=""><figcaption></figcaption></figure>

1. Переходим на сайт, где находится [панель управления](https://my.qwins.co/billmgr?func=register). Заполняем форму, в ней нужно указать почтовый адрес и придумать собственный пароль, либо сгенерировать его. (пароль должен содержать минимум 8 символов).

<figure><img src="/files/ehXVg0btjqGQFLOPJotg" alt=""><figcaption></figcaption></figure>

Все. Теперь Вы успешно завели аккаунт в нашей панели управления. Поздравляем Вас!

<figure><img src="/files/tbjFvKxqsbp0Add9oQeb" alt=""><figcaption></figcaption></figure>


# Восстановление пароля от панели управления

Не беда, если Вы забыли свой пароль, то его можно восстановить.

<figure><img src="/files/cmdP4OTf2iXhqURYYMgV" alt=""><figcaption></figcaption></figure>

Переходим на страницу [восстановления пароля](https://my.qwins.co/billmgr?func=recovery) и заполняем свои данные в виде почты.

<figure><img src="/files/8hgcU0xujlJLAK0cctt5" alt=""><figcaption></figcaption></figure>

Готово! Мы запросили сброс пароля от нашей учетной записи.&#x20;

<figure><img src="/files/pXRsFK4pQ87mvWmmPq18" alt=""><figcaption></figcaption></figure>

Теперь нам необходимо перейти к почтовому ящику, там нас будет ждать письмо. Если оно Вам не поступило, то попробуйте подождать пару минут, либо проверить папку "Спам".

<figure><img src="/files/p5Dq9t4vlZhPftsm76qc" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/skCf6mybpfoG5WlEioLp" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/obK7VLFIlqarHSFYeqRY" alt=""><figcaption></figcaption></figure>


# Подключение двухфакторной аутентификации в панели управления

<figure><img src="/files/o3cCXdHOsTk4arbhUAgS" alt=""><figcaption></figcaption></figure>

Для того, что бы подключить двухфакторную аутентификацию в панели управления, Вам нужно перейти на [страницу ](https://my.qwins.co/billmgr?startform=usrparam)и выбрать пункт "Двухэтапная аутентификация".

<figure><img src="/files/LkBQk3ovnmavn7un1Z18" alt=""><figcaption></figcaption></figure>

После того, как мы нажали Включить двухэтапную аутентификацию Вам нужно отсканировать QR код или переписать код вручную.&#x20;

<figure><img src="/files/OAsJBZm1s2uu2NJBbkz7" alt=""><figcaption></figcaption></figure>

После того, как мы отсканировали QR код или переписали код в приложение, у Вас появится аккаунт.

<figure><img src="/files/pNif6RovxrKIHpomQdjS" alt=""><figcaption></figcaption></figure>

Нам потребуется ввести шестизначный пин-код в поле "Временный пароль".

<figure><img src="/files/2S7LOHnk2gOmdyzhaN8I" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/IkJUIu14iPpd7BoJDlnq" alt=""><figcaption></figcaption></figure>


# Как заказать услугу?

<figure><img src="/files/t34F4zwK5wA58SFhwvZ6" alt=""><figcaption></figcaption></figure>

Переходим на страницу заказа услуг, возьмем в пример [виртуальных серверов](https://my.qwins.co/billmgr?clickstat=yes\&p_num=1\&startform=vds), вы же можете выбрать и [выделенные серверы](https://my.qwins.co/billmgr?clickstat=yes\&p_num=1\&startform=dedic), либо же другой тип услуг.

<figure><img src="/files/2RovDbpxLioxpEKSsEdS" alt=""><figcaption></figcaption></figure>

В нашем случае будет конфигурация 1 vCore / 1 GB RAM / 10 GB NVMe. Нажимаем на кнопку "Заказать"

<figure><img src="/files/6abUuKuiAV5iHKK6SaqT" alt=""><figcaption></figcaption></figure>

Выбираем нужную операционную систему, по желанию также можем указать SSH ключ.

Успех! Ваш товар уже в корзине, если у Вас имеется промокод, то Вам будет необходимо указать его. Если ничего менять не нужно, то переходим далее и нажимаем на "Перейти к оформлению".

<figure><img src="/files/YfbatmxoQ5oWRoIdObP1" alt=""><figcaption></figcaption></figure>

Отлично, все готово! Нам необходимо выбрать нужный метод оплаты.&#x20;

<figure><img src="/files/9RsokXaLlxR6LgpXBqdp" alt=""><figcaption></figcaption></figure>

Теперь нам нужно проверить, все ли мы правильно выбрали и указали. Если все верно, то переходим к оплате.&#x20;

<figure><img src="/files/tkkeyYVD0a6J3udj2elR" alt=""><figcaption></figcaption></figure>

Успех! Заказ оформлен. Ваша услуга активируется в ближайшее время, а данные для подключения придут на почту, либо будут доступны в инструкции к услуге.

<figure><img src="/files/8Y7cqKR5IpTJLrf6e40u" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/aUCJfwwKVg8yzZzVLhvm" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/NxsUZwn1iM9wY64CAhlz" alt=""><figcaption></figcaption></figure>


# Создание тикета в панели управления

<figure><img src="/files/cH2q1tYa0izvUohHFhAt" alt=""><figcaption></figcaption></figure>

Для создания обращения в техническую поддержку нам нужно перейти на [страницу](https://my.qwins.co/billmgr?clickstat=yes\&p_num=1\&startform=clientticket).

<figure><img src="/files/cZUn4VCEaH9umBzU7q5J" alt=""><figcaption></figcaption></figure>

После того, как мы нажали кнопку создать, нам необходимо заполнить следующие поля:

* Вводим название своего обращения, выбираем услугу, отдел и заполняем обращение.

<figure><img src="/files/meaFThddFEuoolUe5vLU" alt=""><figcaption></figcaption></figure>

После чего Вам потребуется выбрать отдел, куда будет направлено обращение. Их 2. Техническая поддержка и отдел продаж.&#x20;

<figure><img src="/files/u2YkvtivMZXZisoI2W9w" alt=""><figcaption></figcaption></figure>

Если ваш вопрос связан с услугой, то ее нужно выбрать при создание тикета, если вопрос не связан с услугой, то выбирать услугу не требуется.

<figure><img src="/files/KjvMolIsv6xqFGPF35Mk" alt=""><figcaption></figcaption></figure>

* Переходим к составлению самого обращения, сообщение нужно написать в поле Описание. Постарайтесь расписать все подробно, дабы агенты поддержки не уточняли Ваш вопрос.&#x20;

<figure><img src="/files/OVBtiwqtEd5p2nJWLd94" alt=""><figcaption></figcaption></figure>

Отлично, мы составили целое обращение в отдел продаж хостинга. Нажимаем кнопку "Создать" и после чего Вас автоматически перенаправит в тикет.

<figure><img src="/files/SkUvLBYCsBWNXFgGK7K0" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/3EQ5T9xJuNoejxKeVuf0" alt=""><figcaption></figcaption></figure>


# Переустановка ОС

<figure><img src="/files/lDxQoD2v7MoFi94zqZVl" alt=""><figcaption></figcaption></figure>

Для того, что бы перейти в панель управления Вашей услугой Вам потребуется воспользоваться кнопкой "Перейти" из навигационного меню.

<figure><img src="/files/Vfwe3ZnvgkZS2DUEtMyQ" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/SzT6BFdejLFoc0j9LGEj" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/9N2AjnbnBBio9pPaKufC" alt=""><figcaption></figcaption></figure>

Готово! Теперь дожидаемся, когда услуга перейдет в статус Active, обычно, это не более 120 секунд.&#x20;

<figure><img src="/files/exp4g4vDzqVZ9AgTfAeM" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/zj7hKeT5moFobeCFtBnv" alt=""><figcaption><p>письмо с почты</p></figcaption></figure>

Перейдем к подключение. Мы используем программу [Termius](https://termius.com), она очень удобная.

После запуска программы нам нужно нажать кнопку New host.

<figure><img src="/files/2Cz5vcHlTP5Emvp409MZ" alt=""><figcaption></figcaption></figure>

Теперь нам потребуется заполнить 3 обязательных поля, а именно: IP, Username, Password.

<figure><img src="/files/TEN6j6bA4l54lWb2OIWj" alt=""><figcaption></figcaption></figure>

После ввода всех данных нажимаем кнопку Connect. Нам высвечивается предупреждение, нам потребуется нажать на кнопку Add as new.

<figure><img src="/files/FfEmXAc11TYpEgR29fTr" alt=""><figcaption></figcaption></figure>

Готово, мы подключились к нашему серверу и можем продолжить работу с ним.

<figure><img src="/files/MgSYmMDzaIVB7hSJKk1e" alt=""><figcaption></figcaption></figure>


# Нагрузка на сервере

<figure><img src="/files/UrmGYqBHcsMSZghY6BBe" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/c7xyxhjaYFoVjtgjDfsb" alt=""><figcaption><p>нагрузка на сервер.</p></figcaption></figure>


# Изменение пароля от сервера

Удобный вариант смены пароля от Вашего сервера через веб-панель VMmanager 6 или вручную.

<figure><img src="/files/ZMgKaBOjTggz7tObwv40" alt=""><figcaption></figcaption></figure>

## Изменение пароля через ПО VMmanager 6.

После активации услуги Вам на электронную почту приходит письмо со всеми данными от сервера, например:

<figure><img src="/files/pcLgQDE7UkZbCU46ofBH" alt=""><figcaption></figcaption></figure>

Нам необходимо перейти по ссылке <https://vm.qwins.co>, ввести **имя пользователя**, а затем **пароль** от панели управления (на скриншоте подчеркнута строка пароля).

<figure><img src="/files/tBj9IqE9csAbXu5c89Fv" alt=""><figcaption></figcaption></figure>

После авторизации мы попадаем в саму панель, где на главной странице видны все наши в**иртуальные серверы**.

<figure><img src="/files/DXylNODaBi0Hx59k1rxe" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/gPTMOGobq3yaaq3rNH3U" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/cMBjbtKTUnhWh4UmxN84" alt=""><figcaption></figcaption></figure>

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

{% hint style="danger" %}
Изменение пароля также затрагиваются и sFTP доступа.
{% endhint %}

## Ручное изменение пароля

Для того, что имени пароль на сервере с установленной ОС Linux, вам потребуется прописать:

```
passwd 123123 123123
```

123123 - это будет Ваш новый пароль для подключения.

Что бы изменить пароль на сервере с Windows, вам потребуется открыть командную строку от имени администратора и прописать.

```
net user admin 123123 123123
```

123123 - это будет Ваш новый пароль для подключения.

{% hint style="danger" %}
admin - если установлена ОС Windows 10 или 11.

Administrator - если установлена ОС Windows Server 2012 R2, 2016, 2019, 2022.
{% endhint %}


# Подключение к серверу через SSH

<figure><img src="/files/by5oUyNtEjRmW4UgGggc" alt=""><figcaption></figcaption></figure>

Мы рекомендуем использовать программу для подключения от [Termius](https://termius.com/download/windows).

После того, как мы скачали программу нам необходимо нажать на New host.

<figure><img src="/files/2Cz5vcHlTP5Emvp409MZ" alt=""><figcaption></figcaption></figure>

В открывшемся боковом меню заполняем обязательные 3 поля, а именно: IP, Username, Password.

<figure><img src="/files/TEN6j6bA4l54lWb2OIWj" alt=""><figcaption></figcaption></figure>

Готово, теперь нажимает Connect.

Здесь высвечивается предупреждение, не стоит обращать внимания и нажимаем Add as new.

<figure><img src="/files/FfEmXAc11TYpEgR29fTr" alt=""><figcaption></figcaption></figure>

Готово! Мы попали на сервер и можем начинать свою работу.

<figure><img src="/files/MgSYmMDzaIVB7hSJKk1e" alt=""><figcaption></figcaption></figure>


# Подключение через SSH ключи

Беспокоитесь за безопасность своего сервера? Вам необходимо активировать метод авторизации через SSH-ключ, а теперь подробнее!

<figure><img src="/files/DIaQoaBPH42CxEle083U" alt=""><figcaption></figcaption></figure>

## Установка через Windows

Скачайте и запустите приложение [**PuTTYgen**](https://www.puttygen.com/).

<figure><img src="/files/9pSPaxp28CHUdCBzsByr" alt=""><figcaption></figcaption></figure>

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

После выполнения действий мы видим следующие данные:

<figure><img src="/files/EyjWD9HSZFpgcUxBCKR3" alt=""><figcaption></figcaption></figure>

В строке **Public key for pasting** находится подготовленный текст, который нам нужно использовать позже.

По желанию в строке **Key passphrase** Вы можете указать **дополнительный код** для своего ключа, который будет **необходимо вводить при каждом подключении** к серверу, мы укажем слово **qwins**. Затем Вам необходимо нажать на кнопку **Save public key**, чтобы дополнительно сохранить **публичный ключ**, который был указан выше. А также нажать **Save private key** и сохранить файл **приватного ключа**, который нам и потребуется для дальнейшего подключения к серверу.

{% hint style="warning" %}
Название файлов ключей может быть любым, это ни на что не влияет.
{% endhint %}

Мы сохранили и получили 2 файла:

<figure><img src="/files/kNOUHYEgCG8bQ4qywppA" alt=""><figcaption></figcaption></figure>

## Есть два варианта, как можно закрепить SSH-ключ на сервере:

## Использование утилиты nano

После подключения к серверу нам необходимо использовать команду:

```
nano /root/.ssh/authorized_keys
```

Мы зашли в панель редактирования файла **authorized\_keys**, который отвечает за настройку **SSH-ключей**.

<figure><img src="/files/xroNijXZqT9YrO1NEnrx" alt=""><figcaption></figcaption></figure>

В данный момент файл пуст, нам необходимо полностью скопировать весь текст из окна в **PuTTYgen**:

<figure><img src="/files/3GiOcZxPxXvzHVPuYqDi" alt=""><figcaption></figcaption></figure>

Затем вставляем его в редактируемый файл **ПКМ** (правой кнопкой мыши).

<figure><img src="/files/l1aO3XZDBCp4PbyvS6lT" alt=""><figcaption></figcaption></figure>

Нажимаем сочетание клавиш **Ctrl + X**

<figure><img src="/files/PtYtVuZohdAUdvKERwqo" alt=""><figcaption></figcaption></figure>

Подтверждаем сохранение файла, введя букву **Y**.

**SSH-ключ** успешно привязан к нашему серверу.

## Передача данных через sFTP

Подключаемся к нашему серверу и видим на главной странице список файлов, переходим в каталог **.ssh**

<figure><img src="/files/xyYtP9RivJMFfeg3mJh6" alt=""><figcaption></figcaption></figure>

Здесь мы видим файл **authorized\_keys**, в данный момент он пуст, его размер составляет 0 байт.<br>

<figure><img src="/files/fbOrGOiySUph9BCNmUd2" alt=""><figcaption></figcaption></figure>

Нажимаем **ПКМ** и открываем файл

<figure><img src="/files/zn3V5groETrEXL7b4zua" alt=""><figcaption></figcaption></figure>

Сюда вставляем тот же самый публичный ключ из **PuTTYgen**.

<figure><img src="/files/KkWiAjN6Ntrwbrc7afeD" alt=""><figcaption></figcaption></figure>

Сохраняем изменения и отправляем файл на сервер.

<figure><img src="/files/CX3QEhtM1XwR04QWCe69" alt=""><figcaption></figcaption></figure>

Готово, **SSH-ключ** установлен.

## Подключение через SSH-ключ <a href="#podklyuchenie-cherez-ssh-klyuch" id="podklyuchenie-cherez-ssh-klyuch"></a>

При открытии программы **PuTTY** мы попадаем в стандартный интерфейс, нам необходимо ввести **IP-адрес** сервера.

<figure><img src="/files/iCMTo8lOhroGppHuda5j" alt=""><figcaption></figcaption></figure>

В левом меню раскрываем вкладку **SSH** и переходим в **Auth**.

<figure><img src="/files/cOf5RblGOWSGUQnB9ftB" alt=""><figcaption></figcaption></figure>

Здесь нам нужно выбрать местоположение файла **приватного ключа** (обратите внимание, не публичного!) с расширением **.ppk**

<figure><img src="/files/jSpBf3Om2Xqs6WSQyo3r" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/jSVbzsRBu0eHrCwnqmFV" alt=""><figcaption></figcaption></figure>

После введения имени пользователя у нас запрашивают **Passphrase-код** (при генерации ключа мы указывали **qwins**), вводим.

<figure><img src="/files/T635CxNXh1leR9XEiEJW" alt=""><figcaption></figcaption></figure>

## Как сохранить данные сервера для быстрого входа?

Вам необходимо ввести **IP-адрес** сервера, а также привязать свой **приватный SSH-ключ**. Далее указываем название сохраняемой сессии.

<figure><img src="/files/cMsEBI0eZhLxRbFdxdca" alt=""><figcaption></figcaption></figure>

Сессия успешно сохранена.

<figure><img src="/files/shwimiXlXvOSXmep0cmW" alt=""><figcaption></figcaption></figure>

Еще Вы можете указать перед **IP-адресом** **имя пользователя**, чтобы ускорить процесс входа, вот так:

{% hint style="warning" %}
**имя\_пользователя**@**IP-адрес**
{% endhint %}

<figure><img src="/files/7GUDzHOVKkpQNaVQPXy2" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/4tJK55LFYYckE4L5rYiL" alt=""><figcaption></figcaption></figure>

Вводим. Готово, мы подключились!

<figure><img src="/files/Wd2JPo5amPajCEmsoH5l" alt=""><figcaption></figcaption></figure>


# Java \[Linux]

<figure><img src="/files/C6Y7uUlgHHOsGSyYgXpq" alt=""><figcaption></figcaption></figure>

## Использование Ubuntu <a href="#ispolzovanie-ubuntu" id="ispolzovanie-ubuntu"></a>

{% hint style="info" %}
Инструкция протестирована на дистрибутивах Ubuntu 18.04, 20.04, 22.04
{% endhint %}

{% tabs %}
{% tab title="Java 8" %}

```
apt-get -y update
```

Ожиданием некоторое время, данный процесс может занять 1-2 минуты. По завершении появится строка для ввода команд от имени пользователя.

<figure><img src="/files/gynn5xFLZ2NKZYWsVtjS" alt=""><figcaption></figcaption></figure>

Используем универсальную команду для установки OpenJDK 8

```
sudo apt install -y openjdk-8-jdk
```

Дожидаемся загрузки и установки всех файлов.

<figure><img src="/files/xplMvxIGk0Y0TmQkKflW" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Java 11" %}

```
apt-get -y update
```

Ожиданием некоторое время, данный процесс может занять 1-2 минуты. По завершении появится строка для ввода команд от имени пользователя.

<figure><img src="/files/2ep8pOTPN16VZf4bcpsP" alt=""><figcaption></figcaption></figure>

Используем универсальную команду для установки OpenJDK 11

```
sudo apt install -y openjdk-11-jdk
```

Дожидаемся загрузки и установки всех файлов.

<figure><img src="/files/P0tjw1tZM0EMMYsXWPn6" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Java 17" %}

```
apt-get -y update
```

Ожиданием некоторое время, данный процесс может занять 1-2 минуты. По завершении появится строка для ввода команд от имени пользователя.

<figure><img src="/files/VzW4RVW5PIKljmd67TPA" alt=""><figcaption></figcaption></figure>

Используем универсальную команду для установки OpenJDK 17

```
sudo apt install -y openjdk-17-jdk
```

Дожидаемся загрузки и установки всех файлов.

<figure><img src="/files/pyBYL8VVay5hsIZhXX7o" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Проверка" %}

<figure><img src="/files/dGokRVNAr4COYlF5PmOd" alt=""><figcaption></figcaption></figure>

```
java -version
```

{% endtab %}

{% tab title="Удаление" %}

<figure><img src="/files/SEzOLPc1rktUhKIaTdlI" alt=""><figcaption></figcaption></figure>

```
apt-get -y purge openjdk* java*
```

{% endtab %}
{% endtabs %}

## Использование Debian <a href="#ispolzovanie-debian" id="ispolzovanie-debian"></a>

{% hint style="info" %}
Инструкция протестирована на дистрибутивах Debian
{% endhint %}

{% tabs %}
{% tab title="Java 8" %}

```
apt install apt-transport-https gnupg wget software-properties-common -y
```

Добавляем репозиторий.

```
wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | apt-key add -
```

```
add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/
```

```
apt-get update
```

Устанавливаем OpenJDK 8.

```
apt-get install adoptopenjdk-8-hotspot -y
```

<figure><img src="/files/28mHGB1lTWHfCFuMtMv3" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Java 11" %}

```
apt-get -y update
```

Ожиданием некоторое время, данный процесс может занять 1-2 минуты. По завершении появится строка для ввода команд от имени пользователя.

<figure><img src="/files/29EQVn1owAH8Tr0nDem0" alt=""><figcaption></figcaption></figure>

Используем универсальную команду для установки OpenJDK 11

```
apt-get install -y openjdk-11-jdk
```

Дожидаемся загрузки и установки всех файлов.

<figure><img src="/files/ArfV7NF70LMaHiakDZUP" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Java 17" %}

```
apt-get -y update
```

Ожиданием некоторое время, данный процесс может занять 1-2 минуты. По завершении появится строка для ввода команд от имени пользователя.

<figure><img src="/files/qaCSZA4hIhFkS3JAZROx" alt=""><figcaption></figcaption></figure>

Используем универсальную команду для установки OpenJDK 17

```
apt-get install -y openjdk-17-jdk
```

Дожидаемся загрузки и установки всех файлов.

<figure><img src="/files/BH6Ksqad7zYMU2eA7ymH" alt=""><figcaption></figcaption></figure>

{% endtab %}

{% tab title="Проверка" %}

<figure><img src="/files/G6a3WWAdp2eDS1ImA59h" alt=""><figcaption></figcaption></figure>

```
java -version
```

{% endtab %}

{% tab title="Удаление" %}

<figure><img src="/files/cF7nVhoaluIF2gnMJcBB" alt=""><figcaption></figcaption></figure>

```
apt-get -y purge openjdk* java*
```

{% endtab %}
{% endtabs %}


# Screen

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

<figure><img src="/files/uDaXeoot7k602E1y3rDD" alt=""><figcaption></figcaption></figure>

## Процесс установки: <a href="#process-ustanovki" id="process-ustanovki"></a>

```
apt-get install -y screen
```

Запуск и основы работы со Screen:

{% hint style="danger" %}
Во всех случаях для корректной работы важен регистр.
{% endhint %}

Для создания нового окна **screen** используйте команду:

```
screen -S <NAME>
```

Для перехода в уже созданное окно используйте:

```
screen -x <NAME>
```

Чтобы посмотреть список всех созданных **screen**, используйте команду:

```
screen -ls
```

Чтобы перейти или выйти со **screen**, используйте сочетание клавиш:

```
CTRL + A + D
```


# Развертывание MikroTik RouterOS

<figure><img src="/files/XlTJ0oDuXyShlt1hAV8y" alt=""><figcaption></figcaption></figure>

## Введение <a href="#vvedenie" id="vvedenie"></a>

MikroTik RouterOS — это универсальная операционная система, которая превращает стандартное оборудование в полноценный маршрутизатор. Подобное решение широко используется для организации корпоративных сетей и даже в домашних условиях благодаря своей гибкости и доступности.

{% hint style="success" %}
В данной инструкции используется ОС Ubuntu 20.04
{% endhint %}

{% hint style="info" %}
Рекомендуемые технические требования.

CPU: 1 vCore \
RAM: 512 MB \
Накопитель: 1 GB \
\
Эта информация является справочной и не требует особого внимания, поскольку для использования MikroTik RouterOS на наших виртуальных серверах подойдет любой доступный тарифный план.
{% endhint %}

## Подключение к серверу <a href="#podklyuchenie-k-serveru" id="podklyuchenie-k-serveru"></a>

Подключитесь к Вашему серверу. Если необходимо, можете воспользоваться нашей [подробной инструкцией](https://wiki.qwins.co/faq/podklyuchenie-k-serveru-cherez-ssh) по выполнению этой операции.

## Установка RouterOS <a href="#ustanovka-routeros" id="ustanovka-routeros"></a>

Обновите список пакетов и репозиториев системы.

```
apt-get update
```

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

```
apt-get install unzip -y
```

Для загрузки актуальной версии ПО перейдите на [веб-сайт Mikrotik](https://mikrotik.com/download), на котором Вам необходимо раскрыть раздел «Cloud Hosted Router» и выбрать актуальную стабильную версию «Raw disk image». Далее скопируйте ссылку данной кнопки.

<figure><img src="/files/XqXuxMzj9Jx942WdtEgm" alt=""><figcaption></figcaption></figure>

Загрузите выбранный образ используя **wget** или **cURL**.

```
wget https://download.mikrotik.com/routeros/7.12/chr-7.12.img.zip
```

По завершении загрузки следует распаковать архив.

```
unzip chr-*.img.zip
```

Следующим шагом необходимо записать образ системы на виртуальный диск сервера.

{% hint style="info" %}
«**of=/dev/vda**» — означает путь до накопителя Вашего сервера\
\
Вы можете использовать команду `lsblk` для проверки названий разделов.
{% endhint %}

```
rm chr-*.img.zip; for file in chr-*.img; do dd if="$file" of=/dev/vda bs=4M oflag=sync; done
```

Инициализируем запуск системы RouterOS. Введите следующие команды по очереди.

```
echo 1 > /proc/sys/kernel/sysrq
```

```
echo b > /proc/sysrq-trigger
```

## Настройка <a href="#nastroika" id="nastroika"></a>

Для подключения к серверу теперь следует использовать VNC, получить доступ к которому Вы можете в [панели управления](https://vm.qwins.co). Для этого перейдите по ссылке и авторизуйтесь, используя данные, отправленные в первом письме активации сервера.

{% hint style="warning" %}
Обратите внимание, что данные для входа в [личный кабинет](https://my.qwins.co) и [панель управления](https://vm.qwins.co) не являются идентичными.
{% endhint %}

В качестве более простого метода Вы можете использовать кнопку перехода в панель управления в [личном кабинете](https://my.qwins.co) на странице виртуальных серверов. Авторизация произойдет автоматически.

<figure><img src="/files/5YJL8wefDIeNd9ohAdj3" alt=""><figcaption></figcaption></figure>

Непосредственно в самой панели управления перейдите на страницу используемого сервера и кликните на кнопку «VNC» в правом верхнем углу.

<figure><img src="/files/lAL1jzZcVKMuhMGpT5RS" alt=""><figcaption></figcaption></figure>

В открывшемся окне для авторизации укажите логин «admin» и пропустите ввод пароля кнопкой «Enter».

<figure><img src="/files/p3y524Ieow1LvEfrBj5A" alt=""><figcaption></figcaption></figure>

Далее, при необходимости, ознакомьтесь с лицензией на использование ПО, указав «y» в качестве ответа на первый вопрос. В нашем случае мы указываем «n» за отсутствием необходимости в ознакомлении.

Следом установите новый пароль, который будет использоваться для доступа к системе.&#x20;

{% hint style="danger" %}
Обратите особое внимание на этот пункт, поскольку он является ключевым в соблюдении мер безопасности.
{% endhint %}

<figure><img src="/files/FRCGpMiUr72vWaTLzJUm" alt=""><figcaption></figcaption></figure>

Теперь снова вернитесь в [панель управления](https://vm.qwins.co) и перейдите в раздел настройки IP-адресов. Отсюда Вам необходимо выписать пару значений, а именно IP-адрес и шлюз (они выделены на скриншоте ниже).

<figure><img src="/files/AQdLjRWrdmTHw44rPFz4" alt=""><figcaption></figcaption></figure>

После этого отредактируйте соответствующие значения и введите по очереди команды в VNC.

К сожалению, CTRL+V не сработает.

```
ip address add address=77.105.164.157/32 network=10.0.0.1 interface=ether1
```

```
ip route add dst-address=0.0.0.0/0 gateway=10.0.0.1
```

{% hint style="info" %}
Где «77.105.164.157» — замените это на адрес Вашего сервера. «10.0.0.1» — это нужно заменить на Ваш шлюз.
{% endhint %}

При корректном выполнении всех операций теперь Вы можете перейти на веб-сайт панели управления MikroTik RouterOS. Для этого достаточно просто ввести адрес Вашего сервера в адресной строке браузера, после чего перед Вами откроется страница авторизации, на которой необходимо указать тот же логин «admin» и пароль, который Вы установили в ходе настройки через VNC.

<figure><img src="/files/kEC4bargnGN3gA9PzZ4O" alt=""><figcaption></figcaption></figure>

Установка завершена! Теперь Вы можете приступить к настройке сетевых интерфейсов, IP-адресов, маршрутизации и других функций, доступных в MikroTik RouterOS, чтобы полностью настроить Ваш сервер для использования в сетевой инфраструктуре.

<figure><img src="/files/KC4NGhuYdsdOqGMDOJRC" alt=""><figcaption></figcaption></figure>


# Измерение скорости сети

Здесь Вы сможете наглядно узнать, как измерить скорости сети на сервере. Для примера мы использовали операционную систему Ubuntu 22.04.

<figure><img src="/files/QDQutmU9a4fthbX40BbB" alt=""><figcaption></figcaption></figure>

Установка:

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

```
sudo apt-get -y update
```

Через пару минут процесс завершился, далее нам нужно установить утилиту curl.

```
apt-get install -y curl
```

Теперь скачиваем файлы самого Speedtest были загружены на наш сервер.

```
curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | sudo bash
```

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

<figure><img src="/files/Kre6fJ7mTlUIt7VcUS0x" alt=""><figcaption></figcaption></figure>

После этого нам нужно установить сам Speedtest.

```
sudo apt-get install speedtest
```

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

```
speedtest
```

<figure><img src="/files/TUDmVaUqpx0xJe8Yinzn" alt=""><figcaption><p>YES нужно ввести самому в ручном порядке.</p></figcaption></figure>

После принятия лицензии у Вас появится меню, где будут все данные.

<figure><img src="/files/w0sitgrqUPvoi8tRRBtF" alt=""><figcaption></figcaption></figure>

По ссылке Result URL можно будет ознакомиться с результатами подробнее или сохранить их.

### Метод под Ubuntu 24.04

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

```
wget -qO- "https://install.speedtest.net/app/cli/ookla-speedtest-1.2.0-linux-x86_64.tgz" | tar xz && ./speedtest
```


# Ограничение доступа RDP по IP-адресу

<figure><img src="/files/cCEm38A05NN5pcc9yZyY" alt=""><figcaption></figcaption></figure>

**RDP (Remote Desktop Protocol)** — протокол, который позволяет удаленно работать с сервером.

Для настройки, откроем **«Панель управления → Система и безопасность»**.

<figure><img src="/files/nqDSlgq8IeXeuMhGxPHp" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/DpIOkt1Nu9fMqjTOr0g1" alt=""><figcaption></figcaption></figure>

Далее перейдем в меню **«Брандмауэр защитника Windows»**.

<figure><img src="/files/FJMYOJZLiOS4MuiZ4rp0" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/LH1O8OBUrzjzGxhzQ2Zv" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/OHBThiZp2ezKFUYTqiM5" alt=""><figcaption></figcaption></figure>

Далее найдем активное правило **«Удаленный рабочий стол - пользовательский режим (входящий трафик TCP)»**.

<figure><img src="/files/WsmsilNSXjo3mjhcuPQN" alt=""><figcaption></figcaption></figure>

В **Свойствах** данного правила есть вкладка **Область**, на которой задаются адреса или диапазоны адресов, с которых можно будет подключаться по RDP. Чтобы отфильтровать внешние подключения по IP-адресам, нужно в список **Удаленный IP-адрес** прописать все IP-адреса, диапазоны адресов и подсети, с которых будет разрешено подключение к этому компьютеру по RDP.

<figure><img src="/files/GYM25UG1Ieqo5rZhedqm" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/4rYv7hDCrfGzfusKkuU2" alt=""><figcaption></figcaption></figure>

После добавления каждого желаемого IP-адреса нажмите кнопку **ОК**, чтобы внести изменения и отправляем сервер в перезагрузку.


# Подключение к серверу по RDP

<figure><img src="/files/NfmUsZDyHGQ097SZtJDl" alt=""><figcaption></figcaption></figure>

Подключение к серверу осуществляется через протокол удаленного доступа к рабочему столу.&#x20;

Логины для операционных систем Windows бывают разные.\
Для Windows 10 / 11 используется логин - admin.\
Для серверных версий - Administrator.

Используем сочитание клавиш Win + R, нам нужно вписать команду **mstsc.**

<figure><img src="/files/hj6otGPJsV9vi9dU462b" alt=""><figcaption></figcaption></figure>

Далее открывается приложение Windows для подключения к серверам по протоколу **RDP**.

<figure><img src="/files/0V5ujDZZUqz9Tz5QUIRi" alt=""><figcaption></figcaption></figure>

Нажимаем на "Показать параметры".

<figure><img src="/files/RKSsfmDgdPUsHLLmFqVG" alt=""><figcaption></figcaption></figure>

В строке "Компьютер" нам нужно задать определенный IP адрес сервера, к которому мы хотим подключиться, а в поле пользователь - полученный логин.

<figure><img src="/files/7w3P1GKeEJnWykPkfbIm" alt=""><figcaption></figcaption></figure>

После ввода пароля от сервера мы можем нажать на "Запомнить меня", что позволит более не вводить данные от сервера и подключаться автоматически. После ввода всех данных и обозначения всех полей нажимаем кнопку "ОК".&#x20;

<figure><img src="/files/gAPAvYCaxgF8K3rq6bVY" alt=""><figcaption></figcaption></figure>

Нам выскакивает предупреждение, где нужно нажать на кнопку "Больше не выводить запрос о подключение к этому компьютеру" и после этого нажать на "Да".

<figure><img src="/files/m736IX7ZapUaK6EeIwGj" alt=""><figcaption></figcaption></figure>

Готово, мы успешно подключились к серверу по протоколу удаленного рабочего стола.


# Скачивание файлов на Windows Server 2019

Наверняка многие сталкивались с проблемой, что стандартный установленный браузер Internet Explorer на Windows Server не позволяет скачать нужный файл, давайте исправим!

<figure><img src="/files/QspbHkmKFjX20uLU9bml" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Все действия в инструкции выполняются на ОС **Windows Server 2019**.
{% endhint %}

Подключаемся к удаленному серверу. Открываем **Internet Explorer**, выбираем рекомендуемые настройки и нажимаем **OK**.&#x20;

<figure><img src="/files/DeEMYZM726od7XpPGQHO" alt=""><figcaption></figcaption></figure>

При попытке перейти на страницу сайта нам вылазит еще одно предупреждение, оставляем галочку и нажимаем **OK**.

<figure><img src="/files/OhbPUftIQ2FvUAzNkQO5" alt=""><figcaption></figcaption></figure>

Затем система безопасности также показывает ошибку, убираем галочку с пункта, который продолжит отправлять предупреждения и нажимаем кнопку **Close**.

<figure><img src="/files/TBqAWD4Is17zU3MRYe1T" alt=""><figcaption></figcaption></figure>

Если попробовать скачать файл, то выскачет сообщение о том, что настройки безопасности не позволяют совершить данное действие, нажимаем **ОК**.

<figure><img src="/files/xWKPnQgBp3KJeZTZcSWo" alt=""><figcaption></figcaption></figure>

Следом нам нужно найти и выбрать шестеренку в верхнем углу браузера. Затем нажимаем на кнопку **Internet options**.

<figure><img src="/files/0O5ZDXQLvOoLiOoR74wx" alt=""><figcaption></figcaption></figure>

Перед нами открывается специальное окно, переходим в раздел **Security** (**Безопасность**).

<figure><img src="/files/vUqZwrsuZjqH3ZOPiyXB" alt=""><figcaption></figcaption></figure>

Убираем галочку с пункта **Enable Protected Mode** и нажимаем на кнопку **Custom level**. В открывшемся окне листаем вниз и ищем данные разделы:

<figure><img src="/files/GwniymXHmsdtOnDTHQgv" alt=""><figcaption></figcaption></figure>

Выставляем в обоих значение **Enable**.

{% hint style="info" %}
Первый — обозначает возможность скачивания **любых файлов**.&#x20;

Второй — отвечает за скачивание **шрифтов**.
{% endhint %}

Далее нажимаем на кнопку **OK** для применения параметров, вылазит предупреждение:

<figure><img src="/files/4S2oV0NdT17iyTTdRFkQ" alt=""><figcaption></figcaption></figure>

Соглашаемся с изменениями, выбрав кнопку **Yes**.

В последнем окне настроек нажимаем **Apply** для полного применения изменений:

<figure><img src="/files/ppFbjwZ19EexiWyoVUll" alt=""><figcaption></figcaption></figure>

Нам опять же выскакивает предупреждение, соглашаемся и закрываем окно настроек.

<figure><img src="/files/WHB9nVvyCQO5Vl70b7Yl" alt=""><figcaption></figcaption></figure>

Теперь мы без каких-либо проблем можем скачивать любые файлы с веб-сайтов. Первым делом не забудьте установить новый браузер!

<figure><img src="/files/oSk8aXQJAvMS6c6A0l7K" alt=""><figcaption></figcaption></figure>


# Брут-форсинг Windows на выделенных серверов

Обновление Windows Server под номером KB5020282 вводит функцию блокировки учетной записи администратора после 10-ти неудачных попыток ввода пароля в течение 10 минут.

<figure><img src="/files/lI601OpGGTHCPXCCIfiN" alt=""><figcaption></figcaption></figure>

Поскольку дата-центр использует статические IP-адреса, подобные брутфорс-атаки не являются редкостью и могут привести к блокировке Вашей учетной записи администратора. Вы можете изменить настройки этой функции или полностью её отключить в Локальной политике безопасности. Эту опцию можно найти в Менеджере сервера, нажав на «Инструменты», а затем «Локальная политика безопасности».

Для отключения данной функции следует установить параметр «**Account lockout threshold**» на значение **0**. После чего остальные параметры должны отключиться.

<figure><img src="/files/Azv0tEWIy53wpXZGERb0" alt=""><figcaption></figcaption></figure>

Либо, можно поступить легче, Вам потребуется открыть командную строку от имени администратора и прописать одну команду, а именно:

```
net accounts /lockoutthreshold:0
```

Это исправит проблему одним вводом команды и не потребуется трогать параметры Выше.


# Отключение гибернации

<figure><img src="/files/V4q1vSNVbxCky9Rzfa0Y" alt=""><figcaption></figcaption></figure>

### Метод №1.&#x20;

Зачастую многие сталкиваются с проблемой, что их сервер в какой-то момент может быть недоступен, по большей части всему виной режим гибернации в Windows. Это можно исправить вводом одной команды в командную строку от имени администратора.\
\
Если данный метод Вам не помог, то воспользуйтесь информацией из Метода №2.&#x20;

```
powercfg -h off
```

### Метод №2.

Переходим в настройки системы.

<figure><img src="/files/G7pQvM3r8CcX7uHH5I1J" alt=""><figcaption></figcaption></figure>

Следующий пункт выбираем "Система".

<figure><img src="/files/mY7I8wBJ0rJEjaH4iyI3" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/C7nDJMQ5W1yI2MnNkOwD" alt=""><figcaption></figcaption></figure>

Выбираем пункт "Никогда".

<figure><img src="/files/zdNnvmJHhucXuAPaQwM9" alt=""><figcaption></figcaption></figure>

Переходим в "Дополнительные параметры питания"

<figure><img src="/files/LZVQ8RRw4M2RKIHqnVBv" alt=""><figcaption></figcaption></figure>

Нажимаем на "Изменение параметров, которые сейчас недоступны".

<figure><img src="/files/41yvDM5igUR3LDlM49wf" alt=""><figcaption></figcaption></figure>

Нажимаем на "Показать дополнительные схемы".

<figure><img src="/files/3dslsUCc686rFccZcyej" alt=""><figcaption></figcaption></figure>

Здесь потребуется нажать на "Высокая производительность" и перехоим к настройкам схемы электропитания.

<figure><img src="/files/KAYDL35Ttdc84rwNjAg4" alt=""><figcaption></figcaption></figure>

Нажимаем на "Изменение параметров, которые сейчас недоступны".

<figure><img src="/files/Cak1G20ITY0XfYRV5qjK" alt=""><figcaption></figcaption></figure>

Выбираем "Отключать дисплей" и ставим там "Никогда".

<figure><img src="/files/EoIFDTsnTKcjnIuf0F5V" alt=""><figcaption></figcaption></figure>

Переходим в "Изменить дополнительные параметры питания".

<figure><img src="/files/kPOHWRFJdfDj3pbLfUsf" alt=""><figcaption></figcaption></figure>

Нажимаем на "Изменить параметры, которые сейчас недоступны".

<figure><img src="/files/IHiZazcr7VBdeeoVvbeF" alt=""><figcaption></figcaption></figure>

Задаем большое значение в разделе "Отключать жетский диск через".&#x20;

<figure><img src="/files/cWD6IBkC9457dTyUnd0z" alt=""><figcaption></figcaption></figure>

Готово, больше проблема не должна будет побеспокоить нас.&#x20;


# Установка TorrServer

<figure><img src="/files/qoxfswbq8YurKCsbEgDj" alt=""><figcaption></figcaption></figure>

TorrServer представляет собой эффективное и удобное решение для стриминга мультимедийного контента через торрент. Отличаясь простотой настройки и использования, TorrServer идеально подходит как для опытных пользователей торрентов, так и для новичков, желающих максимально упростить процесс просмотра торрент-контента.<br>

{% hint style="danger" %}
Команда QWINS Hosting не поддерживает загрузку и распространение пиратского контента.
{% endhint %}

{% hint style="success" %}
В данной инструкции используется ОС Ubuntu 20.04.\
Скрипт работает на всех актуальных версиях Ubuntu, Debian, AlmaLinux, Rocky Linux, CentOS и Fedora.
{% endhint %}

## Подключение к серверу <a href="#connection-to-the-server" id="connection-to-the-server"></a>

Подключитесь к Вашему серверу. Если необходимо, можете воспользоваться нашей [подробной инструкцией](https://wiki.qwins.co/faq/podklyuchenie-k-serveru-cherez-ssh) по выполнению этой операции.

## Установка TorrServer <a href="#installation-of-torrserver" id="installation-of-torrserver"></a>

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

```
apt-get update; rm installTorrServerLinux.sh; wget https://github.com/YouROK/TorrServer/blob/master/installTorrServerLinux.sh && bash installTorrServerLinux.sh
```

## После выполнения скрипта <a href="#following-the-execution-of-the-script" id="following-the-execution-of-the-script"></a>

После завершения загрузки укажите логин и пароль, которые будут использоваться для входа в панель управления.

{% hint style="info" %}
Отправка производится кнопкой «**Enter**».
{% endhint %}

<figure><img src="/files/oKE5cQVIIlmU4rQwLJdw" alt=""><figcaption></figcaption></figure>

Далее дождитесь полной установки TorrServer. Об этом будет свидетельствовать сообщение со ссылкой на веб-сайт.

<figure><img src="/files/OOr6PbyX8w67HOyUdbGA" alt=""><figcaption></figcaption></figure>

Перейдите по указанному адресу и произведите авторизацию.

<figure><img src="/files/39zGeTIcqDawqLx3s2PH" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/AaqAgq2zMN7NwnvRQ2cs" alt=""><figcaption></figcaption></figure>

В открывшемся окошке Вы можете указать **magnet-ссылку** или **загрузить файл** торрента. Далее используйте кнопку для добавления.

<figure><img src="/files/FKNQa1axPg6vUAf40jOB" alt=""><figcaption></figcaption></figure>

Торрент успешно добавлен. Теперь Вы можете загрузить файл формата **.m3u** для просмотра потокового кино, например, через [VLC Player](https://www.videolan.org/vlc/).

<figure><img src="/files/bnzm8T7o56suU0ocVV7B" alt=""><figcaption></figcaption></figure>

Для этого в **VLC Player** необходимо выбрать вкладку «**Media**» -> «**Open File**»

<figure><img src="/files/wF94MYQ0pdBM5jU8RR5C" alt=""><figcaption></figcaption></figure>

Наслаждайтесь классикой кино!

<figure><img src="/files/YAGbNbG4Qa5lLwsnrHv8" alt=""><figcaption></figcaption></figure>


# Запрет взаимодействия с приватными сетями

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

<figure><img src="/files/60mSU1pRRTseOBwSMfiV" alt=""><figcaption></figcaption></figure>

## Установка ufw <a href="#ustanovka-ufw" id="ustanovka-ufw"></a>

Для начала следует проверить наличие утилиты **ufw** на Вашем сервере.

```
sudo apt install ufw
```

<figure><img src="/files/O1OcqFwwKTJhCGv6sELU" alt=""><figcaption></figcaption></figure>

Далее, перед ее включением, нам следует указать важные настройки, чтобы не потерять доступ к сервисам. Разрешим порты сервисов **SSH**, **HTTP**, **HTTPS**.

```
sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443
```

Готово. Теперь включим наш файрволл.

```
sudo ufw enable
```

<figure><img src="/files/wiyNJZk6vGMByXkk6Bzk" alt=""><figcaption></figcaption></figure>

Далее мы можем проверить статус файрволла командой

```
sudo ufw status
```

<figure><img src="/files/5xidDJe0oZmqNwE6N3GG" alt=""><figcaption></figcaption></figure>

## Блокировка частных сетей <a href="#blokirovka-chastnykh-setei" id="blokirovka-chastnykh-setei"></a>

Все отлично! Теперь перейдем к блокировке приватных сетей.

{% hint style="info" %}
К ним относятся:

* 10.0.0.0/8
* 172.16.0.0/12
* 192.168.0.0/16
* 100.64.0.0/10
  {% endhint %}

Заблокировать их достаточно просто, используем команды:

```
sudo ufw deny out from any to 10.0.0.0/8
sudo ufw deny out from any to 172.16.0.0/12
sudo ufw deny out from any to 192.168.0.0/16
sudo ufw deny out from any to 100.64.0.0/10
sudo ufw deny out from any to 198.18.0.0/15
sudo ufw deny out from any to 169.254.0.0/16
```

После добавления мы можем еще раз проверить статус правил:

> ```
> sudo ufw status
>
> # Либо при помощи iptables:
> iptables-save
> ```

Теперь, если мы попытаемся обратиться к адресу частной сети, то получим ошибку. Например, через команду `ping`:

> ```
> ping 198.18.22.62
> ```

<figure><img src="/files/jqXKJDqvD8YO4IlqDb5F" alt=""><figcaption></figcaption></figure>

Все готово!

## Разблокировка сетей (при необходимости) <a href="#razblokirovka-setei-pri-neobkhodimosti" id="razblokirovka-setei-pri-neobkhodimosti"></a>

Проверяем список актуальных правил **ufw** вместе с их нумерацией:

> ```
> sudo ufw status numbered
> ```

<figure><img src="/files/kgKz7yxxTDhOg4PoshEZ" alt=""><figcaption></figcaption></figure>

И теперь мы можем удалить необходимо правило командой

```
sudo ufw delete <номер правила>
```

Например, удалим **правило №7**:

```
sudo ufw delete 7
```

<figure><img src="/files/eb63xXrPdPOyK5MK62xz" alt=""><figcaption></figcaption></figure>

Теперь при попытке повторного обращения к адресу **198.18.22.62** у нас не будет ограничений:

<figure><img src="/files/EmQ3ELtgKMynIr0SQTMW" alt=""><figcaption></figcaption></figure>

Теперь Вы умеете закрывать (и открывать) доступ своему серверу к частным сетям при помощи **ufw**.


# Работа с TCPDump

Данная утилита является полезным инструментом для перехвата и сбора пакетов, поступающих на сервер, а также исходящих от него.

<figure><img src="/files/m4syFtavp6bUs2qsUYwi" alt=""><figcaption></figcaption></figure>

## Установка TCPDump <a href="#ustanovka-tcpdump" id="ustanovka-tcpdump"></a>

Для Ubuntu/Debian:

```
apt install tcpdump
```

Для **Red Hat** / **CentOS**:

```
sudo yum install tcpdump
```

## Аргументы для команды <a href="#argumenty-dlya-komandy" id="argumenty-dlya-komandy"></a>

{% hint style="info" %}
**-c** — завершает сбор пакетов после достижения установленного количества.

**-C** — позволяет установить максимальный размер файла дампа, после достижения которого будет создан новый файл.

**-e** — выводит информацию об уровне соединения для каждого обработанного пакета.

**-F** — вывод пакетов из заданного файла, а не интерфейса.

**-f** — отображает доменное имя для каждого IP-адреса.

**-G** — создает новый файл дампа через указанное время.

**-H** — создает ограничение, ввиду которого **TCPDump** будет обрабатывать только заголовки **802.11s**.

**-i** — имя интерфейса, с которого будут собираться пакеты. Для использования всех интерфейсов сервера укажите значение **any**.

**-I** — включает режим мониторинга для указанного интерфейса (для обнаружения всех проходящих пакетов).

**-E** — используется для расшифровки трафика **IPSEC** (необходимо указать ключ для расшифровки).

**-K** — отключает проверку контрольных сумм пакетов.

**-L** — вывод поддерживаемых протоколов подключения для указанного интерфейса.

**-n** — пропуск доменных имен в дампе.

**-nn** — вывод адресов вместе с их портами.

**-q** — минимализация выводимой информации о пакетах.

**-tttt** — отображает для каждого пакета временные метки в стандартном формате.

**-v, -vv, -vvv** — более подробный вывод информации о пакетах.

**-Z** — пользователь системы, от имени которого будет создаваться файл дампа.

**-w** — имя файла, в который будет сохранен дамп (по умолчанию без этого аргумента дамп выводится в реальном времени без записи в файл).
{% endhint %}

## Использование <a href="#ispolzovanie" id="ispolzovanie"></a>

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

```
tcpdump -D
```

<figure><img src="/files/AoSuIAiLgoPWcIXBYECZ" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
На наших **виртуальных серверах** основным сетевым интерфейсом является **ens3**.
{% endhint %}

Для вывода логов нашего сетевого интерфейса в реальном времени используем команду:

```
tcpdump -i ens3
```

{% hint style="warning" %}
Не забывайте, что для **TCPDump** требуются права суперпользователя, поэтому данные команды следует выполнять от имени **root**, либо с использованием **sudo**.
{% endhint %}

После использования команды мы увидим множество бегущих строк, для остановки дампа используйте сочетание клавиш `Ctrl + C`

{% hint style="info" %}
Собранные пакеты данных имеют примерно такой вид:

`22:31:56.330185 IP fsn.qwins.co.65383 > fsn.qwins.co.ssh: Flags [P.], seq 7841:7905, ack 10730080, win 6145, length 64`

Но при использовании разных протоколов внутренности пакета могут отличаться.
{% endhint %}

Попробуем увидеть более подробную информацию о пакетах, используя аргумент `-v`

```
tcpdump -i ens3 -v
```

Теперь наши пакеты имеют более массивную структуру типа:

{% hint style="info" %}
`22:36:42.254306 IP (tos 0x0, ttl 122, id 61139, offset 0, flags [DF], proto TCP (6), length 104) fsn.qwins.co.65383 > fsn.qwins.co.ssh: Flags [P.], cksum 0x2699 (correct), seq 321:385, ack 1027616, win 6141, length 64`

В данном случае видна более подробная информация о протоколе IP-адреса(-ов):

P (tos 0x0, ttl 122, id 61139, offset 0, flags \[DF], proto TCP (6)
{% endhint %}

## Аргументы фильтрации <a href="#argumenty-filtracii" id="argumenty-filtracii"></a>

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

{% hint style="info" %}
**host** — имя хоста.

**ip** — IP-адрес.

**port** — порт.

**proto** — протокол.

**net** — адрес конкретной сети или подсети.

**src** — источник.

**dst** — получатель.

Доступные протоколы: **tcp**, **udp**, **icmp**, **arp**, **rarp**, **decnet** и т.д

Также эти аргументы можно комбинировать друг с другом.
{% endhint %}

Например, мы можем посмотреть все пакеты, которые исходят от нашего сервера к конечному адресу:

```
tcpdump dst 192.168.1.1
```

Или наоборот, все пакеты, которые исходят к нашему серверу из подсети-источника (можно также использовать конкретный **IP-адрес**, как в примере выше):

```
tcpdump src net 192.168.1.1/24
```

Для поиска пакетов необходимого размера можно использовать аргументы на примере

```
tcpdump less 48 // пакеты меньше 48 бит
tcpdump greater 128 // пакеты больше 128 бит
```

Допустим у Вас есть несколько серверов **Garry's Mod** на разных портах, и Вы хотите проверить, ведется ли на них **DDoS-атака** на текущий момент. Для этого нам подойдет команда:

```
tcpdump -nnv udp src portrange 27015-27025 -w garrysmod.dump
```

{% hint style="warning" %}
Обратите внимание на указываемый диапазон портов.

Благодаря аргументу **-w** дамп будет собран в файл **garrysmod.dump**
{% endhint %}

## Расширенные операторы <a href="#rasshirennye-operatory" id="rasshirennye-operatory"></a>

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

{% hint style="info" %}
**AND** или **&&** (оператор «**И**»)

**OR** или **||** (оператор «**ИЛИ**»)

**EXCEPT или !** (оператор «**КРОМЕ**»)
{% endhint %}

Допустим, мы хотим вывести весь трафик запросов **MySQL**, который отправляет 192.168.1.1 по порту 3306 (на любые адреса).

```
tcpdump -nnv src 192.168.1.1 and tcp dst port 3306
```

Для чтения пакетов на **Windows** Вы можете использовать программу [WireShark](https://www.wireshark.org/).


# Изменения значения MTU

<figure><img src="/files/2VulVD0VKBb8tJXlY3vI" alt=""><figcaption></figcaption></figure>

### Windows <a href="#windows" id="windows"></a>

Мы будем производить смену через утилиту **CMD**.

Для начала Вам необходимо открыть командную строку от имени администратора. Затем используем соотвествующую команду для просмотра всех существующих сетевых интерфейсов и значения **MTU**.

```
netsh interface ipv4 show subinterfaces
```

<figure><img src="/files/xcjtyu9nZnvHx9XRgXWz" alt=""><figcaption></figcaption></figure>

Получаем примерно такой вывод информации.

{% hint style="info" %}
Где **1500** (по умолчанию) — значение **MTU**. \
**Ethernet** — стандартное название интерфейса.
{% endhint %}

Далее изменим значение **MTU** специальной командой:

```
netsh interface ipv4 set subinterface "Ethernet" mtu=1400 store=persistent
```

{% hint style="info" %}
Где **Ethernet** — название сетевого интерфейса.

**1400** — новое устанавливаемое значение **MTU**.
{% endhint %}

Получаем результат.

<figure><img src="/files/TYTIEFlTZhqcFKS7wwkD" alt=""><figcaption></figcaption></figure>

### Debian / Ubuntu <a href="#debian-ubuntu" id="debian-ubuntu"></a>

Вводим команду для редактирования конфига сетевых интерфейсов, будем использовать **Nano**:

```
nano /etc/network/interfaces
```

Затем необходимо в конце соответствующего интерфейса сети добавить `mtu 1400`

<figure><img src="/files/R6ZduO4BfHdJQDxgo8J1" alt=""><figcaption></figcaption></figure>

Нажимаем **Ctrl + X**, затем **Y** для сохранения внесенных изменений.

Вводим команду для перезагрузки сервиса сети:

```
systemctl restart networking
```

<figure><img src="/files/sCk1ZiSyvUCm1Mvm7Nbn" alt=""><figcaption></figcaption></figure>


# Настройка IPTables

Это подсистема для работы с сетевыми пакетами, которая пропускает через свой фильтр все соединения на сервере. Разберем подробнее настройку IPTables.

<figure><img src="/files/7PQK91FMcaVFiVgwZMFl" alt=""><figcaption></figcaption></figure>

## Общая информация <a href="#obshaya-informaciya" id="obshaya-informaciya"></a>

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

## Debian / Ubuntu <a href="#debian-ubuntu" id="debian-ubuntu"></a>

```
[sudo] apt install iptables
```

{% hint style="info" %}
**Sudo** предназначена для использования на **ОС Ubuntu**. Для **Debian** используется обыкновенная команда.
{% endhint %}

## CentOS \[Fedora] <a href="#centos-fedora" id="centos-fedora"></a>

```
sudo yum install iptables
```

## Настройка <a href="#nastroika" id="nastroika"></a>

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

## Аргументы <a href="#argumenty" id="argumenty"></a>

{% hint style="info" %}
**-A** — добавить правило в раздел.

**-С** — проверить все правила.

**-D** — удалить правило.

**-I** — вставить правило с необходимым номером.

**-L** — вывести все правила в текущем разделе.

**-S** — вывести все правила.

**-F** — очистить все правила.

**-N** — создать раздел.

**-X** — удалить раздел.

**-P** — установить действие по умолчанию.

**-p** — установить протокол.

**-s** — указать адрес отправителя.

**-d** — указать адрес получателя.

**-i** — входной сетевой интерфейс.

**-o** — исходящий сетевой интерфейс.

**-j** — выполнить при соответствии правила.
{% endhint %}

{% hint style="info" %}
**INPUT** — отвечает за обработку входящих пакетов и подключений.

**FORWARD** — применяется для проходящих соединений. Именно сюда попадают соответствующие пакеты, которые отправлены на Ваш сервер, но не определяют его как цель доставки.

**OUTPUT** — полностью противоположно первому. Используется для исходящих пакетов и соединений.
{% endhint %}

{% hint style="info" %}
**ACCEPT** — пропустить пакет.

**DROP** — удалить пакет.

**REJECT** — отклонить пакет.

**LOG** — сделать лог-файл соответствующего пакета.

**QUEUE** — отправить пакет приложению пользователя.
{% endhint %}

## Открытие порта(-ов) <a href="#otkrytie-porta-ov" id="otkrytie-porta-ov"></a>

Для начала давайте проверим список наших правил:

```
iptables -L
```

<figure><img src="/files/3gdPqTinXwyvtuvfM6oT" alt=""><figcaption><p>Как видим, все пусто</p></figcaption></figure>

Попробуем открыть один **TCP-порт** **80** для **входящих соединений**:

```
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
```

Проверим список еще раз...

<figure><img src="/files/78PUw9uExxvNufoHyp42" alt=""><figcaption><p>Как видим, все открыто.</p></figcaption></figure>

Теперь давайте попытаемся открыть диапазон **UDP-портов** **от** **25565** **до** **25570** для **исходящих подключений**:

```
iptables -t filter -A OUTPUT -p udp --dport 25565:25570 -j ACCEPT
```

Проверим результат.

<figure><img src="/files/UACxfBh66hoirqMqUUDz" alt=""><figcaption><p>Диапазон UDP-портов доступен.</p></figcaption></figure>

Хотите закрыть **все входящие подключения** для **TCP 250**? Не проблема.

```
iptables -t filter -A INPUT -p tcp --dport 250 -m state --state ESTABLISHED -j DROP
```

<figure><img src="/files/tMtSAtN0l3dTnXyJNv5X" alt=""><figcaption><p>Готово</p></figcaption></figure>

## Удаление правил <a href="#udalenie-pravil" id="udalenie-pravil"></a>

Теперь попробуем удалить правило, которое разрешает **входящие соединения** для **TCP 80**:

```
iptables -t filter -D INPUT -p tcp --dport 80 -j ACCEPT
```

<figure><img src="/files/tUAmaYscHTszd0pKT7s8" alt=""><figcaption><p>Правило удалено.</p></figcaption></figure>

## Удаление всех правил <a href="#udalenie-vsekh-pravil" id="udalenie-vsekh-pravil"></a>

Для этого используйте команду

```
iptables -F
```

<figure><img src="/files/4FEv1jdHPqZXHMCKXIUN" alt=""><figcaption><p>Все правила успешно очищены</p></figcaption></figure>

## Сохранение созданных правил <a href="#sokhranenie-sozdannykh-pravil" id="sokhranenie-sozdannykh-pravil"></a>

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

```
iptables-save
```

<figure><img src="/files/TCBeyEVzL6Hsk9BgMCuq" alt=""><figcaption></figcaption></figure>

Получилось. Правила сохранены и будут активны даже после перезагрузки нашего сервера.


# \[DNS] Temporary failure resolving...

На случай, если у Вас возникли неполадки с работой DNS-серверов.

<figure><img src="/files/yJOGBRxxPu0Ao31QRnM7" alt=""><figcaption></figcaption></figure>

Ошибка выглядит примерно вот так:

<figure><img src="/files/ZKYcm1qUBgoeskBQEa6B" alt=""><figcaption></figcaption></figure>

Мы покажем 2 способа решения проблемы, через **SSH-доступ** и через **sFTP-доступ**.

## Используем SSH <a href="#ispolzuem-ssh" id="ispolzuem-ssh"></a>

Используем утилиту **Nano** для просмотра и редактирования файла **resolv.conf**, где производится настройка **DNS** нашего сервера. Введем команду

```
nano /etc/resolv.conf
```

Перед нами открылся редактор файла **resolv.conf**

<figure><img src="/files/LS7CY2PArF9bkGARgvdk" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Файл окажется пустым, либо в нем будет находиться текст в виде описания, это зависит от выбранного дистрибутива **Linux**.
{% endhint %}

В данном файле необходимо указать **nameserver** для Вашей **ОС**.

{% hint style="info" %}
Какой **nameserver** выбрать? Об этом подробно Вы можете почитать в самом конце статьи. В данном случае мы будем использовать **DNS** **8.8.8.8** от **Google** в качестве основного.
{% endhint %}

Пропишем в файле данный текст:

```
nameserver 8.8.8.8
nameserver 1.1.1.1
```

<figure><img src="/files/Q0k4nRHzBPF1F8ljC1mI" alt=""><figcaption></figcaption></figure>

Нажимаем сочетание клавиш **Ctrl + X** для выхода из файла. После чего нажимаем **Y** для сохранения внесенных изменений.

<figure><img src="/files/XxNcg8GJ9tfeJPnxz2Ja" alt=""><figcaption></figcaption></figure>

Далее нажимаем **Enter** для сохранения названия файла в прежнем виде.

<figure><img src="/files/AUnDzCTACYb8EacPugxe" alt=""><figcaption></figcaption></figure>

## Используем sFTP <a href="#ispolzuem-sftp" id="ispolzuem-sftp"></a>

Подключаемся к нашему серверу через **sFTP**. Следом нам нужно перейти в каталог **/etc** и найти там файл **resolv.conf**

<figure><img src="/files/TEDmfZ4C50OkcJJdtg3N" alt=""><figcaption></figcaption></figure>

Открываем его любым текстовым редактором.

<figure><img src="/files/2P3co9O1x2FhTOu3Jskd" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Файл окажется пустым, либо в нем будет находится текст в виде описания, это зависит от выбранного дистрибутива **Linux**.
{% endhint %}

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

```
nameserver 8.8.8.8
nameserver 1.1.1.1
```

<figure><img src="/files/22Abf03dOGii7SF7HKOw" alt=""><figcaption></figcaption></figure>

Отлично, сохраняем файл и загружаем на сервер.


# Мониторинг трафика через VnStat

Это простая утилита, которая позволяет увидеть статистику нагрузки сетевых интерфейсов.

<figure><img src="/files/mGokYlb4fpdDoFuucQmy" alt=""><figcaption></figcaption></figure>

Вы можете установить **VnStat** следующими командами:

**Debian/Ubuntu**

```
apt install vnstat
```

**CentOS**

```
yum install vnstat
```

Готово. Идем дальше. Мы можем настроить информацию в CLI-интерфейсе утилиты при помощи конфига по пути `/etc/vnstat.conf`.

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

<figure><img src="/files/S6TraD3J7cLsFfZTC5zm" alt=""><figcaption></figcaption></figure>

**VnStat** сохраняет базы данных статистики интерфейсов в `/var/lib/vnstat`.

При помощи команды `vnstat -i eth0` мы можем посмотреть общую статистику (если она накопилась) по нагрузке конкретного интерфейса или всех, если не указать параметр.

{% hint style="warning" %}
Вместо **eth0** укажите необходимый сетевой интерфейс.
{% endhint %}

<figure><img src="/files/hLLbgtDh9Ch3V1joIX3I" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Доступные аргументы:

* **-l** — сбор трафика в реальном времени.
* **-s** — краткий вывод информации.
* **-t** — вывод десяти дней, в которых нагрузка была самой большой.
* **-h** — информация за последний час.
* **-d** — за последний день.
* **-w** — за последнюю неделю.
* **-m** — за последний месяц.
  {% endhint %}

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

```
vnstat -l -i eth0
```

<figure><img src="/files/ZTABnnwsQFAIqOp0PPVx" alt=""><figcaption></figcaption></figure>

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

{% hint style="info" %}
На наших тарифах в Германии и Финляндии в стоимость уже включена защита от **DDoS атак**.
{% endhint %}


# Как собрать трассировку?

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

<figure><img src="/files/J9tI6DXoqdBEK30oiw9q" alt=""><figcaption></figcaption></figure>

### Linux \[Traceroute] <a href="#linux-traceroute" id="linux-traceroute"></a>

Для начала следует установить данную утилиту, если ее нет на Вашем сервере:

```
apt install mtr
```

Для **CentOS**:

```
yum install mtr
```

{% hint style="info" %}
Структура использования команд утилиты:&#x20;

**mtr «аргументы» «адрес»**
{% endhint %}

{% hint style="info" %}
Список допустимых аргументов:

* **-h** — получение краткой справки.
* **-v** — вывод версии утилиты.
* **--udp** — использовать **UDP-пакеты**, вместо стандартных **ICMP**.
* **--tcp** — использовать **TCP-пакеты**, вместо стандартных **ICMP**.
* **-4** — использование протокола **IPv4**.
* **-6** — использование протокола **IPv6**.
* **-с** — количество пакетов, которые будут отправлены.
* **-r** — сбор трассировки в фоновом режиме и вывод отчета по ее завершении.
* **-w** — выполняет такую же функцию, как и `-r` , но в более полном формате.
* **-s** — указать размер отправляемых пакетов.
* **-f** — ввод начального значения **TTL**.
* **-e** — отображение данных MPLS.
* **-n** — не использовать доменные имена для наименований узлов (будут использоваться только IP-адреса).
* **-o** — отображение только конкретных категорий данных.
* **-p** — вывод данных в построчном формате.
* **-l** — выводить информацию в неформатированном виде.
* **-a** — указать адрес интерфейса, с которого будут отправлять пакеты в ходе трассировки.
  {% endhint %}

Попробуем собрать трассировку стандартным способом:

<figure><img src="/files/SRutun9LZ8rk1IoBRcRu" alt=""><figcaption></figcaption></figure>

Например, если Вы хотите в ходе трассировки отправить 7 TCP-пакетов до хоста `wiki.qwins.co` и получить информацию об узлах в формате IP-адресов, то нам подойдет такая команда:

```
mtr --tcp -c 7 -n wiki.qwins.co
```

Результат будет таков:

<figure><img src="/files/byT1ngbNivn0Em09ffhw" alt=""><figcaption></figcaption></figure>

### Windows \[WinMTR] <a href="#windows-winmtr" id="windows-winmtr"></a>

Устанавливаем утилиту **WinMTR**. Она доступна по [ссылке](https://mirror.spacecore.info/uploads/winmtr-v092.zip). Запускаем версию программы в зависимости от разрядности Вашей операционной системы.

В поле **Host** указываем конечный сервер, к которому хотим собрать трассировку. После чего кликаем на кнопку **Start**.

<figure><img src="/files/sd2EXEMt3SKU1MiAOts5" alt=""><figcaption></figcaption></figure>

Ждем до того момента, пока не будет отправлена минимум 1000 пакетов. Обычно этого времени достаточно.

<figure><img src="/files/j1cZuVKBOeHdtSbkAKdJ" alt=""><figcaption></figcaption></figure>

Для экспорта результата трассировки в качестве текстового документа используем кнопку **Export TEXT** и сохраняем файл.

<figure><img src="/files/3XWy23XPklPbohMY1i6X" alt=""><figcaption></figcaption></figure>


# Получение серийных номеров накопителей

Рассмотрим способ получения информации о накопителях на выделенных серверах.

<figure><img src="/files/N2MJcaXiKwmMvQHxmzRP" alt=""><figcaption></figcaption></figure>

Стандартный ввод команды `lsblk` предоставит нам основную информацию о накопителях на выделенном сервере.

<figure><img src="/files/47ryQCuAluevezLg6pC2" alt=""><figcaption></figcaption></figure>

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

```
lsblk -o name,type,size,serial
```

И получим примерно такой вывод:

<figure><img src="/files/dnRE6UGkYsIpx1TBHBXC" alt=""><figcaption></figcaption></figure>

Как раз то, что нам нужно. Для каждого физического накопителя выведен его серийный номер. Кстати о физических накопителях, не стоит пробовать получить серийный номер на виртуальных серверах (**VDS**), мы не получим его ввиду виртуальности дисков, а не их физического наличия. Вывод будет примерно таким:

<figure><img src="/files/hiUgHaVYdvAL82kGwhZA" alt=""><figcaption></figcaption></figure>


# Установка FTP-сервера

Установка и создание FTP-пользователя без использования панели управления.

<figure><img src="/files/PtAEz66EdzFIHK1KgxM4" alt=""><figcaption></figcaption></figure>

#### Загрузка ProFTPD: <a href="#zagruzka-proftpd" id="zagruzka-proftpd"></a>

Системы Debian/Ubuntu:

```
apt-get install proftpd
```

CentOS:

```
yum install epel-release
yum install proftpd
```

Если сервер не запустился автоматически, используйте команду для запуска вручную:

```
service proftpd start
```

#### Ограничение FTP-пользователей пределами домашнего каталога. <a href="#ogranichenie-ftp-polzovatelei-predelami-domashnego-kataloga" id="ogranichenie-ftp-polzovatelei-predelami-domashnego-kataloga"></a>

Данная статья подразумевает работу конфигурацией **ProFTPD** "по умолчанию", а в этом случае **пользователь может выходить за пределы своего домашнего каталога** и, хотя прав на работу с другими папками у него, скорее всего, нет, но при недостаточно строгой конфигурации сервера это может быть угрозой безопасности. Решить эту проблему можно добавив одну строку в файл **proftpd.conf**:

```
DefaultRoot ~
```

Добавить ее можно в конец файла. После сохранения перезапустите **FTP-сервер**:

```
service proftpd restart
```

#### **Расположение** proftpd.conf: <a href="#raspolozhenie-proftpd.conf" id="raspolozhenie-proftpd.conf"></a>

**Файл настроек proftpd.conf может располагаться в разных местах**, в зависимости от Вашей версии ОС:

{% hint style="warning" %}
**Ubuntu**: /etc/proftpd.conf

**Debian**: /etc/proftpd/proftpd.conf

**CentOS**: /etc/proftpd.conf
{% endhint %}

#### Создание нового FTP-пользователя: <a href="#sozdanie-novogo-ftp-polzovatelya" id="sozdanie-novogo-ftp-polzovatelya"></a>

Простым **FTP-пользователям** нет необходимости иметь доступ к командной оболочке. Перед тем, как приступите к созданию новых пользователей, выполните команду:

```
echo '/bin/false' >> /etc/shells
```

Создайте **нового пользователя**:

```
useradd имя_пользователя -d /home/имя_папки -m -s /bin/false
passwd имя_пользователя
```

Командами выше мы создали пользователя (**имя\_пользователя** нужно заменить на **незанятое имя**) и соответствующую группу, назначили и создали (**ключ -m** можно опустить, если каталог уже существует) домашний каталог **/home/имя\_папки**, а также выбрали **/bin/false** в качестве командной оболочки пользователя, тем самым отключив ее в целях безопасности. Командой **passwd** мы создали пользователю **необходимый пароль**.

{% hint style="info" %}
В большинстве случаев, на данном этапе Вы уже можете подключаться с созданным пользователем к FTP-серверу, который по умолчанию работает на порте **21**.
{% endhint %}

#### Дополнительная информация: <a href="#dopolnitelnaya-informaciya" id="dopolnitelnaya-informaciya"></a>

**Доступ к командной оболочке (shell)**

Если Вы все-таки хотите **предоставлять пользователю доступ к командной оболочке**, то необходимо указать путь до любой действующей, вместо **/bin/false**, например:

```
/bin/sh
```

или же:

```
/bin/bash
```

Пользователям обычного протокола **FTP** не нужен доступ к **shell**, поэтому, будет безопаснее его не предоставлять.

**Ограничение прав FTP-пользователя:**

При необходимости **Вы можете закрыть права на запись** для пользователя, например, в домашнюю директорию, и оставить их только для какой-нибудь внутренней папки, например **upload**.

От имени **суперпользователя** измените права:

```
chmod 555 /home/имя_папки
mkdir /home/имя_папки/upload
chown имя_пользователя:имя_пользователя /home/имя_папки/upload
```

В данном случае второе **имя\_пользователя** является именем группы, которое по умолчанию совпадает с созданным Вами **именем пользователя**.

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


# Монтирование накопителей Linux

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

<figure><img src="/files/h9W1lKncKry5iyhLW0FH" alt=""><figcaption></figcaption></figure>

Монтирование накопителей производится при помощи утилиты **mount**. Обычно ее используют вместе с аргументами.

{% hint style="info" %}
**mount** «**‎параметры**» «&#x200E;**-t файловая система**» «&#x200E;**-o параметры монтирования**» «**файл накопителя**» «**конечный каталог для монтажа**»
{% endhint %}

{% hint style="info" %}

Для пользователей доступны следующие аргументы:

* **-v** — получение подробной информации в ходе выполнения операции.
* **-h** — вывод справки.
* **-V** — вывод версии ПО.
* **-a** — использовать для монтирования все устройства, указанные в **fstab**.
* **-F** — создание индивидуального экземпляра **mount** для каждого раздела.
* **-f** — «фейковое выполнение». Позволяет косвенно увидеть, что получится вследствие выполнения команды.
* **-n** — не логировать данные о монтировании в **Mtab**.
* **-l** — добавление метки накопителя к конечной точке монтирования.
* **-c** — использование исключительно абсолютных путей.
* **-r** — монтаж для последующего чтения файлов.
* **-w** — монтаж для последующего чтения и записи файлов.
* **-L** — смонтировать раздел по метке «**‎Label**».
* **-U** — смонтировать раздел по **UUID**.
* **-B** — смонтировать локальный каталог.
* **-R** — перемонтировать локальный каталог.
  {% endhint %}

## Монтирование через Mount <a href="#montirovanie-cherez-mount" id="montirovanie-cherez-mount"></a>

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

Получить список всех существующих разделов мы можем так:

```
fdisk -l
```

<figure><img src="/files/WLh2e00FU49ielEXky5x" alt=""><figcaption></figcaption></figure>

Например, смонтируем раздел **nvme1n1p3** в каталог /mnt:

```
sudo mount /dev/nvme1n1p3 /mnt/
```

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

```
sudo umount /mnt
```

Посмотреть список всех смонтированных устройств можно простым образом:

```
mount
```

## Монтирование через UUID <a href="#montirovanie-cherez-uuid" id="montirovanie-cherez-uuid"></a>

Для получения информации о **UUID** разделов нашего сервера вводим данную команду:

```
sudo blkid
```

Получаем примерно такой вывод:

<figure><img src="/files/DBFJlS77yoP5wN5jCG7m" alt=""><figcaption></figcaption></figure>

Далее переходим в конфиг, где прописана информация обо всех монтируемых при загрузке системы разделах:

```
sudo nano /etc/fstab
```

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

Допустим, если нам нужно смонтировать **NTFS-раздел**, то в данном случае следует использовать команду:

```
UUID="0x0x0x0x0" /mnt/myfolder rw,nls=utf8,gid=plugdev,umask=0002 0 0
```

Для файловых систем **FAT** и **FAT32** подойдет следующая команда:

```
UUID="0x0x0x0x0" /mnt/myflash vfat rw,exec,codepage=866,nls=utf8,gid=plugdev,umask=0002,nofail,users 0 0
```

{% hint style="info" %}
Где «**UUID=""**» — UUID накопителя, который необходимо задействовать.

«**/mnt/...**» — местоположение каталога, куда необходимо произвести монтаж.
{% endhint %}

Для актуализации внесенных изменений (монтирования накопителей) вводим команду:

```
sudo mount -a
```

## Итоги <a href="#itogi" id="itogi"></a>

Готово! Мы научились вручную монтировать накопители. Статья актуальна для большинства дистрибутивов семейства Linux.


# Подключение домена через Cloudflare

Cloudflare — это сеть серверов по всему миру. Пользователи подключают свои сайты к сети Cloudflare для увеличения скорости загрузки и защиты от DDoS-атак.

<figure><img src="/files/kwb9wQC6GwcJi7Gu26mb" alt=""><figcaption></figcaption></figure>

### Делегирование домена из Cloudflare на серверы QWINS.

Зарегистрируйтесь на [Cloudflare](https://www.cloudflare.com/), нажав **Sign Up** в правом верхнем углу.

<figure><img src="/files/MOjHTeC9z13aeToYkNMt" alt=""><figcaption></figcaption></figure>

На почту придет письмо со ссылкой для подтверждения аккаунта. Подтвердите аккаунт в письме.

\
После подтверждения введите имя вашего домена и нажмите **Add site**.

<figure><img src="/files/pdWRn0DEuVZOHsIT5OPZ" alt=""><figcaption></figcaption></figure>

Выберите подходящий тарифный план. В этой инструкции мы рассматриваем **бесплатный тариф**.

<figure><img src="/files/E7ppjfOy8bK3Eia8z3SQ" alt=""><figcaption></figcaption></figure>

После выбора тарифного плана запускается сканирование домена: Cloudflare ищет DNS-записи для вашего домена и поддоменов, чтобы затем создать их у себя в сети.

<figure><img src="/files/UJmUuqYLZPIblfR2JBu1" alt=""><figcaption></figcaption></figure>

После добавления А-записи на IP адрес сервера нажмите Continue. Скопируйте DNS-серверы, которые предлагает Cloudflare. [Следующем шагом](https://help.flexbe.ru/cloudflare/#145755035) укажите их для вашего домена.

По окончанию сканирования проверьте DNS-записи. Если какая-то из них пропущена, добавьте вручную.&#x20;

<figure><img src="/files/tRAcxMIH0AGhYmuqhRgs" alt=""><figcaption></figcaption></figure>

### Как указать NS-серверы Cloudflare на домене

<figure><img src="/files/318Rfg5sO1KYFuFXg5cL" alt=""><figcaption></figcaption></figure>

Вам нужно использовать собственные DNS-серверы. Удалите все NS-записи и добавьте только те две, что предложил Cloudflare.

<figure><img src="/files/kjjwit3EuPmDYqN5tpB5" alt=""><figcaption></figcaption></figure>

**Важно! Перенос домена на новые DNS-записи займет от 24 до 48 часов.**

### SSL-сертификат для домена на Cloudflare

\
Выберите слева раздел SSL/TLS→ Overview и активируйте галочку для SSL/TLS<br>

<figure><img src="/files/7ls27BxvqexmiJItSB9Z" alt=""><figcaption></figcaption></figure>


# Установка Apache2

Apache является кроссплатформенным ПО, поддерживает операционные системы Linux, BSD, Mac OS, Microsoft Windows, Novell NetWare, BeOS.

<figure><img src="/files/bOhejJVO9G3YZbbcNY0b" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
Перед установкой **Apache2** необходимо убедиться, что на сервере отсутствует nginx!
{% endhint %}

## Установка Apache2: <a href="#ustanovka-apache2" id="ustanovka-apache2"></a>

Для установки **Apache2** на VDS, необходимо прописать:

```
apt-get install apache2
```

## Настройка Apache2: <a href="#nastroika-apache2" id="nastroika-apache2"></a>

Для настройки **Apache2** переходим на /etc/apache2/sites-available и создаем файл по образцу site.conf:

```
<VirtualHost *:80>
        ServerName qwins.co # Указать домен сайта
        ServerAdmin admin@qwins.co # Ваш email
        DocumentRoot /var/www/html # Путь до папки с сайтом

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
```

Включаем сайт, место site.conf должно быть названия конфига, который Вы создали:

```
a2ensite site.conf
```

**Если нужно отключить сайт**, вместо site.conf должно быть названия конфиг&#x430;**:**

```
a2dissite site.conf
```

Перезагружаем **apache2**:

```
service apache2 reload
```

#### Подключение PHP к Apache2: <a href="#podklyuchenie-php-k-apache2" id="podklyuchenie-php-k-apache2"></a>

Для того, чтобы **Apache** смог корректно отображать **php** файлы, необходимо установить пакет:

```
apt-get install libapache2-mod-php -y
```

Перезагружаем **apache2**:

```
service apache2 reload
```

## Включение rewrite: <a href="#vklyuchenie-rewrite" id="vklyuchenie-rewrite"></a>

{% hint style="danger" %}
Без этой опции не будет работать 70% CMS для сайтов.
{% endhint %}

Большинство сайтов содержат файл **.htaccess** для его работы необходимо прописать:

```
a2enmod rewrite
```

Перезагружаем **apache2**:

```
service apache2 reload
```

## Включение SSL: <a href="#vklyuchenie-ssl" id="vklyuchenie-ssl"></a>

{% hint style="info" %}
Подключение SSL не обязательно, осуществляется при его наличии и Вашем желании.
{% endhint %}

Нужно включить модуль, который отвечает за **SSL**:

```
a2enmod ssl
```

Создаем еще один конфиг в /etc/apache2/sites-available, он будет отвечать за **SSL**, например site-ssl.conf:

{% tabs %}
{% tab title="site-ssl.conf" %}

```
<VirtualHost *:443>
        ServerName qwins.co # Указать домен сайта
        ServerAdmin admin@qwins.co # Ваш email
        DocumentRoot /var/www/html # Путь до папки с сайтом
        
        SSLEngine on
        SSLCertificateFile /path/to/your_domain_name.pem # Путь до публичного сертефеката
        SSLCertificateKeyFile /path/to/your_private.key # Путь до приватного сертефеката

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
```

{% endtab %}

{% tab title="Second Tab" %}

{% endtab %}
{% endtabs %}

Перезагружаем **apache2**:

```
service apache2 reload
```

## Проверка на nginx: <a href="#proverka-na-nginx" id="proverka-na-nginx"></a>

Если **apache2** поставить c nginx, то они будут конфликтовать из-за порта - 80. Так что необходимо удалить один из **web-server**. Проверяем установлен ли nginx:

```
service nginx status
```

{% hint style="info" %}
Если не будет видно огромного сообщения с информацией, значит он не установлен.
{% endhint %}

Если **nginx** установлен, нужно его удалить:

```
apt-get remove --purge nginx* -y
```

## Удаление Apache2 <a href="#udalenie-apache2" id="udalenie-apache2"></a>

Для удаления **Apache2** используйте:

```
apt-get remove --purge apache2* -y
```


# Установка Nginx

Nginx - это веб-сервер с большим количеством возможностей, сделанный по последним канонам технологий. Его используют самые крупные компании, такие как ВКонтакте, Google, Facebook и другие.

<figure><img src="/files/M5CgWqlgpigX0YxWOtBO" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Перед установкой убедитесь, что у Вас не установлен **Apache2.**
{% endhint %}

## Установка веб-сервера <a href="#ustanovka-veb-servera" id="ustanovka-veb-servera"></a>

Его установка крайне проста, используйте следующую команду:

```
apt-get install nginx -y
```

## Настройка Nginx <a href="#nastroika-nginx" id="nastroika-nginx"></a>

Вам необходимо перейти в каталог **/etc/nginx/sites-available** и создать файл типа «**site.conf**».

Вставьте в конфиг и отредактируйте следующее:

{% tabs %}
{% tab title="site.conf" %}

```
server {
    listen       *:80;
    server_name  qwins.co; # домен сайта
    client_max_body_size 1000M; # максимальный размер файла, переданного через сайт
    error_page 404 = @notfound;
    location / {
        root   /home/site/qwins; # путь до сайта
        try_files $uri $uri.html $uri/ @extensionless-php;
        index  index.html index.php;
    }
    # Подключения PHP, если не нужен, то стираем с 13 по 21 строку
    location ~ \.(php|html|htm)$ {
        try_files $uri =404;
        root   /home/site/qwins; # путь до сайта
        fastcgi_pass unix:/run/php/php7.0-fpm.sock; # путь до php 
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        include /etc/nginx/fastcgi_params;
    }
}
```

{% endtab %}

{% tab title="Second Tab" %}

{% endtab %}
{% endtabs %}

Перезагружаем **Nginx**:

```
service nginx restart
```

## Примечания к PHP <a href="#primechaniya-k-php" id="primechaniya-k-php"></a>

{% hint style="info" %}
**PHP** не обязателен для работы с **Nginx**. Это примечание важно только для тех, чей сайт использует **PHP**.
{% endhint %}

## Подключение SSL-сертификата к Nginx <a href="#podklyuchenie-ssl-sertifikata-k-nginx" id="podklyuchenie-ssl-sertifikata-k-nginx"></a>

{% hint style="info" %}
Подключение **SSL** не обязательно, осуществляется при его наличии и Вашем желании.
{% endhint %}

```
server {
    listen 80;
    server_name qwins.co; # домен сайта
    return 301 https://$server_name$request_uri; # редирект с http на https
}

server {
    listen 443 ssl http2;
    server_name qwins.co; # домен сайта

    root /var/www/qwins; # путь до сайта
    index index.html index.htm index.php; # индексные страницы

    access_log /var/log/nginx/qwins.app-access.log; # логи успешных подключений
    error_log  /var/log/nginx/qwins.app-error.log error; # логи ошибочных подключений

    # если требуется что-то отключить, вместо пути до файла пишем «off»

    client_max_body_size 1000m; # максимальный размер файла, переданного через сайт
    client_body_timeout 120s; # значение тайм-аута

    sendfile off; # после включения Nginx будет отправлять заголовки HTTP-ответов одним пакетом, а не отдельными частями.

    # SSL Configuration
    ssl_certificate /etc/letsencrypt/live/qwins.co/fullchain.pem; # публичный ключ сертификата
    ssl_certificate_key /etc/letsencrypt/live/qwins.co/privkey.pem; # приватный ключ сертификата
    ssl_session_cache shared:SSL:10m; # объем кеша сессий SSL
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384";
    ssl_prefer_server_ciphers on; # уменьшает время загрузки страниц сайта

    location ~ \.(php|html|htm)$ {
try_files $uri =404;
root /var/www/qwins; # путь до сайта
fastcgi_pass unix:/run/php/php7.2-fpm.sock; # путь до php
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include /etc/nginx/fastcgi_params;
    }
}
```

Перезагружаем **Nginx**:

```
service nginx restart
```

## Проверка на Apache2 <a href="#proverka-na-apache2" id="proverka-na-apache2"></a>

Если **Nginx** поставить c **Apache2**, то они будут конфликтовать из-за порта 80. Так что необходимо удалить один из в**еб-серверов**. Проверяем установлен ли **Apache2:**

```
service apache2 status
```

{% hint style="info" %}
Если не будет огромного сообщения с информацией, значит он не установлен.
{% endhint %}

Если **Apache2** установлен, нужно его удалить:

```
apt-get remove --purge apache2* -y
```

## Удаление Nginx <a href="#udalenie-nginx" id="udalenie-nginx"></a>

Для того, чтобы полностью удалить **Nginx** c сервера, для начала его необходимо остановить:

```
service nginx stop
```

А затем прописать команду, которая безвозвратно его удалит:

```
apt-get remove --purge nginx*
```


# Установка PHP

PHP - это распространенный язык программирования общего назначения с открытым исходным кодом. PHP специально сконструирован для веб-разработок и его код может внедряться непосредственно в HTML.

<figure><img src="/files/Tdpx4u3eAvXrkSlbq1F5" alt=""><figcaption></figcaption></figure>

## Добавление необходимых библиотек <a href="#dobavlenie-neobkhodimykh-bibliotek" id="dobavlenie-neobkhodimykh-bibliotek"></a>

Используйте команду

```
sudo apt-get -y install ca-certificates apt-transport-https
```

## Установка php: <a href="#ustanovka-php" id="ustanovka-php"></a>

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

```
wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
echo "deb https://packages.sury.org/php/ stretch main" | tee /etc/apt/sources.list.d/php.list
```

## Далее устанавливаем **php** и его основные модули:

```
sudo apt-get -y install php7.4 php7.4-{mcrypt,mysql,fpm}
```


# Установка MySQL

MySQL - свободная реляционная система управления базами данных.

<figure><img src="/files/Fga1aCFGVxWLbw6RKnve" alt=""><figcaption></figcaption></figure>

Для начала обновляем списки пакетов и репозиториев системы:

```
sudo apt-get -y update && sudo apt-get -y dist-upgrade
```

Добавляем репозиторий **MariaDB**:

```
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
```

Устанавливаем MariaDB:

```
sudo apt-get -y install mariadb-server
```

Далее активируем программу, используя команду

```
mysql -u root -p
```

{% hint style="warning" %}
Символ «**;**» обязателен в **SQL-запросах**
{% endhint %}

Выбираем MySQL:

```
USE mysql;
```

Создаем первого пользователя:

```
CREATE USER 'qwins'@'localhost' IDENTIFIED BY '123456';
```

Теперь создаем **Базу данных**:

```
CREATE DATABASE server;
```

Используя две команды, выдаем пользователю доступ к **Базе данных**:

```
GRANT ALL PRIVILEGES ON server.* TO 'qwins'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
```

#### Открытие базы данных извне: <a href="#otkrytie-bazy-dannykh-izvne" id="otkrytie-bazy-dannykh-izvne"></a>

Если Вам нужно подключаться к MySQL не с localhost, то необходимо отредактировать **/etc/mysql/my.cnf**, найти строку **bind-address**, чтобы она выглядела так:

```
#bind-address = 127.0.0.1
```

Перезагружаем **MySQL**:

```
service mysql-server restart
```


# Подключение phpMyAdmin

phpMyAdmin - СУБД приложение с открытым кодом, написанное на языке PHP и представляющее собой веб-интерфейс для администрирования СУБД MySQL.

<figure><img src="/files/lMOMaWSWCvxlsX7kCHw7" alt=""><figcaption></figcaption></figure>

## Процесс установки: <a href="#process-ustanovki" id="process-ustanovki"></a>

Для начала скачаем официальный **phpMyAdmin** с сайта - [тык](https://www.phpmyadmin.net/)

Необходимо перенести содержимое скачанного архива в папку с сайтом.

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

```
http://домен_или_ip/название_папки_phpmyadmin
```


# Генерация Let's Encrypt SSL

Инструкция по созданию бесплатного сертификата от Let's Encrypt.

<figure><img src="/files/LDgP7LaXbEXNX76a19aV" alt=""><figcaption></figcaption></figure>

Для начала обновляем списки пакетов и репозиториев системы:

```
sudo apt-get -y update && sudo apt-get -y dist-upgrade
```

Устанавливаем **CertBot**:

```
sudo apt-get -y install certbot
```

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

Для **Nginx**:

```
sudo apt-get -y install python3-certbot-nginx
```

Для **Apache2**:

```
sudo apt-get -y install python3-certbot-apache
```

## Генерация сертификата: <a href="#generaciya-sertifikata" id="generaciya-sertifikata"></a>

{% hint style="info" %}
Обратите внимание на то, что **веб-сервер** должен быть включен!
{% endhint %}

Для **Nginx**:

```
certbot certonly --nginx -d yoursite.com
```

Для **Apache2**:

```
certbot certonly --apache -d yoursite.com
```

Если у Вас нет возможности включить **Веб-сервер**, используйте следующую команду:

```
certbot certonly --standalone -d yoursite.com
```

Используем команду для автоматической выдачи **SSL-сертификата**:

```
certbot renew
```

{% hint style="info" %}
Далее ежедневно будет проходить автоматическая проверка на валидность Вашего сертификата.
{% endhint %}


# Установка сервера Minecraft Java

В этом гайде мы с Вами подробно рассмотрим ручную установку сервера Minecraft. Рассмотрим с Вами популярные серверные ядра и научимся правильно ставить сервер.

<figure><img src="/files/GpuDdntuTK8AHqxuhBII" alt=""><figcaption></figcaption></figure>

### **Немного информации** <a href="#nemnogo-informacii" id="nemnogo-informacii"></a>

Мы представляем подробный гайд по установке сервера Minecraft на виртуальное оборудование от команды [**QWINS**](https://qwins.co). Инструкция подходит как для VDS, так и для полностью выделенного сервера.

Перед началом установки сервера рекомендуем ознакомиться с данными страницами:

1. [Установка **Screen**](https://wiki.qwins.co/faq/screen)
2. [Установка **Java**](https://wiki.qwins.co/faq/java-linux)

## Процесс установки <a href="#process-ustanovki" id="process-ustanovki"></a>

Создаем в любой папке на своем компьютере файл «**start.txt»** (название «**start»** — не принципиально, можно использовать любое).

В этой статье приводится пример установки ядра **Paper** для **Minecraft 1.16.5**.

<figure><img src="/files/d78997frBJug6qpgeaUN" alt=""><figcaption></figcaption></figure>

Открываем документ и вписываем команду запуска со всеми необходимыми аргументами для сервера:

**java -Xms1024M -Xmx1024M -jar ядро.jar nogui**

{% hint style="info" %}
**-Xms512M** — минимальное кол-во **ОЗУ**, выделяемого для игрового сервера.

**-Xmx2048M** — максимальное кол-во **ОЗУ**, которое будет доступно серверу в процессе работы.

**-jar** — тип файла, запуск которого следует произвести.

**ядро.jar** — название самого ядра игрового сервера.

**nogui** — аргумент для отмены запуска графического интерфейса, поскольку он нам не нужен.
{% endhint %}

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

```
 java -Xms512M -Xmx2048M -jar paper-1.16.5-553.jar nogui
```

<figure><img src="/files/Boircq61Bq31nSb8KVSq" alt=""><figcaption></figcaption></figure>

Переименовываем файл запуска из «**start.txt»** в «**start.sh».**

<figure><img src="/files/cJupTIq4wVamXp49HEUX" alt=""><figcaption></figcaption></figure>

Далее используем в **SSH** команду **sh start.sh** для выполнения скрипта.

<figure><img src="/files/kvyNTHwp5GTtcO5EU4vT" alt=""><figcaption></figcaption></figure>

Ядро сервера запустилось и начало установку дополнительных файлов.

Запуск был остановлен, нужно подтвердить соглашение **Eula**.

<figure><img src="/files/KmZD0ZXfeTcXAQu03OoM" alt=""><figcaption></figcaption></figure>

Переходим в **sFTP**, там появились новые файлы сервера:

<figure><img src="/files/IbpzKuCBeTVjby3h3KQV" alt=""><figcaption></figcaption></figure>

Вам нужно открыть «**Eula.txt».**

<figure><img src="/files/eDoxJtmOyDWtKbHoJ320" alt=""><figcaption></figcaption></figure>

Подтверждаем соглашение, введя «**true»:**

<figure><img src="/files/RxxOTlB8gUzvMwSaMVZ0" alt=""><figcaption></figcaption></figure>

Сохраняем, закрываем текстовый редактор, вылазит окно с отправкой файла на сервер, нажимаем «**Да»:**

<figure><img src="/files/3Bse7yNEeY2T8oevEuI1" alt=""><figcaption></figcaption></figure>

Переходим обратно в **SSH** и используем команду **sh start.sh** для повторного запуска сервера.

<figure><img src="/files/PwS2EjWRjUuPDToj7QjZ" alt=""><figcaption><p>Сервер Minecraft 1.16.5 запущен</p></figcaption></figure>

Для прямого запуска без **start.sh** просто вводим в консоль команду с аргументами запуска:

```
java -Xms512M -Xmx2048M -jar paper-1.16.5-553.jar nogui
```

<figure><img src="/files/h0AS4ihLSRiGqlZ5rHzB" alt=""><figcaption><p>Сервер точно так же без каких-либо проблем запустился.</p></figcaption></figure>

## Вопрос: Как получить доступ к админским командам? <a href="#vopros-kak-poluchit-dostup-k-adminskim-komandam" id="vopros-kak-poluchit-dostup-k-adminskim-komandam"></a>

В консоли сервера Вы можете выдать себе права оператора, прописав:

```
/op <ВашНик>
```


# Установка сервера Minecraft Bedrock/PE

Ранее мы публиковали статью на тему создания сервера Minecraft Java. В этот раз мы рассмотрим процесс установки сервера Minecraft Bedrock/Pocket Edition.

<figure><img src="/files/rMA0UNoI5ArDmiUZOIFU" alt=""><figcaption></figcaption></figure>

## Начальная информация <a href="#nachalnaya-informaciya" id="nachalnaya-informaciya"></a>

Установка будет производиться на **ОС Ubuntu 20.04 LTS**, поэтому инструкция подойдет как для **VDS**, так и к **Выделенному серверу**.

В работе с сервером нам также поможет утилита **Screen**, рекомендуем прочитать статью: [Установка **Screen**](https://wiki.qwins.co/faq/screen)**.**

В свою очередь, **Minecraft Bedrock** не требует установки **Java** как на сервер, так и на клиентскую часть. Это все потому что данная версия игры целиком написана на языке **C++**.

## Загрузка серверных файлов <a href="#zagruzka-servernykh-failov" id="zagruzka-servernykh-failov"></a>

Обновляем списки пакетов и репозиториев системы:

```
sudo apt-get -y update && sudo apt-get -y dist-upgrade
```

Мы покажем два метода, как загрузить серверные файлы полностью через системую консоль **Linux**, а также вручную через **ПО** **FileZilla**.

## Консоль Linux <a href="#konsol-linux" id="konsol-linux"></a>

Для начала нам нужно создать папку для будущего сервера. Переходим в любой интересующий каталог (стандартно — **root**) и используем команду:

```
mkdir minecraftbedrock
```

{% hint style="info" %}
**minecraftbedrock** — название создаваемого каталога, здесь Вы можете указать любое значение.
{% endhint %}

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

```
ls
```

<figure><img src="/files/cIDSvUC090qwH49t7jVY" alt=""><figcaption></figcaption></figure>

Мы видим созданный каталог. Переходим в него при помощи команды

```
cd minecraftbedrock
```

<figure><img src="/files/HI2nMqJoLh04Ae7gfvrw" alt=""><figcaption></figcaption></figure>

Далее воспользуемся утилитой **wget** для загрузки серверных файлов.

```
wget https://minecraft.azureedge.net/bin-linux/bedrock-server-1.16.221.01.zip
```

Готово, архив с файлами загружен.

<figure><img src="/files/5gtlJQoTAuEAeq3YKyqr" alt=""><figcaption></figcaption></figure>

Теперь нам нужно его распаковать. Установим утилиту **zip**:

```
apt-get install zip
```

<figure><img src="/files/edCSPyJEaTTAIg2GlUvk" alt=""><figcaption></figcaption></figure>

Используем команду для распаковки архива:

```
unzip bedrock-server-1.16.221.01.zip
```

{% hint style="info" %}
**Где bedrock-server-1.16.221.01.zip** — название нашего архива.
{% endhint %}

<figure><img src="/files/5B3lS3Vpp8kVqEr6Cnf1" alt=""><figcaption><p>Файлы разархивированы</p></figcaption></figure>

## FileZilla <a href="#filezilla" id="filezilla"></a>

Подключаемся к серверу и создаем в любой папке каталог (**ПКМ** — **Создать каталог**).

<figure><img src="/files/T0zF3xgrzQjfY43d89yR" alt=""><figcaption></figcaption></figure>

Можно использовать любое наименование.

<figure><img src="/files/TqbAxDbekbVTwcVnmkHW" alt=""><figcaption></figcaption></figure>

Переходим в созданный каталог. Скачиваем на свой компьютер архив с сайта **Mojang**:

<https://minecraft.azureedge.net/bin-linux/bedrock-server-1.16.221.01.zip>

Отправляем загруженный файл на наш сервер.

<figure><img src="/files/NWo3wp6Eu1H9wHRrBie5" alt=""><figcaption></figcaption></figure>

Архив успешно загружен.

<figure><img src="/files/uaWwu2zbBDOqkDWAq3Ty" alt=""><figcaption></figcaption></figure>

Входим в консоль **Linux** (**SSH**), затем используем команду для перехода в нашу директорию:

```
cd bedrock
```

{% hint style="info" %}
**bedrock** — имя каталога.
{% endhint %}

<figure><img src="/files/umSBD8LnTjwvP8hRVjtX" alt=""><figcaption></figcaption></figure>

Далее используем команду для распаковки архива:

```
unzip bedrock-server-1.16.221.01.zip
```

{% hint style="info" %}
Где **bedrock-server-1.16.221.01.zip** — название нашего архива.
{% endhint %}

<figure><img src="/files/FF1lNqEfT7T81UZV5EHr" alt=""><figcaption></figcaption></figure>

## Запуск сервера <a href="#zapusk-servera" id="zapusk-servera"></a>

Для круглосуточной работы сервера создаем окно **Screen** командой

```
screen -S bedrock
```

{% hint style="info" %}
**bedrock** — наименование окна **Screen**.
{% endhint %}

<figure><img src="/files/IeNDODy5FVHdjvZB3ve0" alt=""><figcaption><p>Окно создано</p></figcaption></figure>

Все еще находясь в каталоге нашего сервера используем команду

```
chmod 777 bedrock_server
```

Тем самым мы выдаем полные права на запись, чтение и исполнение файла.

<figure><img src="/files/tq9DOFCXkzQJSfk03Hkt" alt=""><figcaption><p>Права выданы</p></figcaption></figure>

Следом переходим к запуску самого сервера. Используем команду

```
./bedrock_server
```

{% hint style="info" %}
**bedrock\_server** — наименование файла запуска сервера.
{% endhint %}

<figure><img src="/files/mHtWcbznrYrPEVLrtKNT" alt=""><figcaption></figcaption></figure>

Отлично! Наш сервер успешно запущен.

Для выхода из окна **Screen** используйте сочетание клавиш **Ctrl + A + D**.

## Подключение к серверу <a href="#podklyuchenie-k-serveru" id="podklyuchenie-k-serveru"></a>

Давайте попробуем зайти с обоих версий игры.

## Windows 10 Edition <a href="#windows-10-edition" id="windows-10-edition"></a>

Добавляем сервер, указав название, **IP-адрес** и стандартный порт  (19132).

<figure><img src="/files/exk1z8gMH5cwHC8CZOro" alt=""><figcaption></figcaption></figure>

В консоли также отображается информация о подключении и выходе игроков с сервера:

<figure><img src="/files/zawkQScdgey5RTaICiJa" alt=""><figcaption></figcaption></figure>

## Pocket Edition <a href="#pocket-edition" id="pocket-edition"></a>

Повторно вводим данные для подключения.

<figure><img src="/files/0TbEpKAGicBAOm76e5hZ" alt=""><figcaption></figcaption></figure>


# Настройка server.properties

server.properties — главная настройка во всех ядрах серверов. В данной статье Вы можете узнать подробную информацию про функции этого конфига.

<figure><img src="/files/sGRx347hL8Sxe0YcNUJH" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/1ozSQ3qx23hH4cwtq0pH" alt=""><figcaption><p>Вид server.properties для сервера Paper 1.16.5.</p></figcaption></figure>

* spawn-protection

Эта настройка позволяет Вам выставить значения для защиты территории спавна от сервера. Территория начинается от координат x-0 z-0. По стандарту первые 16 блоков в каждую сторону защищены от поломки любыми игроками.

* max-tick-time

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

{% hint style="warning" %}
Данное значение рекомендуется менять только опытным пользователям.
{% endhint %}

* query.port

Порт для получения дополнительной информации о сервере через различные сервисы.

* generator-settings

Настройки генерации плоского мира на сервере.

* sync-chunk-writes

Позволяет активировать синхронную запись чанков.

* force-gamemode

Если активировать, **все игроки** при входе на сервер будут получать стандартный режим игры, прописанный в настройке **gamemode.**

* allow-nether

Разрешает или запрещает работу мира **nether** (ад) на сервере.

* enforce-whitelist

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

* gamemode

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

* broadcast-console-to-ops

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

* enable-query

Активирует службу **GameSpy4**, которая позволяет получать информацию о сервере. Настройка порта для использования производится в строке **query.port.**

* player-idle-timeout

Позволяет указать время, через которое неактивные игроки будут автоматически отключены от сервера. По умолчанию установлен 0 (игроки не будут отключены за неактивность).

* text-filtering-config

Настройка, которая позволяет связать определенный сервис с сервером для автоматической фильтрации текста в чате и написанных книгах.

* difficulty

Позволяет настроить сложность игры на сервере. Может принимать значения:

{% hint style="info" %}
peaceful — Мирный режим игры (отсутствует трата голода и враждебные монстры).

easy — Легкий режим игры.

normal — Нормальный режим игры.

hard — Сложный режим игры.
{% endhint %}

* broadcast-rcon-to-ops

При включении функции сервер будет выводить выполненные в консоли RCON команды операторам сервера.

* spawn-monsters

Отвечает за появление враждебных мобов на сервере.

* op-permission-level

Позволяет изменять права операторов. Может принимать разные значения:

{% hint style="info" %}
1 — Операторы могут ломать/ставить блоки внутри радиуса защиты территории спавна.

2 — Операторы могут использовать команды **/clear**, **/difficulty**, **/effect**, **/gamemode**, **/gamerule**, **/give**, **/tp**, а также имеют право на взаимодействие с командными блоками.

3 — Операторы могут использовать команды **/ban**, **/deop**, **/kick**, и **/op**.

4 — Операторы могут использовать команду **/stop**.
{% endhint %}

* pvp

Настраивает возможность атаки игроков между собой. При значении **false** игроки не смогут нанести никакого вреда другим пользователям.

* entity-broadcast-range-percentage

Может принимать значения от **0** до **500**. Позволяет изменять дистанцию рендера энтити для игроков в процентах. Более высокие значения могут привести к снижению производительности сервера.

* snooper-enabled

Позволяет автоматически отправлять некоторую статистику сервера разработчикам.

* level-type

Определяет тип генерации серверного мира. Может принимать значения:

{% hint style="info" %}
**В ванильной версии игры:** \
**DEFAULT** — Стандартный. \
**FLAT** — Плоский мир. \
**LARGEBIOMES** — Большие биомы. \
**AMPLIFIED** — Расширенный тип мира.

При наличии модов на сервере может принимать различные значения, в зависимости от возможностей модификаций.
{% endhint %}

* enable-status

По умолчанию установлено как **true**. Сервер будет отображаться в меню сетевой игры как активный. В случае выключения настройки, сервер будет выглядеть выключенным, но игроки все равно смогут подключиться.

* hardcore

Включает на сервере режим **Хардкор**. После смерти игрок перемещается в **Режим наблюдателя**.

* enable-command-block

Позволяет использовать **Командные блоки** на сервере.

* network-compression-threshold

Активирует автоматическое сжатие пакетов пользователей. Может принимать значения:

{% hint style="info" %}
**-1** — отключить сжатие. \
**0** — сжать все.

Рекомендуем не устанавливать значение ниже **64**, также не стоит превышать **1500**.
{% endhint %}

* max-players

Устанавливает **максимальное количество игроков** на Вашем сервере.

* max-world-size

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

* resource-pack-sha1

Специальный метод **SHA-1** для более скоростного хеширования пакета ресурсов. Указывается в шестнадцатеричном виде.

* function-permission-level

Определяет уровень доступа к функциям игры. К этому относятся скрипты типа **function**.

* rcon.port

Указывается порт для удаленного управления сервером через **RCON**.

* server-port

В данной настройке указывается порт в протоколах **TCP**, **UDP** для доступа к игровому серверу. По умолчанию установлен **25565**.

* debug

Позволяет активировать режим отладки на сервере.

* server-ip

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

* spawn-npcs

Позволяет **NPC** появляться в деревнях на сервере.

* allow-flight

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

* level-name

Устанавливает название для стандартной папки мира на сервере.

* view-distance

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

{% hint style="info" %}
Может быть указать от 3 до 15 чанков прорисовки
{% endhint %}

* resource-pack

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

Подробнее — [установка ресурспака на сервер](https://wiki.qwins.co/minecraft/ustanovka-resurspaka-na-server).

* spawn-animals

Отвечает за появление животных в игровом мире.

* white-list

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

* rcon.password

В этой строке можно указать пароль для доступа по **RCON**. Не забудьте проверить активность функции **enable-rcon**.

* generate-structures

Отвечает за возможность генерации структур в мире (**деревни**, **данжи** и т.д).

* online-mode

Включает синхронизацию с серверами Mojang. На сервере смогут присутствовать только игроки с лицензионными аккаунтами Minecraft.

* max-build-height

Максимальная высота на сервере. Стандартное значение — **256**.

* level-seed

Указывается **сид** для генерации мира на сервере. Если в значении ничего не указано, **сид** генерируется **случайным образом**.

* prevent-proxy-connections

Если включить данную настройку, все последующие соединения игроков через **proxy** будут предотвращены.

* use-native-transport

Оптимизация отправки и получения пакетов для **Linux**. Рекомендуется оставить включенным!

* enable-jmx-monitoring

Позволяет включить **MBean** (функция в **Java**, которая позволяет классам предоставлять часть своих данных извне) с объектом `net.minecraft.server:type=Server` и атрибутами`averageTickTime` и `tickTimes`, которые выводят затраченное время на обработку 1 тика на сервере в секундах (связано с TPS).

* motd

Указывается описание сервера. Настройка поддерживает **форматирование** и ввод **юникодом**.

<figure><img src="/files/QkNYhRNS82BdnY1a0JFM" alt=""><figcaption></figcaption></figure>

* rate-limit

Устанавливает ограничение по запросам **UUID** и **никнеймов игроков**.

* enable-rcon

Отвечает за работу функции **RCON** на сервере. Настройка производится в строках **rcon.password** и **rcon.port**.


# Установка иконки на сервер

Самое время приукрасить свой сервер и добавить для него уникальную иконку

<figure><img src="/files/lCWozNZ8sNPDFD1F6cxY" alt=""><figcaption></figcaption></figure>

Мы скачиваем нашу будущую иконку.  Ее следует сжать до размера **64x64**, для этого можно использовать подобные сервисы:

{% hint style="info" %}
<https://www.resizepixel.com/>\
\
Или же как самостоятельный вариант — **Adobe Photoshop**.
{% endhint %}

Файл сжат, теперь переименовываем его в **server-icon.png**

{% hint style="info" %}
Иконка обязательно должна иметь формат **.png**
{% endhint %}

Отправляем переименованный файл в папку сервера. Затем перезагружаем наш сервер.


# Параметры запуска

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

<figure><img src="/files/xogBAi59CWvSuhrmMQpA" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
Обязательно учтите, что аргументы следует подбирать индивидуально под оборудование сервера, а также версию Java.
{% endhint %}

Начнем с небольшого примера:

```
java -jar server.jar
```

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

## Теперь о самих параметрах <a href="#teper-o-samikh-parametrakh" id="teper-o-samikh-parametrakh"></a>

**-jar** — этот аргумент указывает тип запускаемого **Java-файла**.

**name.jar** — название запускаемого файла.

**nogui** — осуществляет запуск сервера без графического интерфейса, потому что он нам попросту не нужен.

## Основные флаги <a href="#osnovnye-flagi" id="osnovnye-flagi"></a>

**-xincgc** — активирует «**‎сборщик мусора**», который время от времени будет выгружать неиспользуемую оперативную память. Тип сборщика автоматически выбирается в зависимости от версии **Java**.

**-server** — активирует серверную версию **Java**, в которой по умолчанию включена функция поддержки экспериментальных флагов. Также ускоряет компиляцию классов, что дает прирост в производительности, но увеличивает время запуска сервера (поддерживаются только **64-битные системы**).

## Выделение оперативной памяти <a href="#vydelenie-operativnoi-pamyati" id="vydelenie-operativnoi-pamyati"></a>

{% hint style="info" %}
Аргументы поддерживают как «**M**‎» для мегабайтов, так и «‎**G**» для гигабайтов. Например, аргумент **Xms2G** будет запускать сервер с **2-мя** гигабайтами **оперативной памяти**.
{% endhint %}

**-Xmx0000M** — количество максимальной выделяемой памяти для сервера.

**-Xms0000M** — количество минимальной выделяемой памяти для сервера.

**-Xmn0000M** — количество выделяемой памяти для временных объектов

**-XX:MaxPermSize=0000M** — количество памяти для **PermGen Space** (не работает на **Java 8**).

**-XX:SharedReadOnlySize=0000M** — количество памяти под **read-only-место** в **PermGen**.

## Сборщики различного «мусора‎» <a href="#sborshiki-razlichnogo-musora" id="sborshiki-razlichnogo-musora"></a>

{% hint style="info" %}
Для одноядерных процессоров используйте любой сборщик мусора, но не указывайте количество потоков для него. На данный момент лучшим сборщиком является **ConcMarkSweepGC**. Чем больше число **SurvivorRatio** — тем лучше, соответственно тем меньше старые объекты будут захламлять **Оперативную память**. Чем больше значение **TargetSurvivorRatio,** тем большее количество объектов будет очищаться (желательно не ставить более 90). Использовать **MaxGCPauseMillis** лучше всего с **G1GC** или с конкретно указанным сборщиком мусора. **AutoGCSelectPauseMillis** — со сборщиком, который система сама выберет. **G1HeapRegionSize** лучше не устанавливать, **java** сама подберет оптимальное значение, использовать рекомендуем только в случае, если Вы знаете, что делаете.
{% endhint %}

**-XX:+UseSerialGC** — включает сборщик мусора, который работает в **1-ом потоке**.

-**XX:+UseConcMarkSweepGC** — включает сборщик мусора, который использует мощь **нескольких ядер процессора**.

**-XX:ConcGCThreads=2** — количество потоков для **сборщика мусора**.

**-XX:+UseG1GC** — активирует новый сборщик мусора, который **разделяет всю память** на определенные участки, и, благодаря использованию нескольких ядер, **собирает со всех участков неиспользуемую память**.

-**XX:G1HeapRegionSize=32** — количество **Оперативной памяти**, выделяемой под каждый участок.

**-XX:AutoGCSelectPauseMillis=2500** — количество времени в миллисекундах между вызовом автоматически выбранного **сборщика мусора**.

**-XX:MaxGCPauseMillis=1000** — длительность времени в миллисекундах между вызовом конкретного **сборщика мусора**. Для **G1GC** исполняет роль максимально установленного промежутка.

**-XX:SurvivorRatio=8** — количество радиуса для существования выживающих объектов (чем меньше число, тем больше места). Большее место дает возможность недавно сгенерированным объектам **существовать дольше** перед очисткой мусора.

**-XX:TargetSurvivorRatio=90** — количество места в процентах под **выживающие объекты**, что позволит очищать больше неиспользуемых объектов **во время сборки мусора**.

**-XX:+UseBiasedLocking** — ускорение синхронизации объектов на многоядерных процессорах.

**-XX:+UseFastAccessorMethods** — использование оптимизированных версий вызова методов.

-**XX:+UseFastEmptyMethods** — исключение из компиляции пустых методов.

**XX:+UseCompressedOops** — уменьшение размеров указателя, заголовков, а также сдвигов внутри созданных объектов. В зависимости от кода сэкономит **20-60%** **Оперативной памяти**.

В общем итоге у нас получился подобный скрипт для запуска сервера:

```
java -Xincgc -Xms512M -Xmx4G -XX:MaxPermSize=128M -XX:SharedReadOnlySize=30M -XX:+UseConcMarkSweepGC -XX:+UseBiasedLocking -XX:+UseFastAccessorMethods -XX:+UseCompressedOops -jar server.jar nogui
```


# Установка ресурспака на сервер

Хотите установить на сервер стандартный ресурспак, чтобы его использовали все игроки?

<figure><img src="/files/BeBilBf7cF9CERuW0SAK" alt=""><figcaption></figcaption></figure>

## Основная информация <a href="#osnovnaya-informaciya" id="osnovnaya-informaciya"></a>

Для начала нам нужно выбрать сам ресурспак.

Далее мы заходим в папку с сервером и открываем файл **server.properties**.

<figure><img src="/files/PJ3MX8EDQSsTo9SHDEWf" alt=""><figcaption></figcaption></figure>

Здесь мы находим строчку **resource-pack**.

<figure><img src="/files/ThkIOUA3apGh7pZeL2Tt" alt=""><figcaption></figcaption></figure>

Теперь нам нужно указать прямую ссылку на скачивание нашего **пакета ресурсов**. Есть достаточное количество вариантов получения прямой ссылки на ресурспак:

{% hint style="info" %}

* Использование прямой ссылки для скачивания с сайта автора.
* Скачивание файла по ссылке со своего Веб-сервера.
* Использование файлообменников с получением прямой ссылки.
  {% endhint %}

## Получение ссылки с сайта автора <a href="#poluchenie-ssylki-s-saita-avtora" id="poluchenie-ssylki-s-saita-avtora"></a>

Копирование прямой ссылки с кнопки «**Download**‎»‎:

<figure><img src="/files/6h6R7i5muQmeC1o9garH" alt=""><figcaption></figcaption></figure>

В итоге мы получили ссылку «<https://github.com/FaithfulTeam/Faithful/raw/releases/1.16.zip>»‎, при переходе на которую сразу же начнется скачивание нашего файла. Данную ссылку можно использовать для установки ресурспака на сервер. Учтите, что иногда на сайтах могут использоваться временные прямые ссылки, которые не подходят для постоянного использования, чаще всего они имеют очень длинный и неразборчивый вид.

## Собственный веб-сервер <a href="#sobstvennyi-veb-server" id="sobstvennyi-veb-server"></a>

Теперь рассмотрим вариант загрузки файла с удаленного сервера. Вы можете использовать услугу [виртуального сервера](https://qwins.co/vps)

1. Для этого Вам нужно установить **веб-сервер**, который позволит запустить сайт на Вашем оборудовании. Можете придерживаться инструкции «[Установка Nginx](https://wiki.qwins.co/ustanovka-nginx)» или «[Установка Apache2](https://wiki.qwins.co/ustanovka-apache2)». После установки **Программного обеспечения** следуйте по информации из первого пункта.

## Файлообменники <a href="#failoobmenniki" id="failoobmenniki"></a>

В пример мы приведем многим известный сервис **Google Drive**, на него мы загрузим наш ресурспак (придерживайтесь ограничения в 25Мб, далее расскажем об этом). Теперь нужно получить ссылку на наш файл, не забудьте сделать ее публичной.

<figure><img src="/files/kU9ZrhMyFOmpHnkZMhAk" alt=""><figcaption></figcaption></figure>

Копируем ссылку и переходим на [сайт](https://www.votix.ru/p/generator-pryamykh-ssylok-google-disk.html). Здесь виден раздел с генерацией прямых ссылок **Google Drive**, в первое поле вставляем нашу скопированную ссылку и нажимаем на кнопку **Генерировать**. Создается готовая ссылка, которую нам нужно скопировать:

<figure><img src="/files/7OGyFJgnSJPZNTyD4N1T" alt=""><figcaption></figcaption></figure>

## Ограничение в 25 МБ <a href="#ogranichenie-v-25-megabait" id="ogranichenie-v-25-megabait"></a>

Google Drive позволяет пропускать без проверки антивируса файлы весом не более **25Мб**. Если Ваш ресурспак будет весить больше, то при попытке скачивания будет вылазить табличка с подтверждением, которая по факту «предотвращает работу прямой ссылки»‎.

## Установка на сервер <a href="#ustanovka-na-server" id="ustanovka-na-server"></a>

После получения прямой ссылки следуем далее, мы будем использовать вариант с **Google Drive**.

Возвращаемся к файлу **server.properties** и указываем в самом разделе **resource-pack** нашу подготовленную ссылку:

<figure><img src="/files/x90Zi2wCv3KoDes2HbbJ" alt=""><figcaption><p>Сохраняем и запускаем сервер.</p></figcaption></figure>

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

<figure><img src="/files/7i1g7RyZhNsz4x6Q5dkn" alt=""><figcaption><p>Нажимаем "Да".</p></figcaption></figure>

Начинается загрузка нашего ресурспака:

<figure><img src="/files/KhxNyS00iEhQz6WoogAa" alt=""><figcaption></figcaption></figure>

Готово! Ресурспак установлен, теперь по умолчанию все игроки будут получать уведомления о возможности его установки после входа на сервер.

{% hint style="warning" %}
Набор ресурсов работает только на самом сервере, он не устанавливается в папку ресурспаков. Для его использования в одиночной игре пользователю нужно скачивать набор отдельно.
{% endhint %}


