- Создаем свой сервер на системе Ubuntu [Guide]
- VPS на Linux с графическим интерфейсом: запускаем сервер RDP на Ubuntu 18.04
- Оглавление:
- Установка графического окружения
- Русификация сервера и установка ПО
- Установка и настройка сервера RDP
- Настройка межсетевого экрана
- Подключение к серверу RDP
- Менеджер сессий и сеансы пользователей
- Переключение раскладок клавиатуры
Создаем свой сервер на системе Ubuntu [Guide]
M inecraft — одна из самых популярных сетевых игры нашего времени. Вот уже пятый год она объединяет миллионы игроков по всему миру. В этом руководстве мы рассмотрим установку сервера Minecraft и его базовую настройку в ОС Ubuntu 16.04.
- Сервер с установленной системой Ubuntu 16.04;
- Рекомендуемая емкость оперативной памяти сервера— 1Gb;
- Пользователь с sudo-привилегиями.
Для запуска сервера нам потребуется пакет Java. Если он у вас уже установлен, можете пропустить данный раздел.
Для начала обновим список пакетов:
Далее обновим пакеты по последних версий:
Если в ходе обновления появится подобное сообщение, просто нажмите Y -> enter.
After this operation, 3,435 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Далее установим сам пакет Java:
Установка Screen и создание системного пользователя
Screen — это приложение для работы с несколькими терминалами в одном окне. Оно даст возможность запускать Minecraft в режиме демона.
Создадим репозиторий, где будет храниться Minecraft и его всевозможные настройки:
Добавим нового пользователя:
—home /srv/minecraft — параметр обозначающий домашнюю папку пользователя
—ingroup minecraft — параметр на добавление пользователя в группу minecraft
Установка Minecraft сервера
Перейдем в созданный репозиторий:
Ссылку на последнюю версию вы всегда можете получить на официальном сайте.
ВАЖНО: 1.10.2 Меняете на свою версию.
У нас имеется только 1Gb памяти. Поэтому мы укажем максимальное значение 700Mb (-Xmx700M). Первый параметр указывает начальное значение используемой памяти 256Mb (-Xms256M).
При запуске вы увидите следующее сообщение:
[16:44:56] [Server thread/INFO]: Starting minecraft server version 1.10.2
[16:44:56] [Server thread/INFO]: Loading properties
[16:44:56] [Server thread/WARN]: server.properties does not exist
[16:44:56] [Server thread/INFO]: Generating new properties file
[16:44:56] [Server thread/WARN]: Failed to load eula.txt
[16:44:56] [Server thread/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
[16:44:56] [Server thread/INFO]: Stopping server
[16:44:56] [Server Shutdown Thread/INFO]: Stopping server
Сервер не запустится, но он создаст два файла: eula.txt и server.properties.
Первое хранит согласие на лицензионное соглашение, второй— настройки самого сервера Minecraft.
Откроем файл eula.txt (nano eula.txt) и изменим значение единственной переменной с false на true.
С полным текстом лицензионного соглашения можно ознакомиться здесь.
После этого еще раз запустим сервер:
Процесс генерации ландшафта займет около 30 секунд, после чего будет выведено следующее сообщение:
[16:56:51] [Server thread/INFO]: Preparing spawn area: 62%
[16:56:52] [Server thread/INFO]: Preparing spawn area: 66%
[16:56:53] [Server thread/INFO]: Preparing spawn area: 71%
[16:56:54] [Server thread/INFO]: Preparing spawn area: 76%
[16:56:55] [Server thread/INFO]: Preparing spawn area: 82%
[16:56:56] [Server thread/INFO]: Preparing spawn area: 87%
[16:56:57] [Server thread/INFO]: Preparing spawn area: 92%
[16:56:58] [Server thread/INFO]: Preparing spawn area: 97%
[16:56:58] [Server thread/INFO]: Done (27.145s)! For help, type «help» or «?»
Остановим его с помощью команду stop.
Данный инструмент можно сравнить с вкладками в браузере. Он позволяет создать их в любом количестве и запускать необходимые нам команды параллельно.
Запустим новый терминал в screen с нашим сервером:
После этого вы увидите стандартное сообщение о генерации ландшафта. Далее вы можете выйти из данного терминала, нажав (Ctrl + d -> a). Minecraft продолжит работать в режиме демона, а вы можете выйти из сервера.
Вернуться назад к управлению Minecraft можно с помощью команды:
VPS на Linux с графическим интерфейсом: запускаем сервер RDP на Ubuntu 18.04
В предыдущей статье мы разобрали запуск сервера VNC на виртуальной машине любого типа. У этого варианта масса недостатков, основным из которых являются высокие требования к пропускной способности каналов передачи данных. Сегодня мы попробуем подключиться к графическому рабочему столу на Linux по RDP (Remote Desktop Protocol). Система VNC основана на передаче массивов пикселей по протоколу RFB (Remote Framebuffer), а RDP позволяет отправлять более сложные графические примитивы и высокоуровневые команды. Обычно он используется для организации служб удаленных рабочих столов в Windows, но серверы для Linux также доступны.
Оглавление:
Установка графического окружения
Мы возьмем виртуальную машину с Ubuntu Server 18.04 LTS с двумя вычислительными ядрами, четырьмя гигабайтами оперативной памяти и жестким диском (HDD) на двадцать гигабайт. Более слабая конфигурация плохо подходит для графического десктопа, хотя это зависит от решаемых задач. Не забывайте использовать промокод Habrahabr10 для получения скидки в 10% при заказе.
Установка окружения рабочего стола со всеми зависимостями выполняется следующей командой:
sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
Как и в предыдущем случае, мы выбрали XFCE из-за относительно невысоких требований к вычислительным ресурсам.
Русификация сервера и установка ПО
Часто виртуальные машины разворачиваются только с английской локализацией. На десктопе может потребоваться русская, настроить которую несложно. Сначала установим переводы для системных программ:
sudo apt-get install language-pack-ru
sudo update-locale LANG=ru_RU.UTF-8
Того же эффекта можно достичь, отредактировав вручную файл /etc/default/locale.
Для локализации GNOME и KDE в репозитории есть пакеты language-pack-gnome-ru и language-pack-kde-ru — они понадобятся, если вы будете использовать программы из этих сред рабочего стола. В XFCE переводы устанавливаются вместе с приложениями. Дальше можно инсталлировать словари:
# Словари для проверки орфографии sudo apt-get install hunspell hunspell-ru # Тезаурус для LibreOffice sudo apt-get install mythes-ru # Англо-русский словарь в формате DICT sudo apt-get install mueller7-dict
Кроме того, инсталляция переводов может потребоваться для некоторых прикладных программ:
# Браузер Firefox sudo apt-get install firefox firefox-locale-ru # Почтовый клиент Thunderbird sudo apt-get install thunderbird thunderbird-locale-ru # Офисный пакет LibreOffice sudo apt-get install libreoffice libreoffice-l10n-ru libreoffice-help-ru
На этом подготовка окружения рабочего стола завершена, осталось настроить сервер RDP.
Установка и настройка сервера RDP
В репозиториях Ubuntu есть распространяемый свободно сервер Xrdp, которым мы и воспользуемся:
Если все прошло нормально, сервер должен запуститься автоматически:
sudo systemctl status xrdp
Сервер Xrdp запускается с правами пользователя xrdp и по умолчанию берет cертификат /etc/ssl/private/ssl-cert-snakeoil.key, который можно заменить собственным. Для доступа на чтение файла нужно добавить пользователя в группу ssl-cert:
sudo adduser xrdp ssl-cert
Настройки по умолчанию можно найти в файле /etc/default/xrdp, а все прочие конфигурационные файлы сервера лежат в каталоге /etc/xrdp. Основные параметры находятся в файле xrdp.ini, который можно не менять. Конфиг хорошо документирован, к тому же в комплекте имеется соответствующие manpages:
Осталось только отредактировать скрипт /etc/xrdp/startwm.sh, который исполняется при инициализации пользовательской сессии. Предварительно сделаем резервную копию скрипта из дистрибутива:
sudo mv /etc/xrdp/startwm.sh /etc/xrdp/startwm.b sudo nano /etc/xrdp/startwm.sh
Чтобы запустить окружение рабочего стола XFCE, потребуется сценарий примерно такого содержания:
#!/bin/sh if [ -r /etc/default/locale ]; then . /etc/default/locale export LANG LANGUAGE fi exec /usr/bin/startxfce4
Обратите внимание: в скриптах лучше прописывать полный путь к исполняемым файлам — это хорошая привычка. Сделаем скрипт исполняемым и на этом настройку сервера Xrdp можно считать законченной:
sudo chmod 755 /etc/xrdp/startwm.sh
sudo systemctl restart xrdp
Настройка межсетевого экрана
По умолчанию Xrdp слушает TCP-порт 3389 на всех интерфейсах. В зависимости от конфигурации виртуального сервера может потребоваться настройка межсетевого экрана Netfilter. В Linux это обычно делается с помощью утилиты iptables, но в Ubuntu лучше использовать ufw. Если IP-адрес клиента известен, настройка осуществляется следующей командой:
sudo ufw allow from IP_Address to any port 3389
Разрешить соединения с любого IP можно так:
Протокол RDP поддерживает шифрование, но открывать доступ к серверу Xrdp из сетей общего пользования — плохая идея. Если у клиента нет фиксированного IP, для повышения уровня безопасности сервер должен слушать только localhost. Доступ к нему лучше настроить через туннель SSH, который безопасно перенаправит трафик с клиентского компьютера. Аналогичный подход мы использовали в предыдущей статье для сервера VNC.
Подключение к серверу RDP
Для работы с окружением рабочего стола лучше создать отдельного непривилегированного пользователя:
Добавим пользователя в группу sudo, чтобы он мог решать связанные с администрированием задачи. Если такой потребности нет, этот шаг можно пропустить:
sudo gpasswd -a rdpuser sudo
Подключиться к серверу можно с помощью любого клиента RDP, включая встроенный клиент службы удаленных рабочих столов Windows. Если Xrdp слушает внешний интерфейс, никаких дополнительных телодвижений не понадобится. Достаточно указать в настройках соединения IP-адрес VPS, имя пользователя и пароль. После подключения мы увидим примерно такую картину:
После первичной настройки окружения рабочего стола мы получим полноценный десктоп. Как видите, он потребляет не так много ресурсов, хотя дальше все будет зависеть от используемых приложений.
Если сервер Xrdp слушает только localhost, на клиентском компьютере трафик придется упаковать в туннель SSH (на VPS должен быть запущен sshd). Под Windows можно использовать графический клиент SSH (например, PuTTY), а в UNIX-системах нужна утилита ssh:
ssh -L 3389:127.0.0.1:3389 -C -N -l rdpuser RDP_server_ip
После инициализации туннеля клиент RDP будет подключаться уже не к удаленному серверу, а к локальному хосту.
С мобильными устройствами сложнее: способные поднять туннель клиенты SSH придется покупать, к тому же в iOS и iPadOS фоновая работа сторонних приложений затруднена из-за слишком хорошей оптимизации энергопотребления. На iPhone и iPad поднять туннель в отдельном приложении не получится — потребуется приложение-комбайн, которое само умеет устанавливать соединение RDP через SSH. Такое, например, как Remoter Pro.
Менеджер сессий и сеансы пользователей
Возможность многопользовательской работы реализована непосредственно в сервере Xrdp и не требует дополнительной настройки. После запуска сервиса через systemd один процесс работает в режиме демона, слушает порт 3389 и взаимодействует через localhost с менеджером сессий.
sudo netstat -ap |grep xrdp
Менеджер сеансов пользователям обычно не виден, потому что заданные в настройках клиента логин и пароль передаются ему автоматически. Если этого не произошло или при аутентификации возникла ошибка, вместо рабочего стола появится интерактивное окно для входа в систему.
Автоматический запуск менеджера сессий прописан в файле /etc/default/xrdp, а конфигурация хранится в /etc/xrdp/sesman.ini. По умолчанию выглядит она примерно так:
[Globals] ListenAddress=127.0.0.1 ListenPort=3350 EnableUserWindowManager=true UserWindowManager=startwm.sh DefaultWindowManager=startwm.sh [Security] AllowRootLogin=true MaxLoginRetry=4 TerminalServerUsers=tsusers TerminalServerAdmins=tsadmins ; When AlwaysGroupCheck=false access will be permitted ; if the group TerminalServerUsers is not defined. AlwaysGroupCheck=false [Sessions]
Здесь можно ничего не менять, стоит только запретить вход с правами root (AllowRootLogin=false). Для каждого авторизовавшегося в системе пользователя запускается отдельный процесс xrdp: если отсоединиться не завершив сеанс, пользовательские процессы по умолчанию продолжат работать, а к сеансу можно будет подключиться заново. Настройки можно изменить в файле /etc/xrdp/sesman.ini (секция [Sessions]).
Переключение раскладок клавиатуры
С двухсторонним буфером обмена проблем обычно не возникает, а вот с русской раскладкой клавиатуры придется немного пошаманить (русская локаль должна быть уже установлена). Отредактируем клавиатурные настройки сервера Xrdp:
sudo nano /etc/xrdp/xrdp_keyboard.ini
В конец конфигурационного файла нужно добавить следующие строки:
[rdp_keyboard_ru] keyboard_type=4 keyboard_type=7 keyboard_subtype=1 model=pc105 options=grp:alt_shift_toggle rdp_layouts=default_rdp_layouts layouts_map=layouts_map_ru [layouts_map_ru] rdp_layout_us=us,ru rdp_layout_ru=us,ru
Остается сохранить файл и перезапустить Xrdp:
sudo systemctl restart xrdp
Как видите, поднять сервер RDP на линуксовом VPS несложно, а в предыдущей статье мы уже разобрали настройку VNC. Помимо этих технологий, есть еще один интересный вариант: использующая модифицированный протокол NX 3 система X2Go. С ней мы разберемся в следующей публикации.