Для начала берем любой VPS. Я взял на reg.ru самый дешевый — Тариф «Base-1»:
При первом подключении к новому серверу желательно выполнить несколько шагов по базовой настройке, которые повысят безопасность и удобство использования.
Подключаемся по ssh под root:
Приступаем к настройке. Для начала обновим систему:
apt update apt upgrade -y
Если при попытке обновления появляется ошибка
Удаляем все, на что ругалось (жмем dd для построчного удаления)
Проверяем есть ли эти репозитории:
Установим sudo, если его нет:
Теперь нам нужно создать нового юзера, под которым мы будем подключаться к серверу и выполнять все необходимые в дальнейшем операции. Почему нельзя использовать юзера root? Можно, но практика показывает, что из-за наличия неограниченных админских прав под рутом гораздо проще натворить непоправимых дел, даже по чистой случайности.
Создаем отдельного юзера www (можно использовать любое название):
Следуем инструкциям на экране (все поля можно оставить пустыми, главное сохранить пароль).
Добавляем пользователя в группу sudo. Это позволит нашему пользователю www выполнять команды с административными привилегиями, написав перед командой слово sudo:
Чтобы разрешить только определенные подключения к определенным службам в Debian можно использовать брандмауэры, например UFW. Он позволяет сделать базовые настройки, для более сложных настроек лучше использовать iptables.
UFW (Uncomplicated Firewall)
Профили брандмауэра позволяют UFW управлять именованными наборами правил для установленных приложений. Профили для некоторых распространенных программ присутствуют в UFW по умолчанию. Их список пожно посмотреть командой ufw app list. Статус самого UFW можно проверить коммандой ufw status.
Например, для OpenSSH уже есть профиль, который мы и используем (на данном этапе настройки другие нас не интересуют):
Вводим y и Enter, чтобы подтвердить активацию брандмауэра.
В итоге, ответ на запрос статуса ufw status должен быть примерно таким:
To Action From
— —— —-
OpenSSH ALLOW Anywhere
OpenSSH v6 ALLOW Anywhere v6
Готово. U FW блокирует все соединения, кроме SSH. В дальнейшем мы будем добавлять новые правила1 по мере необходимости.2
Для дальнейшей работы нам нужно установить несколько полезных инструментов и зависимостей.
sudo apt install -y zsh neovim ripgrep tmux tree htop git curl wget zip unzip build-essential zsh-syntax-highlighting ca-certificates gnupg lsb-release
Что это за пакеты?
Этот шаг не обязателен. Просто добавляет удобства и продуктивности дальнейшей работе.
Для начала убедимся, что zsh установлен:
Если все в порядке, то в терминале будет показана установленная версия, например:
zsh 5.8 x86_64-debian-linux-gnu
Теперь установим его оболочкой по умолчанию:
И переподключимся к серверу. После реконнекта на экране появится сообщение с предложением сконфигурировать zsh.
You are seeing this message because you have no zsh startup files
the files .zshenv, .zprofile, .zshrc, .zlogin in the directory
~. This can you with a few settings that should
make your use of the shell easier.
q Quit and nothing. The will be run again next time.
0 Exit, creating the file ~/.zshrc containing just a comment.
That will prevent this being run again.
1 Continue to the main menu.
2 Populate your ~/.zshrc with the configuration recommended
the file by hand, so desired.
— Type one of the keys in parentheses —
Выбираем вариант 0 (создать файл заглушку) и жмем Enter. На следующем шаге этот файл настроек за нас создаст великолепный Oh My Zsh!
Установить его можно двумя способами: через wget, или через curl. Выбирайте любой, так как мы имеем в своем арсенале обе утилиты.
При успешной установке вы увидите красивую надпись о том, что фрэймворк установлен.
Powerlevel10k — это тема для Zsh. Она популярная, кастомизируемая, быстрая! и имеет много плюшек.
Для установки достаточно клонировать репозиторий в определенную папку:
На этом же шаге можно установить два плагина:
Выполним поочередно две команды (клонирование репозиториев):
Теперь нужно отредактировать файл настроек zsh, заменив строку с используемой темой. Открываем файл ~/.zshrc в nvim:
Закомментируем дефолтную тему и добавим установленную:
Добавим установленные ранее плагины:
Первый раз в Vim/NeoVim?
Для того, чтобы изменения вступили в силу и тема с плагинами активировались нужно перезагрузить файл настроек следующей коммандой:
Сразу после этого запустится настройка темы в режиме вопрос-ответ, где нужно просто нажимать нужный варианты ответа. Настройку всегда можно запустить заново командой p10k configure, поэтому не бойтесь ошибиться. По окончании настройки внешний вид терминала изменится.
Как удалить Docker
sudo apt remove docker docker-engine docker.io containerd runc
Все нужные зависимости у нас уже установлены, поэтому перейдем к следующему шагу, описанному в официальной документации Docker4:
Добавим официальный GPG key Docker’а:
sudo mkdir -p /etc/apt/keyrings
sudo gpg —dearmor -o /etc/apt/keyrings/docker.gpg
Следующей коммандой установим репозиторий:
Обновим индекс пакетов:
И, наконец, установим Docker Engine, containerd, и Docker Compose:
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
Проверим статус сервиса:
sudo systemctl status docker
В ответ должны получить нечто похожее:
● docker.service — Docker Application Container Engine
Loaded: loaded /lib/systemd/system/docker.service enabled vendor preset: enabled
Active: active running since Fri 2022-12-09 23:45:01 MSK 31s ago
TriggeredBy: ● docker.socket
Main PID: dockerd
└─183873 /usr/bin/dockerd -H fd:// —containerd/run/containerd/containerd.sock
Добавим нашего юзера в группу docker, чтоб он мог им управлять:
Проверим, каким группам принадлежит юзер www:
Вывод в терминале должен быть таким: www : www sudo docker. Если так — все получилось успешно. Чтобы ваше членство в группе было активировано — переподключимся к серверу.
Последнее, что нужно сделать — настроить автозапуск Docker при загрузке системы. Сделать это можно при помощи systemd:
systemd — подсистема инициализации и управления службами в Linux.
sudo systemctl docker.service
sudo systemctl containerd.service
Использованы материалы статьи Initial Server Setup with Debian 11
Время на прочтение

