Как установить ssh ubuntu
Перейти к содержимому

Как установить ssh ubuntu

  • автор:

Introduction

SSH («Secure SHell») is a protocol for securely accessing one computer from another. Despite the name, SSH allows you to run command line and graphical programs, transfer files, and even create secure virtual private networks over the Internet.

To use SSH, you will need to install an SSH client on the computer you connect from, and an SSH server on the computer you connect to. The most popular Linux SSH client and Linux SSH server are maintained by the OpenSSH project.

The OpenSSH client is included in Ubuntu by default. For information on connecting to an SSH server, see Connecting to an OpenSSH Server.

Resources

Some information on using an SSH server is available below. To use these guides, you must be an Ubuntu user that’s comfortable using the command-line, editing configuration files, and starting and stopping daemon programs.

SSH (последним исправлял пользователь 62 2015-02-27 02:54:48)

The material on this wiki is available under a free license, see Copyright / License for details
You can contribute to this wiki, see Wiki Guide for details

Installing the OpenSSH Server

If you want to securely connect to your machine from a remote computer, even a computer running another operating system like Mac OS or Windows, then you need to install the following package: openssh-server.

Configuration

Once you have installed the SSH server, you will need to configure it by editing the sshd_config file in the /etc/ssh directory.

First, make a backup of your sshd_config file by copying it to your home directory, or by making a read-only copy in /etc/ssh by doing:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.factory-defaults sudo chmod a-w /etc/ssh/sshd_config.factory-defaults

Creating a read-only backup in /etc/ssh means you’ll always be able to find a known-good configuration when you need it.

Once you’ve backed up your sshd_config file, you can make changes with any text editor (sudo gedit /etc/ssh/sshd_config runs the standard text editor). Once you’ve made your changes, you can apply them by saving the file then doing:

sudo /etc/init.d/ssh restart

Suggested OpenSSH Server Settings

The default /etc/ssh/sshd_config which is used with Ubuntu’s OpenSSH implementation is more secure than that found in many other distributions of GNU/Linux, but there are changes which can enhance this level of security even further, and those changes are suggested here. Some of these changes may not be suitable to your particular situation. Use the settings which offer the best trade-off between security, and usability for your situation.

Start sshd on a Different Listening Port

Because a lot of people with SSH servers use weak passwords, many online attackers will look for an SSH server, then start guessing passwords at random. An attacker can try thousands of passwords in an hour, and the recommended long-term solution is to disable passwords altogether. However, you can get a limited amount of security by using strong passwords, and listening for connections on a non-standard port.

Most SSH servers listen on port number 22, so most scanners only look on that port. By using a different port, you can hide your SSH server from most scanners. This is a type of «security by obscurity» — a trick that can improve your security a little bit for a little while, but which shouldn’t be relied upon as your primary security system.

Using a non-standard port has another problem: you always need to tell your SSH client which non-standard port to use. See below for details on how to do this for the OpenSSH client.

To change the port that your SSH server listens on, first pick a number between 1,024 and 49,152 (Wikipedia explains why those numbers are special). Then add that port to your sshd_config file. For example, to listen to port number 2,222:

You can have as many Port lines as you like, but it’s considered good practice to keep them all together. You should make sure to comment out (or delete) the Port line that was originally in the file, to make your server stops listening on that port. So to listen on port 2,222 only, the relevant part of your sshd_config file should look like this:

Don’t forget you need to save the file, then restart your sshd, before your changes will take effect.

Logging

By default, the OpenSSH server logs to the AUTH facility of syslog, at the INFO level. It can be very informative to increase the logging level to VERBOSE for a week, then see how many spurious attempts have been made to access your computer. To increase the level, find the following line:

and changing it to this:

Now all the details of ssh login attempts will be saved in your /var/log/auth.log file.

If you have started using a different port, or if you think your server is well-enough hidden not to need much security, it’s recommended to increase your logging level, then examine your auth.log file every so often. If you find a significant number of spurious login attempts, then your computer is under attack, and you need more security.

Testing the server

Once you have configured the server, save your changes and restart it, then do:

ssh localhost

