Поскольку материал рассчитан на новичков, делающих первые шаги в программировании на Python и настройке собственного сервера, то некоторые вещи я буду значительно упрощать.
Шаг 1. Подключение к консоли сервера
Существует 3 основных способа подключиться к консоли сервера:
- Через сайт вашего облачного хостера;
- По VNC;
- По SSH (самый удобный).
Первый способ не требует установки дополнительного софта, его мы рассматривать не будем.
Установка TightVNC Viewer. Подключение по VNC
Существует несколько программ для работы с VNC, лично я пользуюсь TightVNC Viewer. Скачать её можно с официального сайта. На странице установщика выбираем режим установки Custom и выбираем только компонент TightVNC Viewer. Второй компонент нам НЕ нужен т.к он для того, чтобы нашим компом нужно было управлять извне, а оно нам надо?))
Главный минус подключения по VNC в том, что в половине (а то и больше) случаев вы не сможете пользоваться буфером обмена. Это очень неудобно, когда копируешь в консоль заранее заготовленные команды (например из данной инструкции). Обычно все подключаются по SSH.
После подключения к консоли сервера при первом запуске произойдёт установка и загрузка всех компонентов. Терпеливо ждём записи Installation finished. No error reported. Нажимаем Enter. Появляется предложение ввести login. Вводим root, жмём Enter

Теперь вводим пароль. Может показаться, что сервер завис, но это не так! В целях безопасности, при вводе пароля мы не увидим ровным счётом ничего. Любое наше нажатие кроме клавиши Enter будет сопровождаться ничем. В общем, "в слепую" набираем пароль, нажимаем Enter. Если ввели правильно, то попадём куда надо.
Подключение по SSH из Windoiws 11
В 11-й винде уже установлен клиент SSH, достаточно открыть терминал (WIN + R) и ввести:
ssh root@ip_вашего_сервера
Далее нам предложат ввести пароль. Обратите вниманиче, что в целях безопасности при вводе пароля текст не виден. Это нормально. Просто набираем и жмём Ввод.
Решение ошибки WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED
Если в процессе работы вы получили ошибку WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED, то выполните в консоли следующее:
cd ~
rm .ssh/known_hosts
И после повторите подключение ssh root@ip_вашего_сервера
Проверка обновлений на сервере Ubuntu
Начнём с проверки и установки обновлений для того, что уже установлено на сервере при помощи инструмента Ubuntu Advanced Packaging Tool. Для этого последовательно выполняем команды:
sudo apt update
sudo apt -y upgrade
Шаг 2. Настройка FTP на сервере Ubunty 22.04
Установка vsftpd на Ubunty
Теперь установим прогу для работы с FTP. В процессе установки подтвердим действие нажатием на [Y], когда спросит.
sudo apt install vsftpd
На всякий случай проверим, работает ли vsftpd. Для этого набираем команду:
systemctl status vsftpd