Статья предназначена для линуксят, столкнувшихся с проблемами при установке дистрибутива Debian GNU/Linux на свежее железо. От опытных линуксоидов хотелось бы услышать конструктивную критику и рекомендации по усовершенствованию данного метода установки. Давайте вместе поможем линуксятам не повесить носики в сложных ситуациях и открыть для себя удивительный мир консоли и возможностей.
Предыстория
На просторах сети Интернет редко встречается метод установки дистрибутива, представленный в данной статье. Я, честно сказать, и сам раньше всегда ставил netinstall-версию и не парился. Но покупка ноутбука на свежем железе все изменила. Недавно я приобрёл Xiaomi RedmiBook Pro 15″ 2022 Ryzen Edition (AMD R7-6800H, Radeon 680M). Главная проблема заключается в том, что ноутбук появился в продаже весной 2022 года и напичкан железками последних поколений. Люди, купившие его сразу после выхода, столкнулись с огромным количеством багов в прошивке BIOS и отсутствием драйверов. На 4pda есть отдельная ветка, посвящённая данной модели. Проблемы с кривыми драйверами существуют до сих пор. Первые недели я пользовался официальной активированной Windows 11, и даже там (не удивительно?) постоянно отваливался модуль Wi-Fi, крашился Adrenalin, были проблемы с режимом гибернации и многое другое.
Установка базовой системы
Будучи на Windows, необходимо обновить прошивку BIOS с официального сайта Xiaomi (используя VPN), выключить Secure Boot и потереть ключи.
Скачиваем дистрибутив с non-free firmware отсюда. Нам нужен файл debian-testing-amd64-DVD-1.iso
Создаем загрузочный носитель и выполняем стандартные шаги установки за исключением партиционирования накопителя и выбора готовых наборов программного обеспечения.
Партиционирование накопителя достаточно нетривиальный этап установки для обычных пользователей. По нему мало информации, да и важен он зачастую для серверов. Вы можете ознакомиться с рекомендациями Debian и с данной инструкцией, чтобы определить, нужно ли это вам. Касательно клиентских устройств скажу, что с партиционированием играться опасно. Велик шанс ошибиться с объемом выделенного пространства для какого-нибудь /tmp раздела, после чего некоторый софт не сможет распаковать файлы при установке. Если перед вами не стоит специфичных задач и нет конкретного понимания для чего выделять раздел — делать этого не нужно. В моем случае объем твердотельного накопителя составляет 500 GB. Я выделил следующие партиции:
1.0 MB FREE SPACE
536.9 MB ESP
150.0 GB ext4 /
11.6 GB swap swap
350.0 GB ext4 /home
354.4 kB FREE SPACE
При установке выбираем ТОЛЬКО СТАНДАРТНЫЕ СИСТЕМНЫЕ УТИЛИТЫ, так как нагромождать систему лишним функционалом, предоставляемым графической оболочкой, не хочется. В конце мы установим графическую оболочку и все необходимые для работы инструменты сами. Внимательно проверьте, что вы отметили единственной галочкой пункт «Стандартные системные утилиты».
Завершив установку, заходим в систему под своим пользователем и повышаем права до root.
su — root
Приводим содержимое файла /etc/source.list к следующему виду:
deb http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware
deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
deb-src http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
Для экономии времени используем выделение (Shift + стрелки), копирование (Alt + 6) и вставку (Ctrl + U). Сохраняем файл (Ctrl + S) и выходим (Ctrl + X).
Обновляем информацию о пакетах в системе:
В какой-то момент менеджер зависимостей предлагает нам ознакомиться со списком изменений. Пролистываем changelog и нажимаем «q».
Обновляем установленные пакеты до последних версий:
Далее система предложит автоматический перезапуск служб, если это необходимо для корректной установки пакета. Выбираем «YES» и двигаемся дальше.
Также проверяем, нужно ли удалить какие-либо пакеты для полного обновления:
apt full-upgrade -y
В моем случае после перезагрузки заработала клавиатура ноутбука. Если у вас тоже ноутбук с разрешением 3200×2000, то вы поймете, какое это счастье.
Конфигурация, компиляция и сборка ядра Linux
apt install wget build-essential dwarves python3 libncurses-dev flex bison libssl-dev bc libelf-dev rsync debhelper
Переходим в директорию /usr/src и скачиваем архив с последней стабильной версией ядра с официального сайта:
cd /usr/src && wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.3.9.tar.xz
Распаковываем архив в текущую директорию:
tar xvf linux-6.3.9.tar.xz
Переходим в директорию с исходниками ядра:
Теперь копируем текущую конфигурацию ядра в конфигурационный файл:
cp -v /boot/config-$(uname -r) .config && ls -lah
Адаптируем текущую конфигурацию к новому ядру, выполнив следующую команду:
Команда «yes «»» необходима для принятия новых опций, поставляемых свежим ядром, по умолчанию.
Далее запускаем инструмент для конфигурации параметров ядра:
Драйвер для контроллера беспроводной сети, установленного в моем ноутбуке (Realtek Semiconductor RTL8852BE PCIe 802.11ax), был добавлен в версию ядра 6.2. Нужно включить его в сборку, перейдя по следующему пути: Device Drivers — Network Device Support — Wireless LAN — Realtek Devices — Realtek 802.11ax. Помимо включения в сборку данного драйвера, никаких изменений я не вносил. В случае, если вам необходимы какие-либо драйверы для вашего оборудования — изучите содержимое инструмента и внесите соответствующие изменения. После этого сохраняем конфигурацию и выходим.
На всякий случай очищаем директорию от всех файлов, полученных в результате компиляции следующей командой:
Вывод будет пустой, если ничего лишнего мы не тыкали. В случае, если возникнут ошибки при компиляции ядра или его модулей, данной командой можно очистить директорию и откатить изменения.
Далее узнаём, сколько у нас в распоряжении потоков процессора:
В моем случае их 16. Для распараллеливания компиляции ядра и его модулей я выделю 12, что достаточно ускорит процесс.
Запустим следующую команду, чтобы скомпилировать ядро и собрать его в deb-пакеты:
make -j 12 bindeb-pkg
Данный процесс занимает много времени в зависимости от мощности процессора и количества выделенных для компиляции потоков. У меня компиляция и сборка заняла в районе 20 минут.
По завершении предыдущего шага, в директории /usr/src появятся 4 deb-пакета и служебные файлы. Установим собранные пакеты:
dpkg -i linux-image-6.3.9_6.3.9-1_amd64.deb
dpkg -i linux-image-6.3.9-dbg_6.3.9-1_amd64.deb
dpkg -i linux-libc-dev_6.3.9-1_amd64.deb
dpkg -i linux-headers-6.3.9_6.3.9-1_amd64.deb
Ура, мы на полпути. Теперь перезагрузим систему и убедимся, что у нас свежее ядро.
Установка прошивок
Установим от root пакет sudo, создадим файлик в директории /etc/sudoers.d и предоставим нашему основному пользователю возможность получения привилегированных прав на выполнение команд.
Далее установим пакеты со всеми возможными прошивками:
sudo apt install firmware-linux firmware-linux-free firmware-linux-nonfree firmware-misc-nonfree
Также установим прошивку микропрограммного процессора и прошивку для встроенной графики:
sudo apt install amd64-microcode firmware-amd-graphics
В случае с внутрянкой от Intel:
sudo apt install intel-microcode
Установка графического интерфейса
Выполним следующую команду для установки графического интерфейса и некоторых мастхэв пакетов:
sudo apt install kde-plasma-desktop xdg-desktop-portal-kde kde-spectacle kate okular ark gparted gwenview elisa vlc firefox-esr qbittorrent remmina obs-studio thunderbird print-manager kcalc htop ksystemlog locate
После этого перезагружаем операционную систему, становимся довольными линуксятами и идем пользоваться самым лучшим дистрибутивом с самой красивой графической оболочкой.