You should be prompted to type your password, and you should get another command-line when you type your password in. If this works, then your SSH server is listening on the standard SSH port. If you have set your computer to listen on a non-standard port, then you will need to go back and comment out (or delete) a line in your configuration that reads Port 22. Otherwise, your SSH server has been configured correctly.

To leave the SSH command-line, type:

exit

If you have set your computer to listen on a non-standard port, connect to it by doing:

ssh -p localhost

Remember to replace with the port number you chose earlier on. If you are asked for a password, and get another command-line when you type it, then your SSH server has been configured correctly.

If you have a local network (such as a home or office network), try logging in from one of the other computers on your network. If nothing happens, you might need to tell your computer’s firewall to allow connections on port 22 (or from the non-standard port of you chose earlier).

Finally, try logging in from another computer elsewhere on the Internet — perhaps from work (if your computer is at home) or from home (if your computer is at your work). If you can’t access your computer this way, you might need to tell your router’s firewall to allow connections from port 22, and might also need to configure Network Address Translation.

SSH/OpenSSH/InstallingConfiguringTesting (последним исправлял пользователь knome 2013-12-13 18:43:05)

The material on this wiki is available under a free license, see Copyright / License for details
You can contribute to this wiki, see Wiki Guide for details

Как подключиться по SSH

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

Если вы покупаете VPS сервер или продвинутый хостинг, обычно в письме вместе с другими данными авторизации есть данные доступа по SSH. В этой статье мы рассмотрим как подключиться по SSH к серверу из Linux или Windows.

Что такое SSH?

Поскольку эта статья рассчитана именно на новичков, то перед тем, как перейти дальше давайте подробнее разберемся что из себя представляет SSH. Исторически так сложилось что на большинстве серверов используется операционная система Linux, во многом этому посодействовала ее бесплатность. Графический интерфейс на серверах Linux не используется для экономии ресурсов, поэтому единственным способом администрирования сервера остается командная строка.

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

Как подключиться по SSH

Для подключения по SSH нам необходимо знать такие данные:

  • ip адрес сервера, к которому мы собираемся подключится;
  • порт, на котором ожидает подключения SSH сервер, по умолчанию используется 22, но в целях безопасности порт подключения ssh часто изменяют;
  • имя и пароль пользователя на удаленном сервере.

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

1. Подключение через SSH в Linux

В Linux подключение по SSH выполняется с помощью утилиты ssh. Мы более подробно рассматривали работу с ней в статье как пользоваться ssh. Для подключения к удаленному компьютеру ее синтаксис будет выглядеть следующим образом:

$ ssh имя_пользователя @ айпи_адрес

Это самый простой вариант, если вам также нужно задать порт, используйте опцию -p:

$ ssh имя_пользователя @ айпи_адрес -p порт

Чтобы выполнить подключение по SSH Linux нажмите Ctrl+Alt+T для открытия терминала и наберите команду, заменив нужные значения:

Или, с нестандартным портом:

ssh sergiy@192.168.1.2 -p 2223

Если ip_адрес и порт правильные, то на следующем шаге программа попросит у вас ввести пароль:

Если пытаетесь подключится через SSH к этому серверу первый раз, то утилита также попросит подтвердить добавление нового устройства в свой список известных устройств, здесь нужно набрать yes и нажать Enter:

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

Если же произошла ошибка и IP адрес или порт введены неверно, то вы получите ошибку Connection Refused:

Просто убедитесь что порт введен верно. Если это ваш сервер, то, возможно на нем еще нужно разрешить подключение SSH в брандмауэре. В Ubuntu/Debian для этого на удаленном сервере выполните:

sudo ufw allow 22/tcp

А в CentOS/Fedora:

firewall-cmd —permanent —zone=public —add-port=22/tcp

Если вы используете другой порт для SSH, то замените 22 на свой порт. Для удобства подключения по SSH в дальнейшем можно настроить авторизацию по ключу ssh, чтобы не вводить каждый раз пароль.

Теперь вы знаете как подключиться по ssh linux и решить проблемы с подключением. А теперь перейдем к Windows.

2. Подключение через SSH в Windows