Если написано active - всё хорошо, можно продолжать. Добавим службу vsftpd в автозагрузку.
sudo systemctl enable vsftpd
Настройка конфигурации FTP-сервера Ubunty 22.04
На всякий случай создадим резервную копию файла конфигурации:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.copy
Теперь откроем в редакторе nano командой:
sudo nano /etc/vsftpd.conf
файл конфига и отредактируем следующим образом:
# настраиваем сервера по IPv4:
listen=YES
listen_ipv6=NO
# запрещаем доступ анонимным пользователям:
anonymous_enable=NO
# разрешаем доступ локальным пользователям:
local_enable=YES
# разрешаем пользователям работать с файлами:
write_enable=YES
# назначаем права новым файлам:
local_umask=022
# включаем сообщения для пользователя при входе:
dirmessage_enable=YES
# разрешаем использовать локальное время на сервере:
use_localtime=YES
# включаем логирование операций:
xferlog_enable=YES
# включаем передачу данных по 20 порту:
connect_from_port_20=YES
# прописываем директорию для хранения логов:
xferlog_file=/var/log/vsftpd.log
# задаём формат логов:
xferlog_std_format=YES
# даём доступ пользователям только к своим домашним каталогам:
chroot_local_user=YES
allow_writeable_chroot=YES
# включаем поддержку авторизации PAM:
pam_service_name=vsftpd
# разрешаем вход только пользователям из файла userlist:
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
Сохраняем файл при помощи CTRL+S, а затем закрываем редактор нажав CTRL+X. Формально FTP настроен. Остаётся включить SSL/TLS, иначе подключиться по FTP вряд-ли получится.
Как включить защищённое соединение SSL/TLS
Настройка своего SSL-сертификата не входит в рамки данного урока, потому разберём на примере создания нового самоподписанного сертификата. Для этого:
1. Генерируем сертификат (Примечание: т.к. значения после -keyout и -out у нас совпадают, то на выходе мы получим один файл, который будет хранить в себе одновременно и сам сертификат и ключ):
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
2. Открываем конфигурационный файл vsftpd:
sudo nano /etc/vsftpd.conf
И добавляем / изменяем следующие параметры:
# Пропишем пути к файлу сертификата vsftpd.pem:
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
Включите SSL:
# ssl_enable=YES
Сохраняем файл нажатием CTRL+S и выходим в консоль CTRL+X.
Перезапускаем FTP-сервер:
sudo systemctl restart vsftpd
Готово, мы настроили защищенный ФТП-сервер на Убунту. Но подключиться пока нельзя, надо создать пользователей.
Как создать FTP-пользователей в Ubunty 22.04 и дать им доступ
Если у вас есть существующие пользователи
Необходим указать имена этих пользователей в файле /etc/vsftpd.userlist. Для этого открываем в редакторе nano этот файл:
sudo nano /etc/vsftpd.userlist
и вводим имена пользователей по принципу "один пользователь — одна строка". Сохраняем изменения (CTRL+S) и закрываем редактор (CTRL+X).
Готово, существующие пользователи получили доступ.
Если нужно создать новых пользователей
В консоли, командой useradd создаём нового пользователя:
sudo useradd username
*где username - желаемое имя пользователя.
командой passwd прописываем пароль:
sudo passwd username
Добавляем пользователя в список тех, кому разрешен FTP-доступ. Для этого добавляем его имя в /etc/vsftpd.userlist:
echo "user" | sudo tee -a /etc/vsftpd.userlist
Готово, теперь мы можем подключиться к серверу используя FTP, но прежде настром файрволл.
Как настроить файрволл (брандмауэр) в Ubunty?
Разрешаем FTP-подключения к нашему VPS/VDS серверу. Для этого откройте порты 20, 21, 22, 990 и диапазон 40000-50000 для TCP-подключений последовательным выполнением команд:
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow OpenSSH
sudo ufw allow 990/tcp
sudo ufw allow 40000:50000/tcp
Перезагружаем файрволл:
sudo ufw disable
sudo ufw enable
Проверяем статус UFW:
sudo ufw status
Всё хорошо. Теперь, наконец, можем воспользоваться FileZilla Client.
Подключение при помощи FileZilla
Открываем менеджер сайтов, выбираем в поле "Протокол" - "SFTP - SSH File Transfer Protocol", вводим ip нашего сервера, а также логин и пароль пользователя, которые создавали на предыдущих шагах, жмём "Соединиться".

Если всё сделали правильно, то отобразятся файлы сервера.
Шаг 3. Настройка Python на Ubunty 22.04
По умолчанию в Ubuntu Python уже установлен, проверить его версию можно набрав
python3 -V
Но этого явно мало. Для управления программными пакетами Python нам понадобится инструмент pip. Устанавливается от следующим образом:
sudo apt install -y python3-pip
После этого нам доступы команды типа "pip3 install package_name", *где package_name - имя дополнительного пакета для Python.
На этом всё. Наш сервер для работы с FTP и Python настроен.
Рекомендую также прочитать про настройку Apache2, php, mySQL на сервере. т.к без неё вы не сможете открывать свой сайт в браузере.