Демонстрация графической оболочки KDE Plasma
Заключение
Покупая ноутбук или персональный компьютер на железе последнего поколения, вы точно столкнётесь с багами и отсутствием драйверов. Велик шанс разочароваться в Linux уже на этапе развертывания дистрибутива. При описанном методе установки Debian, за двое суток активной работы не было ни одного непредвиденного выключения или отвала Wi-Fi модуля. Некритичные баги графического интерфейса, которые я связываю с тестовой версией дистрибутива, на непрерывность работы и производительность системы не влияют. A CPI-ошибки, появляющиеся в dmesg после подключения и отключения кабеля питания в физический интерфейс, на работу также не влияют.
Как-то обеспокоился наличием собственного FTP-сервака. Тем более под это дело «на помойку» был отдан комп этак десятилетней давности. Так как я человек хоть и виндовый, но начинал с чистого ДОСа (про книжки тов. Фигурнова кто помнит?), то я решил сделать все на линуксе. В линуксе я был ноль полный. Еще и усложнил задачу — только консоль, никаких исков (как же — это ж линукс). Дистрибутивом был выбран Debian. Так получилось, что надобность в 2Тб личном хранилице отпала через год и комп был отдан в хорошие руки, а хард пристроен в нужное место. Но был накоплен неплохой опыт стопроцентного новичка. Какие только глупые ошибки я не совершал поначалу! И хабр читал, между прочим, пока разбирался с проблемами. Поэтому эту свою дебютную (первую) статью на хабре я посвящаю тем, кто хочет заняться линуксом с нуля и эта статья призвана для плавного ввода «в тему», являясь, по сути, фильтрацией и систематизацией всего того, что я нашел на просторах интернета. Ранее я этот материал уже публиковал, но, думаю, на хабре он тоже будет полезен.
Что и как хотим получить в результате:
— консольная установка ОС с флешки;
— навыки консольного управление;
— создание собственного репозитория;
— обеспечение удаленного доступа по протоколу FTP/SFTP;
— обеспечение удаленного управления по протоколу SSH;
— дистанционное включение сервера, находящегося за маршрутизатором;
— создание условий работы веб-сервера (в идеале связка nginx+apache).
— Раз
Итак, имеется пустой комп с подключенной периферией. Для начала нужно установить саму ОС. Имеется так же образы всех дисков Debian 6.0.0 stable. От лазерных носителей я давно отказался, т.е. для установки нужно изготовить загрузочную флешку. Флешка нашлась на 2Gb. После поисков оказалось, что изготовить можно, но из самой линуксовой среды. Пришлось установить с образа первого диска дебиан на виртуальную машину (подключаем образ к виртуалке в качестве виртуального CD-ROM и установка выполняется «честно» как бы с лазерного диска). Устанавливал «оптом» — т.е. и GUI тоже (в 6 версии был только GNOME). Тем не менее, после того, как все сделалось, грузим деабиан, подключаем флешку к виртуалке и открываем консоль.
Видим что-то типа этого:
Это значит, что флешка определилась в системе.
Скачиваем файл boot.img.gz (debian.org) для нужной архитектуры (в моем случае i386) и копируем его в какую-нибудь директори. Далее выполняем команду из этой директории:
Теперь надо вытащить и воткнуть обратно USB флешку, чтобы новая структура/таблица разделов распозналась. Это обновит таблицу разделов, хранимую udev. Для проверки выполняем следующие команды:
# mkdir /mnt
# mount /dev/sdс /mnt/
# ls /mnt
и видим инсталляционные файлы, такие как syslinux.cfg, setup.exe, и так далее. Значит все нормально — флешку примонтировали.
Далее скачиваем ISO образ netinstall (debian.org) размером 150-180MB для соответствующей архитектуры (в моем случае i386). Netinstall устанвливает базовую систему, сеть не нужна. Копируем этот образ в какую-нибудь директорию и из этой директории выполняем и отмонтируем флешку:
# cp debian-6.0.1a-i386-netinst /mnt
# umount /dev/sdс
Уф. Теперь при себе есть всегда флешка для установки.
title Debian 6.0.1a — Netinstall (Basic System, TXT Install)
kernel /debian/linux — quiet
initrd /debian/initrd.gz
Теперь втыкаем флешку в наш импровизированный сервак, через BIOS выбираем загрузку с флешки и штатно устанавливаем Debian. При установке ничего особого я не обнаружил: выбираем установку с графическим интерфейсом и далее диалоговый режим. Разметить файловую систему можно автоматом — на первый раз сойдет. После установки и перезагрузки, а так же входа в систему мы будем радостно лицезреть черный экран с приглашением командной строки — базовая установка выполнена!
— Два
Далее необходимо настоить доступ и управление по протоколу SSH. Так же, что бы особо не париться с консолью нужно бы установить mc (Midnight Commander) — аналог nc (Norton Commander) в DOS или tc (TotalCommander) в Windows. Но для установки нужно скопировать из сети пакет и установить его. Сети же нет. В то же время практически весь хоть сколько-то нужный софт есть на дисках Debian 6.0.0 stable (дисков, кажется, 6). Но я отказался от работы с дисками. Можно настроить сеть и воспользоваться официальным сетевым репозиторием — способ проще некуда. Однако это решение не для нас — нужна широкая автономность на первом этапе. Да и с каких пор мы идем по легкому пути — знакомство носит все же больше исследовательский характер. Значит нужно сделать свой локальный репозиторий.
Придется опять еще раз вернуться в виртульную машину. Входим в консоль под root’ом (на сервере мы в будущем настроим sudo, что бы по каждой ерунде не светить root’а). Создаем директории:
# mkdir debian/pool
# mkdir debian/pool/contrib
# mkdir debian/pool/main
В эти директории копируем содержимое одноименных директорий со всех дисков. Получится одна папочка объемом этак с 30Гб. После того, как содержимое всех дисков скопировано, создаём директории для хранения информации об находящихся в репозитарии пакетах:
# cd /debian
# mkdir -p debian/dists/stable/contrib/binary-i386
# mkdir -p debian/dists/stable/main/binary-i386
Далее все команды выполняются исходя из текущего каталога debian — за его пределы никуда не выходим! Собираем списки пакетов:
Теперь папку /debian можно скопировать на жесткий диск и при желании подключать и организовывать локальные репозитории в других системах. Что и делаем — копируем папку на съемных USB-хард.
Подключаем USB-хард к серверу. Далее соображаем как определился хард:
Монтируем его и сливаем все что натворили раньше:
# mount /dev/sda1 /mnt/
# mkdir /dpool
# cp -r /mnt/* /dpool
Правим файл /etc/apt/sources.list — комментим все репозитории и прописываем наш:
deb file:/debian/ stable contrib main
Тут надо сделать краткое отступление. Как поправить файл, если одна консоль? Для этого есть редактор vi:
# cd /etc/apt
# sudo vi sources.list
# apt-get update
# apt-cache gencaches
Готово наше локальное хранилище!
— Три
Теперь наконец-то добрались до SSH вплотную почти.
Заходим на сервер под root’ом и открываем файл /etc/sudoers. Используем опять же редактор vi:
# cd /etc
# vi sudoers
root ALL=(ALL) ALL
И под ней дописываем:
# sudo apt-get install mc
После установки введя команду
# sudo apt-get install ssh
После успешной установки нужно добавить в конец файла /etc/ssh/sshd_config строку для ограничения доступа:
# sudo mc
Далее идем по указанному пути и правим файл. После правки проблем с сохранением не будет — mc запущен под root’ом же. После правки нужно обновить сервис ssh — выходим в консоль и выполняем рестарт сервиса:
# sudo /etc/init.d/ssh restart
— Четыре
Для последнего штриха перед переходом на удаленное управление нужно только настроить сеть. У меня ситуация простая: комп подключен к маршрутизатору проводом. Так как на маршрутизаторе включен DHCP, то интернет получим от него автоматом.
Настройки сетевых интерфейсов хранятся в файле: /etc/network/interfaces
Вот пример рабочего содержимого файла:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 10.0.0.10
netmask 255.0.0.0
network 10.0.0.0
broadcast 10.255.255.255
gateway 10.0.0.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 10.0.0.1
dns-search debian
Запускаем mc через sudo и правим этот файл в соответствии с теми сетевыми настройками, которые справедливы для вашей сети.
Настройка имени сервера и хостов находятся: /etc/hostname, /etc/hosts
Если наш сервер называется «debian», то проверяем:
В hostname значится только:
А в host первые строчки:
127.0.0.1 localhost debian
10.0.0.10 debian.localhost debian
После всего этого гасим компьютер:
# sudo poweroff
Отключаем все кабели, тянем наш сервер в самый дальний угол и подключаем его в розетку и к сети. При этом надо заранее позаботится что бы на этапе загрузки BIOS не ждал нажатия кнопки с названием «any» после того как он с удивлением обнаружит, что клавиатура и мышь не обнаруживаются. Нажимаем кнопку питания и возвращаемся к рабочему компьютеру. На этом компе у меня винда. Как же теперь подключиться к серверу?
— Пять
В принципе, для доступа к файловой системе можно использовать WinSCP. Это даст возможность копировать файлы между машинами. Но это будет не очень правильно, т.к. после авторизации SSH будет открыт доступ ко всей системе. В идеале хотелось бы просто сделать одну сетевую папку на сервере и открыть доступ к ней. И решение для этого есть.
# sudo apt-get install samba
Теперь редактируем файл /etc/samba/smb.conf. Вот пример рабочего содержимого:
После всего этого дела создаем указанные каталоги:
# mkdir /ftp
# mkdir /ftp/pub
И разбираемся с правами на эти папки:
# sudo chmod 0755 /ftp
# sudo chmod 0777 /ftp/pub
# sudo chown -R root /ftp
Ну и напоследок перезагружаем сервис, что бы все настройки заработали:
# sudo /etc/init.d/samba restart
— Шесть
Теперь пора выпустить нашего малыша в сеть )))
Для FTP используем сервис proftpd. Ставим пакет:
# sudo apt-get install proftpd
Файл конфигурации находится здесь: /etc/proftpd/proftpd.conf. Вот пример рабочего файла:
Это дело вставляется в proftpd.conf и доступ осуществляется через порт 2220. Но при этом mod_sftp должен быть установлен вместе с proftpd. В штатном репозитории proftpd собран без mod_sftp. Его придется «дособирать» самостоятельно. « Впатчивал» я по какой-то английской инструкции — уже не помню. Процесс это не менее творческий, чем сборка своего репозитория, а результат все равно не порадовал, поэтому это все описывать не буду.
— Семь
Итак, мы настроили FTP. Теперь хотелось бы уметь включать сервер когда надо. Например, нужно что-то взять из сетевой папки.
Тут есть одна тонкость. К нашему серверу подключено только электропитание и сеть. Но сетевые карты давно научились «будить» компьютер: достаточно только включить такую поддержку в BIOS компьютера и послать не него «магический» пакет (Magic packet). Читаем в wikipedia:
Состав magic packet
Вначале идет так называемая «цепочка синхронизации»: 6 байт, равных 0xFF. Затем — MAC-адрес сетевой платы, повторённый 16 раз. То есть, если бы адрес платы выглядел как 01:02:03:04:05:06, то магический пакет оказался бы таким:
Есть куча программ, половина из которых работает, а другая нет, которые формируют и отсылают такие пакеты по указанному IP. Но это справедливо только в локальной сети. Но ведь у нас реальный IP — значит можно попробовать просто отослать пакет на него, а маршрутизатор настроить на ретрансляцию этого пакета серверу. Пакеты на «побудку» рассылаются обычно по портам 7 или 9. Прокидываем их через маршрутизатор на IP сервера. Далее проще всего воспользоваться сетевым ресурсом wakeonlan.ru: забиваем свой реальный адрес IP и MAC адрес сетевой платы сервера. Жмем кнопочку «Включить компьютер!». После пары отправок система вполне может и написать о неудаче включения — сервер-то все же за NAT’ом, а отклик на пингование маршрутизатора разумнее выключить в настройках маршрутизатора. Такой способ включения удобен, правда придется выучить наизусть IP и MAC. Но у нас же память хорошая — мы же задаем и помним правильные пароли составом не менее 32 символов?) Зато теперь сервер можно включить с сотового телефона (при наличии в нем браузера и GPRS доступа).
Подразумевается, что на физическом аппаратном уровне порты маршрутизатора и платы друг друга «узнают» по своим MAC-адресам (они же с собой постоянно общаются при наличии питания) и маршрутизатор «догадается» что вышеуказанный IPшник будет принадлежать именно этому адресату (пока комп не включен это знание маршрутизатору недосутпно ибо еще нет никакого интерфейса сетевого уровня — однако эта знание мы и заложили при загрузке в ARP) после включения.
Ну вот — на этом и закончивается мое первое знакомство с линуксом. Если кому-то это помогло — всегда пожалуйста.