Раньше подключение по SSH из Windows выполнялось только с помощью сторонних утилит, например PuTTY. Но в Windows 10 был добавлен встроенный OpenSSH клиент и работает он точно так же, как и в Linux. По умолчанию этот компонент не активирован. Для его установки откройте Параметры -> Приложения:

Затем выберите Управление дополнительными компонентами:

Здесь нажмите добавить новый компонент и в открывлемся меню выберите OpenSSH Client и нажмите Установить:

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

После перезагрузки нажмите Win+R чтобы открыть окно запуска команд и наберите в нем cmd:

Далее нажмите Enter. Перед вами откроется командная строка Windows. Здесь можно использовать утилиту ssh. Синтаксис у нее абсолютно такой же, как и для Linux:

ssh имя_пользователя @ айпи_адрес -p порт

Например, такой командой можно подключится по SSH к Raspberry Pi, который находится в вашей локальной сети по адресу 192.168.1.5:

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

Затем предложит ввести пароль:

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

Теперь подключиться к серверу по ssh из этой операционной системы также просто как и из Linux.

Выводы

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

Настройка Ubuntu Server после установки

Ubuntu Server — это дистрибутив Linux для установки на серверы. Он не содержит графической оболочки, по умолчанию доступны только консольные утилиты. После завершения установки вы получаете голую систему Ubuntu и прежде чем она станет способна выполнять свои функции сервера, вам предстоит потратить еще немного времени на ее настройку.

В этой статье мы разберем как выполняется настройка Ubuntu Server 18.04 после установки, рассмотрим настройку пользователей, SSH, а также настройку брандмауэра.

Настройка Ubuntu Server 18.04 после установки

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

1. Обновление системы

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

sudo apt update
sudo apt list —upgradable
sudo apt upgrade

Чем больше времени прошло с момента релиза установочного образа Ubuntu Server, тем больше времени займет обновление системы, но это необходимая операция. После обновления перезагрузите систему:

2. Настройка SSH

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

Сначала необходимо сменить порт SSH на удаленном сервере, иначе рано или поздно кто-то попытается его перебрать. Откройте файл /etc/ssh/sshd.conf, найдите строчку Port 22 и измените значение порта на другое число, например, на 2323:

sudo vi /etc/ssh/sshd_config

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

sudo systemctl start sshd
sudo systemctl enable sshd

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

Программа спросит вас путь, куда нужно сохранить ключ, не оставляйте по умолчанию, используйте например, ~/.ssh/id_rsa_ubuntu. Затем утилита предложит ввести пароль для ключа. Если вы не хотите вводить этот пароль каждый раз при входе по SSH, то его задавать не нужно. Но в целях безопасности очень не рекомендуется использовать ключи без паролей.

Затем отправьте только что созданный ключ на свой сервер:

ssh-copy-id -i ~/.ssh/id_rsa_ubuntu.pub имя_пользователя@хост

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

Дальнейшую настройку сервера можно проводить через SSH.

3. Настройка брандмауэра ufw

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

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

sudo ufw allow OpenSSH

Если вы изменили стандартный порт SSH на втором шаге, необходимо разрешать именно тот порт, который вы указали:

sudo ufw allow 2323/tcp

Затем выполните такую команду для включения ufw:

sudo ufw enable

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

sudo ufw status

4. Настройка времени

Установщик не предлагает вам выбрать часовой пояс и по умолчанию остается UTC. Таким образом, вы получаете время по Гринвичу. Вы можете проверить какое время показывает ваш сервер с помощью команды:

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

А для выбора нужного выполните:

sudo timedatectl set-timezone Europe/Kiev

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

sudo apt install ntp

А затем добавьте его в автозагрузку:

sudo systemctl enable ntp

5. Разблокировка пользователя root

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

sudo passwd root

И введите новый пароль. Затем вы сможете авторизоваться от имени этого пользователя.

Выводы

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

Похожие записи

Оцените статью

(15 оценок, среднее: 4,27 из 5)

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

28 комментариев к “Настройка Ubuntu Server после установки”

Я не понял, самого главного, зачем это? Админ который не может настроить время не админ, про фаервол я промолчу, а это мы еще ничего не настраивали. Для чего статья? Ответить

Видимо для начинающих — их большинство, но с сервером познакомиться полезно. Применительно к домашнему использованию, а в частности поднятию NAS, была-бы интересна статься с настройкой в ubuntu server: raid 5, dlna, samba и мониторинг дисков SMART. Всякие настройки веб-сервера и почтового сервера не интересны, ввиду того , что общедоступными и бесплатными пользоваться намного удобнее. Ответить

Меня это тоже улыбает, но дело в том, что не у всех есть стабильное интернет-подключение, поэтому нужна реконфигурация ntp-service, фаерволл — для проброса порта, а openssh — для удаленного доступа из терминала с прописью соответствующих конфига и порта. Насчет команды активации root-account’s я тоже посмеялся — но это дело привычки. а в остальном все верно. так обычно настраивается сервер с залоченным извне доступа в интрасеть. Ответить

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

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

выполните команду для генерации ключа

не следует пренебрегать типом ключа, потому что ваша команда создаст тот ключ, который идёт в дефолте, скорей всего это будет RSA. текущая тенденция показывает, что ключи ed25519 выгодней, удобней и надёжней. но это IMHO.

Пароль для ключа задавать не нужно.

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

Теперь вы сможете авторизоваться на этом сервере без ввода пароля

настройкой демона sshd автор статьи видимо пренебрегает. после настройки подключения по ключу очень рекомендуется поменять порт, отключить возможность входить по паролю. ну и вижу в конце статьи автор советует настроить пароль root — сосем не знает и не умеет пользоваться Linux. жуть какая. на демоне sshd вход root желательно тоже отключать. но про рута ниже поругаюсь.

НАСТРОЙКА ВРЕМЕНИ

очень рекомендуется кроме часового пояса настраивать ещё и службу ntp.

В Ubuntu по умолчанию суперпользователь отключен.

чушь. в Ubuntu по умолчанию у root не задан пароль, и как следствие отсутствует возможность залогиниться. но первый настроенный в программе установки пользователь автоматически является sudoer-ом. читайте man sudo по поводу опции -s и не ломайте Ubuntu назначением пароля root-у. мало того, что SSH у вас настроен с дырами, вы ещё одну дыру открываете. зайдите в терминал, и вбейте последовательно две команды:

sudo -s
whoami

и поймёте, что пароль root на сервере не нужен, есть sudoer.

сервер у вас получился дырявый. но это полбеды. беда в том, что все новички, которые будут учиться по вашей статье, будут впоследствии иметь большие проблемы. ну и последнее, что хотелось бы отметить. Ubuntu-server не подходит новичкам. если хочется научиться поднимать сервер, лучше всего подойдёт mini.iso — он позволяет поднять базовый сервер и настроить SSH, разница в действиях с Debian будет минимальной. но после настройки базового сервера начинается всё самое интересное. поэтому учиться следует на эмуляторах компьютеров, там можно всё сломать без возможных осложнений. а на боевой сервер следует идти, когда все действия понятны, отработаны и спланированы. в общем так как-то. ссылки на статьи дал. не просто голословно выругал. если администратор ссылки удалит — на его совести. Ответить

Я понимаю, что вы очень-очень хотите прорекламировать здесь свой проект, но нет, ничего не выйдет. Это так не работает. Никаких ссылок на тот сайт здесь не будет. Теперь по замечаниям: — SSH запущен — полностью правы. Сначала написал, потом проверил и уже не хотел удалять. Пусть будет на всякий случай.
— Пароль для ключа задавать не нужно — если мы делаем это для безопасности, пароль задавать нужно, но если мы хотим авторизоваться без ввода пароля — пароль задавать не нужно, уточню в статье.
— В Ubuntu по умолчанию суперпользователь отключен — отключен/не задан пароль. залогиниться то одинаково нельзя. Мне тоже не нравиться этот пункт потому что это не безопасно и новичкам лучше привыкать использовать sudo. Но это уже дело удобства за счет снижения безопасности.
— очень рекомендуется поменять порт — да, действительно, забыл добавить, на стандартном порту сразу же начинается перебор пароля. А вот вход по паролю для новичков лучше оставить. Ключ потеряется или не будет его под рукой в нужный момент и все. Достаточно поменять порт и смотреть время от времени все ли нормально.
— очень рекомендуется кроме часового пояса настраивать ещё и службу ntp — да, нужно добавить. Ответить

сам статьи по ссылкам читаешь, другим не даёшь, хитрый перец.
я объясню вам, почему ваш поступок является жлобским. сайт на который я даю ссылки без рекламы. он не приносит денег и делается для людей. только для людей. читатели losst могли бы на нём найти полезное и интересное. но не найдут, благодаря вам. оставляю на вашей совести. живите с этим. в Ubuntu root есть, и он активен всегда, но залогиниться рутом нет возможности. рутом можно стать только sudo -s. на снимке экрана, который вы тоже забанил, я вам это показал. пароль для ключа задаётся для того, чтобы злоумышленник стыривший ваш ключ с клиентской машины не смог зайти на ваш сервер. если ключ будет запаролен, злоумышленник стыривший ваш ключ обломается при попытке подключиться. заблудился сам, и помогаешь заблудиться другим? ню-ню. вход по паролю на сервер закрывать нужно обязательно. — это реальная дыра. при потере ключа либо прямой доступ к серверу, либо, если сервер удалённый — подключение по VNC. но лучше ключ не терять, не девочки чай и не в бирюльки играете. а если вход по паролю оставить, вас рано или поздно сломают. всё больше не спорю. плавайте. Ответить

«вход по паролю на сервер закрывать нужно обязательно. — это реальная дыра. при потере ключа»
«очень рекомендуется поменять порт»
Мы строим домашний сервер �� он за NAT-ом роутера или провайдера, ему даже файервол не нужен, впрочем, как и смена портов �� И к Вам вопрос: смысл юзать брандмауэр ufw или иной брандмауэр, если средств iptables вполне достаточно? Чтоб GUI с картинками был? Или это для тех, кому лень man iptables читать? Ответить

Мужик, ты мне не нравишься. очень! Если мне что то не понятно — я перерываю кучу инфы, просматриваю кучу роликов, спрашиваю на форумах и нахожу правильное решение. Это нормальная реакция на все новое. А читать твои комментарии изложенные в пренебрежительно-презрительном тоне мне как то не айс. Ответить

ссылки на статьи дал. не просто голословно выругал. если администратор ссылки удалит — на его совести.
Пожалуй, и я умываю руки: не есть хорошо использовать чужой труд не ссылаясь на него (это я про ваш труд). а все дальнейшие статьи на losst, полетели от вашей ссылки, если не ошибаюсь, ибо мог найти неверное соответствие. но, благодаря здешнему владельцу/админу — сравнить не могу, так что, пока, Вы правы: если администратор ссылки удалит — на его совести. Ответить

Где я использую чужой труд и что и куда полетело? Ответить

Зачем автора так раскатывать? У меня домашний nas файлопомойка + посмотреть кино на плексе, углубляться в настройки фаера и даже ключей ssh для себя смысла не вижу. Для новичков статья будет интересной, каждый когда чему то учится делает свои ошибки. У меня одна только проблема скорость на linux раза в 3 ниже скорости под windows, мат. плата имеет 2 гигабинтных сетевых карт, в любой из них низкая скорость(( Может кто то подскажет как быть Ответить

Включите ручками:
sudo ethtool -s имя_сетевого_интерфейса speed 1000 duplex full autoneg on
+ перезагрузить или передёрнуть кабель Ответить

Добрый день!
А не подскажите, как можно оптимизировать Ubuntu Server? У Вас уже ранее рассматривалась оптимизация, но там в основном шла речь о GUIне. Здесь же всего этого нет, однако, можно, например, отключить pti в grub или дополнительно настроить кэширование. Возможно отключить какие-нибудь фоновые процессы, хотя их и так по минимуму по умолчанию, также попробовать поиграть с параметром vfs_cache_pressure и т.д. В основном меня интересует ускорение доступа к куче и запись в файл на SSD. Хотелось бы знать, как настройкой ОС можно ускорить работу своего приложения. Ответить

Тут, собственно, всё зависит от машины, на которой этот самый сервер установлен: физическая, виртуальная, размер RAM, про SSD уже понял.
Если в общих чертах, ибо это потянет на целую статью:
_всё, по-максимуму, в RAM (tmpfs никто не отменял)
_TRIM для SSD (не знаю, может в Ubuntu он и по умолчанию включен, но во FreeBSD и в Debian — точно нет)
_»поиграться» размерами кешей — настройки ядра под те или иные надобности: файловый сервер — это одно, а DNS-сервер — это другое
_возможно SWAP в zRAM заюзать вместо или впридачу к SWAP на SSD (от размера RAM зависит) P.S.: слишком мало исходных данных, чтоб предложить, что-то конкретное. да и не форум здесь, а растянется на ура. Ответить

Попробую конкретизировать. Торговый робот на колокации (виртуальный сервер) получает маркетдату по UDP multicast. Должен максимально быстро обрабатывать данные (tick-to-trade < 10 мкс) и записывать их в файл. Оперативка там особо не нужна. Думаю дополнительно выделить память в стек через setrlimit(), т.к. через кучу быстро работать наверное не получится. Может еще отключение IPv6 поможет. Но надо учитывать, что сервер виртуальный, а основные задержки будут в сетевой карте, на выбор которой я повлиять не могу. Буду благодарен за любую помощь. Ответить

и записывать их в файл. Оперативка там особо не нужна
В вашем вопросе содержится и ответ: запихайте файл в tmpfs и пишите в него, ну очень быстро, а на диск будете его скидывать медленно, скриптом, например. Есть, конечно, доля вероятности потери данных или переполнения RAM этим самым файлом — но тут уже надо точно знать сколько данных поступает в еденицу времени и скорость записи этого файла на SSD — из этого уже можно и расчёт делать. И да — целиком из RAM на SSD файл переносить не надо, можно дозаписывать. Ответить

В общем, если нагрузка не постоянна, можно заюзать mknod или mkfifo, а уже с них писать на SSD и вся эта очередь данных, что не будет успевать писаться в файл на SSD, будет висеть в RAM или скидываться в SWAP, при переполнении оной, так что SWAP здесь будет — зло, а размер RAM — лучше больше ��
В своё время решал подобную задачу, но быстродействие не было в приоритете, в приоритете было:
_GPS-приёмник выдаёт данные
_данные должны попадать в основной, стандартный канал девайса
_данные должны подаваться на парсер, который их обрабатывает нужным образом и передаёт некой программе или девайсу (уж не помню — куда)
На Си я писал делитель на два файла устройства и парсер, т.к. BASH не выдавал нужного быстродействия, на BASH-е писал mknod и управление (запуск нужного и в нужном порядке), а может и парсер тоже на BASH-е писал — не помню, остальное — человек делал сам. И да, девайс был на Android, но там тоже Линукс-ядро с некоторыми изменениями. Ответить

Попробую поконкретнее. Торговый робот в зоне колокации (виртуальный сервер) по UDP multicast принимает маркетдату. Оперативная память 2 Гб (больше в принципе и не надо). Должен очень быстро обрабатывать данные (tick-to-trade < 10 мкс) и потом записывать в файл. Скорее всего от работы с кучей откажусь, т.к. через Linux API можно увеличить размер стека в самой программе, что даст выигрыш в производительности. Конечно, я понимаю, что основная задержка будет в сетевой карте, на выбор которой я повлиять не могу, но тем не менее, хотелось бы свести к минимуму "настраиваемые" задержки. Ответить

Забыл про pti и spectre добавить: не вижу смысла в их отключении, ибо безопасность сервера — превыше всего �� и на моём двухъядерном, четырёхпотоковом i7-640M, LMDE 3 64bit — отключение (pti=off spectre_v2=off) почти не даёт прироста производительности CPU: всего 0.1%. а не 30%, как многие пишут.
P.S.: я бы выложил ссылки на тесты Geekbench и LinPack, но в свете последних событий, admin режет сообщения с сылками. придёться Вам тестить самому или поверить мне на слово �� Ответить

Да, модерастия страшная вещь! Написал Вам ответ на предыдущий комментарий, а его до сих пор нет. Куда подевался? Непонятно. Ответить

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *