Настройка сети Alpine Linux

Обновлено: 21.11.2024

У меня уже много лет есть сервер, работающий под моим столом. Он обслуживает «Nextcloud» для внутреннего обмена данными и «GitLab CE» для размещения моих внутренних репозиториев «git». К сожалению, этот год был довольно жарким с точки зрения температуры. Я был вынужден несколько раз выключать сервер из-за жары в моем домашнем офисе. В результате я начал исследование, чтобы найти решение о том, как настроить гораздо меньшую систему, которая не так сильно нагревает комнату. В этой статье описываются мои поиски установки и запуска «Alpine Linux» в «бездисковом режиме».

Подготовка

Выберите оборудование

Во-первых, я рассматривал крошечные и недорогие системы на базе ARM, включая Raspberry Pi, но большая часть моего набора инструментов основана на x86. Именно поэтому я отказался от идеи использовать устройства на базе ARM и купил «OROID H2+» производства Hardkernel с «корпусом типа 3». В качестве процессора используется Intel Celeron J4115. Для хранения своих данных я выбрал «SanDisk Solid State Disk (SSD) Ultra 3D» с объемом памяти 2 ТБ. Операционная система сохранена на старом SSD, но подойдет любое хранилище объемом более 1 ГиБ. Даже USB-флешка должна работать; Я использую этот тип настройки для других сборок сервера с «OROID H2+». Для сборок, для которых мне нужно больше места для хранения, я использую «3,5-дюймовые диски» в качестве дисков данных и «корпус типа 1».

Рис. 1: «ODROID H2+» в корпусе типа 3

Выберите операционную систему

Я стараюсь сократить объем работы, так как хочу поддерживать только свою домашнюю инфраструктуру в рабочем состоянии. Я хотел бы иметь установку, которая не заставит меня беспокоиться об обновлениях и которая была создана с учетом требований безопасности. Я выбрал «Alpine Linux», так как он отвечает всем моим требованиям, а также поддерживает так называемый «бездисковый» режим.

В этом режиме операционная система (ОС) работает в основной памяти (ОЗУ) и сокращается количество операций записи на диск, на котором хранится ОС. Обычно вы запускаете его с физического или виртуального привода CDROM (CD). В выбранной аппаратной платформе «ODROID H2+» отсутствует встроенный CD-привод, но у меня есть USB-CD-привод для установки. Я был рад прочитать об инструменте под названием setup-bootable, который создает постоянную установку «Alpine Linux» в бездисковом режиме на жестком диске с установочного компакт-диска.

Требования к читателям

Эта статья написана для людей, имеющих базовые знания об операционных системах Linux. При написании этой статьи я исходил из того, что у читателя не установлена ​​«Alpine Linux» на его рабочей станции. Но я предполагаю, что вы уже создали свой «ODROID H2+» в соответствии с официальным видео на YouTube. Я добавил теги, чтобы уточнить, какие команды должны быть выполнены на какой из ваших систем:

  • Рабочая станция: ваш локальный настольный компьютер или ноутбук, который вы используете для настройки сервера.
  • Сервер: сервер, который вы собираетесь установить. Он управляется напрямую через монитор и клавиатуру.
  • Сервер (SSH): сервер, который вы собираетесь установить. Он управляется по ssh с вашей рабочей станции.

Чтобы облегчить чтение этой статьи, я не добавляю к командам, запускаемым от имени пользователя root, префикс sudo . Вместо этого я использую следующий синтаксис для команд в этой статье. Но для повседневных дел я настоятельно рекомендую использовать команду sudo -.

Настройка сервера

Подготовить установку операционной системы

Рабочая станция Загрузите расширенный образ ISO и запишите его на компакт-диск

Загрузите расширенный образ ISO с сайта загрузки «Alpine Linux» и запишите его на компакт-диск. Я использую Brasero для записи образов на компакт-диски. На момент написания «3.12» является текущей версией «Alpine Linux».

Сервер Подключите «ODROID H2+» к монитору и клавиатуре

Сервер Подключите «ODROID H2+» к вашей локальной сети с помощью кабеля

Сервер Загружает ОС с компакт-диска

Убедитесь, что ваш сервер «ODROID H2+» запускается в режиме UEFI. Если вы не уверены, ознакомьтесь с документацией о том, как правильно настроить процедуру запуска оборудования. Когда загрузится установочная ОС, войдите в систему с правами root. Для входа пароль не требуется.

Сервер Запустите установщик «Alpine Linux»

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

Введите следующее в приглашение программы установки.

Сервер Исправить конфигурацию сервера OpenSSH

ВАЖНО! Убедитесь, что сервер установлен в защищенной сети.

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

Сервер Перезапустите демон SSH

Чтобы активировать новую конфигурацию, перезапустите демон SSH.

Сервер Показать IP-адрес вашего сервера

Чтобы упростить такие операции, как копирование и вставка, я обычно стараюсь использовать SSH для удаленного подключения к серверу. Прежде чем вы сможете продолжить, вам нужно получить IP-адрес вашего сервера. В настоящее время я использую для этого ip, но ifconfig также подойдет. Убедитесь, что вы запускаете эту команду на своем сервере, а НЕ на локальном компьютере.

Рабочая станция Подключитесь к вашему серверу через SSH с вашего локального компьютера

Запустите новую оболочку в вашей локальной системе и выполните следующую команду.

Сервер (SSH) Обновить метаданные репозитория

apk требует информацию о пакетах, которые он может установить. Чтобы получить такую ​​информацию, выполните следующую команду.

Для этого также есть ярлык: запустите apk add -u

чтобы обновить информацию о пакете и установить его за один раз.

Сервер (SSH) Установите lsblk для сбора информации о настройке вашего хранилища

Настройка хранилища для операционной системы

Сервер (SSH) Найдите жесткий диск (HDD) для установки «Alpine Linux»

Нам нужно узнать имя жесткого диска, на который мы можем установить «Alpine Linux». В данном случае это старый твердотельный накопитель, но, как упоминалось ранее, подойдет любой жесткий диск, твердотельный накопитель или USB-накопитель, если он достаточно большой.

Сервер (SSH) Создание разделов на дисках

Запустите fdisk BusyBox, чтобы создать разделы. Я не хочу сейчас вдаваться в подробности. В Интернете есть множество руководств по этому поводу. ВАЖНО! Обязательно выберите «EFI» в качестве типа раздела.

Сервер (SSH) Загрузить модуль ядра для файловой системы «VFAT»

Чтобы отформатировать раздел, вам необходимо загрузить модуль ядра vfat.

Сервер (SSH) Формат раздела для операционной системы

Установить операционную систему

Сервер (SSH) Установите «Alpine Linux» на диск

Эта команда скопирует все необходимые файлы для полной бездисковой установки «Alpine Linux». Вы можете увидеть другой каталог для исходного носителя и целевого устройства.

ВАЖНО: /dev/sda1 нельзя монтировать до выполнения этой команды.

Сервер (SSH) Перезапустите сервер, чтобы загрузить установленную ОС

Перезапустите сервер с установленным «Alpine Linux». С этого момента вы изменяете настройки.

Сервер Отключите устройство с установочным носителем

Убедитесь, что вы отключили дисковод для компакт-дисков и/или изменили процедуру запуска оборудования, загрузив ее с /dev/sda .

Настройка операционной системы

Сервер Войти с правами root и без пароля к вашему серверу

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

Сервер Запустите установщик «Alpine Linux»

Сначала нам нужно снова запустить программу установки.

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

Сервер Исправить конфигурацию для временного сервера OpenSSH

Сервер Перезапустить sshd

После того, как вы изменили конфигурацию, перезапустите «sshd».

Сервер Показать IP-адрес вашего сервера

Пожалуйста, соберите IP-адрес вашего сервера еще раз. Это может отличаться от предыдущего.

Рабочая станция (необязательно) Скопируйте открытый ключ SSH из вашей локальной системы на новый сервер

Если вы предпочитаете использовать открытый/закрытый ключи с SSH, откройте новый терминал в вашей локальной системе и скопируйте локальный открытый ключ SSH на сервер.

Рабочая станция Подключитесь к вашему серверу через SSH из вашей локальной системы

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

Сервер (SSH) (необязательно) Зафиксировать изменения для постоянного доступа без пароля для root

Эти шаги необходимы только в том случае, если вы ранее запускали ssh-copy-id. Файлы в /root не являются частью обычного списка сохранения «бездискового режима». Эти команды сохранят файл author_keys пользователя root в файле наложения.

Сервер (SSH) Исправить конфигурацию для сервера OpenSSH навсегда

Удалите следующую строку.

Вместо этого добавьте одну из следующих строк. Вариант 1) разрешит доступ к SSH для пользователя root через открытые/закрытые ключи SSH, но не с паролями, а вариант 2) вообще предотвратит вход в систему с пользователем root.

Сервер (SSH) Перезапустить sshd

Снова перезапустите sshd после сохранения файла конфигурации. На этом этапе не перезагружайтесь!

Сервер (SSH) (необязательно) Зафиксировать изменения для удаленного доступа навсегда

Вы увидите на корневом диске оверлейный файл, содержащий все измененные файлы.

Рабочая станция Подключитесь к вашему серверу через SSH из вашей локальной системы через другой сеанс

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

Сервер (SSH) Убедитесь, что все пограничные репозитории отключены

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

Сервер (SSH) Подтвердить конфигурацию, сделанную на данный момент

Настройка хранилища для корневого диска

Сервер (SSH) Добавить mkinitfs для обновления ядра и пересборки образа «modloop»

Сервер (SSH) Добавить blkid для добавления записей в файл /etc/fstab

Сервер (SSH) Сохранить конфигурацию

Следующие шаги могут нарушить вашу настройку. Вот почему сейчас самое время зафиксировать вашу конфигурацию.

Сервер (SSH) Убедитесь, что ваш корневой диск доступен для записи

Сервер (SSH) Обновите ядро ​​и установите необходимые пакеты

ВАЖНО. Для этого шага убедитесь, что у вас достаточно оперативной памяти — не менее 8 ГиБ. Если оперативной памяти недостаточно, вы получите неработающий образ «modloop».

Поскольку мы хотели бы использовать «LVM» и «XFS», нам также необходимо установить необходимые пакеты для монтирования файловых систем во время загрузки.

ВАЖНО: добавьте все необходимые функции в качестве значения флага -F. Конфигурация mkinitfs по умолчанию используется только в том случае, если флаг -F опущен. Значение по умолчанию для этого флага — ata base cdrom ext4 keymap kms mmc raid scsi usb virtio, его можно найти в /etc/mkinitfs/mkinitfs.conf. Если вы упустите некоторые из основных функций, вы можете получить неработающее изображение «modloop».

Сервер (SSH) (необязательно) Исправить неработающий образ «modloop»

Если на предыдущем шаге что-то пошло не так, загрузите «Alpine Linux» с компакт-диска и выполните следующие команды. Возможно, вам придется изменить имена устройств в зависимости от ваших настроек.

Сервер (SSH) Добавьте пакеты для управления «LVM» и «XFS» на загружаемом сервере

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

Для правильной работы «LVM» необходимо включить демон «LVM».

Сервер (SSH) Установите lsblk для сбора информации о ваших устройствах хранения

Вам нужно снова установить lsblk. На этот раз это постоянная установка.

Сервер (SSH) Найти диск для установки LVM

Вы используете lsblk, чтобы узнать имя устройства хранения.

Сервер (SSH) Подготовка дисков данных

Запустите fdisk BusyBox, чтобы создать разделы. Как и раньше, я не буду вдаваться в подробности. Для этого лучше всего следовать другим руководствам в Интернете.

Сервер (SSH) Настройка LVM

Шаг первый: сделайте /dev/sdb1 физическим томом.

Шаг второй: создайте группу томов, используя этот физический том.

Шаг третий: значения размера хранилища зависят от ваших настроек. Я купил твердотельный накопитель на 2 ТБ и решил создать диск на 32 ГБ, на котором будут храниться мои образы контейнеров.

Шаг четвертый: остальная часть диска используется томом данных.

Последний шаг: активируйте созданные тома.

На данный момент это может выглядеть похоже на ваши настройки.

Сервер (SSH) Создать файловую систему на логических томах

В начале этой главы вы установили программы для установки файловых систем «XFS» и управления ими. Теперь вы используете одну из этих программ для настройки дисков «XFS».

Сначала мы создаем файловую систему для образов контейнеров.

Далее мы создаем файловую систему для данных.

Сервер (SSH) Добавить новые диски в /etc/fstab

Подсказка. Использование UUID не работает и дает сбой во время загрузки.

Сервер (SSH) Создать точки подключения

Сервер (SSH) Сделайте точки подключения постоянными при перезагрузке

Сервер (SSH) Добавить каталог для сохранения списка

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

Сервер (SSH) Зафиксировать изменения на диске

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

Сервер (SSH) монтирует диски для проверки настройки

Теперь вы можете использовать команду mount для проверки возможности подключения всех дисков.

Ваша установка должна выглядеть аналогично.

Сервер (SSH) Перезагрузка

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

Заключение

Теперь у вас должен быть установлен работающий сервер на вашем «ODROID H2+».Эту установку можно использовать для настройки небольшого узла контейнера для запуска ваших контейнеров «Nextcloud» и «GitLab». Но в этой теме достаточно материала для другой статьи. А пока я надеюсь, что вам понравилось читать это.

Обсуждение

Если вы нашли ошибку в этой статье или хотели бы дополнить ее содержанием, отправьте сообщение о проблеме в этот репозиторий Git

Отказ от ответственности

Содержание этой статьи составлено, насколько это известно авторам, но нельзя гарантировать, что оно всегда будет точным в любой среде. Читатель должен убедиться, что вся информация, содержащаяся в этой статье, не наносит ущерба рабочей среде читателя или где бы эта информация ни применялась. Ни при каких обстоятельствах авторы или владельцы авторских прав не несут ответственности за какие-либо претензии, убытки или другую ответственность, вытекающую из этой статьи или связанную с ней. Также обратите внимание на информацию, представленную на странице Лицензии.

Описания функций доступных сценариев установки Alpine Linux ( /sbin/setup-* ).

Эти сценарии можно установить с помощью apk для установки пакета alpine-conf.

Если у вас нет Alpine Linux, вы можете найти и изучить скрипты в их репозитории git.

Содержание

настройка-alpine

Это основной сценарий настройки и установки Alpine.

Сценарий интерактивно проводит пользователя через выполнение нескольких вспомогательных сценариев setup-* в порядке, показанном ниже.

Параметры, заключенные в квадратные скобки, представляют собой примеры вариантов конфигурации в том формате, в котором они могут быть предоставлены при ручном вызове вспомогательных сценариев установки или при использовании файла ответов setup-alpine (см. ниже).


setup-alpine принимает следующие параметры командной строки:

-h Показывает актуальное сообщение справки по использованию.

-a Создать файл наложения: это создает временный каталог и сохраняет его местоположение в ROOT; однако скрипт не экспортирует эту переменную, поэтому я думаю, что эта функция в настоящее время не работает.

-q Запустить в «быстром режиме».

настройка-имя хоста

-h Показать справку

-n Указать имя хоста

Этот скрипт позволяет быстро и легко настроить системное имя хоста, записав его в /etc/hostname . Сценарий не позволяет вам написать недопустимое имя хоста (например, имя, в котором используются недопустимые символы, или оно начинается с «-», или слишком длинное). Скрипт можно запустить вручную или как часть скрипта setup-alpine.

интерфейсы настройки

настройка-интерфейсов [-i файл-интерфейсов]

Обратите внимание, что содержимое файла интерфейсов должно быть предоставлено как стандартный ввод, а не имя файла в качестве дополнительного аргумента. Содержимое должно иметь формат /etc/network/interfaces, например:

настройка-dns

-h Показать справку

-d указать имя поискового домена

-n IP-адрес сервера имен

Сценарий setup-dns хранится в /sbin/setup-dns и позволяет быстро и просто настроить DNS-серверы (и домен поиска DNS, если требуется). Простой запуск setup-dns позволит использовать сценарий в интерактивном режиме, или можно указать параметры.

Информация, передаваемая этому сценарию, записывается в файл /etc/resolv.conf

Пример использования (где 192.168.0.1 является локальным маршрутизатором/dns-forwarder):

Его можно запустить вручную, но он также вызывается в сценарии setup-alpine, если только интерфейсы не настроены для DHCP.

настройка часового пояса

Можно предварительно выбрать часовой пояс с помощью любого из этих переключателей:

-z подпапка /usr/share/zoneinfo

-p Формат POSIX TZ

настройка-прокси

-h Показать справку

-q Тихий режим предотвращает вступление изменений в силу до перезагрузки

Чтобы отключить системный прокси, используйте none . Этот сценарий экспортирует следующие переменные среды:

где $proxyurl — это введенное значение. Если ни один из них не был выбран, значение it устанавливается равным пустому значению (поэтому прокси-сервер не используется).

настройка-apkrepos

Настройка репозиториев APK.

-f Определить и добавить самое быстрое зеркало

-r Добавить случайное зеркало и не запрашивать

-1 Добавить первое зеркало в список (обычно CDN)

Это выполняется как часть скрипта setup-alpine.

настройка-sshd

-h Показать справку

-c Демон SSH, где демон SSH может быть одним из следующих:

Скрипт setup-sshd хранится в /sbin/setup-sshd и позволяет быстро и просто настроить демон и клиент OpenSSH или Dropbear SSH. Его можно запустить вручную, но он также вызывается в сценарии setup-alpine.

настройка-ntp

Протокол сетевого времени (NTP) – это сетевой протокол для синхронизации часов между компьютерными системами по сетям передачи данных с коммутацией пакетов и переменной задержкой.

использование: setup-ntp [-h] [-c выбор демона NTP] Настройка параметров синхронизации времени NTP: -h Показать эту справку -c Выбор демона NTP: busybox openntpd chrony none

Сценарий setup-ntp хранится в /sbin/setup-ntp и позволяет быстро и просто настроить клиент NTP. Его можно запустить вручную, но он также вызывается в сценарии setup-alpine.

установочный диск

В режиме "sys" это установщик, который навсегда устанавливает Alpine на диск, а в режиме "data" он предоставляет больший и постоянный том /var.

Этот скрипт поддерживает следующие параметры командной строки:

-k вариант ядра -o файл apkovl Восстановить систему из файла apkovl -m данные | sys Не запрашивать режим установки. С данными -m предоставленные устройства форматируются для использования в качестве тома /var.

-r Использовать RAID1 с одним диском (ухудшенный режим)

-L Создать и использовать тома в группе LVM

-s размер подкачки в МБ Используйте 0, чтобы отключить подкачку

-q Завершить работу, если диски не найдены

Сценарий также учитывает следующие переменные среды:

Размер загрузочного раздела в МБ; по умолчанию 100. Используется только в том случае, если параметр -m sys указан или выбран в интерактивном режиме.

Размер тома подкачки в МБ; установите значение 0, чтобы отключить своп. Если не указано, по умолчанию будет удвоено количество ОЗУ, до 4096, но не более 1/3 размера наименьшего диска, а если меньше 64, будет просто 0. Используется, только если указан параметр -m sys или выбрано интерактивно.

Точка монтирования для использования при создании томов и традиционной установке на диск (-m sys). По умолчанию /mnt .

Путь к двоичному коду MBR, по умолчанию /usr/share/syslinux/mbr.bin .

Разметка

Если у вас есть сложные потребности в разбиении на разделы, выходящие за рамки описанных выше параметров alpine-disk, вы можете разбить, отформатировать и смонтировать свои тома вручную, а затем просто указать корневую точку монтирования для setup-disk . Это неявно ведет себя так, как если бы также была указана опция -m sys.

setup-disk автоматически создаст массив RAID, если вы укажете ключ -r или укажете более одного устройства. Массив всегда будет RAID1 (и --metadata=0.90) для томов /boot, но будет массивом RAID5 (и --metadata=1.2 для незагрузочных томов, если предоставлено 3 или более устройств.

Если вместо этого вы хотите создать свой RAID-массив вручную, см. раздел Настройка программного RAID-массива. Затем отформатируйте и смонтируйте диски и укажите корневую точку монтирования для setup-disk .

setup-disk будет автоматически создавать и использовать тома в группе LVM, если вы укажете ключ -L. Группа и тома, созданные скриптом, будут иметь следующие имена:

  • группа томов: vg0
  • том подкачки: lv_swap (создается, только если размер подкачки > 0)
  • корневой том: lv_root (создается только при указании или интерактивном выборе параметра -m sys)
  • var volume: lv_var (создается только при указании или интерактивном выборе данных -m)

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

Если вам нужно изменить любой из этих параметров, вы можете использовать vgrename , lvrename , lvreduce или lvresize .

Если вместо этого вы хотите создать систему LVM вручную, см. раздел Настройка логических томов с помощью LVM. Затем отформатируйте и смонтируйте диски и укажите корневую точку монтирования для setup-disk .

настройка-lbu

Этот сценарий будет вызываться только программой setup-alpine при установке типов установки данных (ramdisk)

Он настраивает, где lbu commit будет хранить резервную копию .apkovl. Дополнительную информацию см. в разделе Локальное резервное копирование Alpine.

При запуске setup-lbu предложит, где хранить ваши данные. Параметры, которые он предложит, будут взяты из каталогов, найденных в /media (кроме cdrom). [не уверен, как они монтируются: они автоматически монтируются с помощью setup-lbu? Должен ли пользователь вручную монтировать, используя другой tty?]

настройка-apkcache

Этот сценарий будет вызываться только программой setup-alpine при установке типов установки данных (ramdisk)

Он настраивает, где сохранять файлы пакета apk. Кэш apk — это место, где apk хранит загруженные пакеты, так что системе не нужно загружать их снова при каждой перезагрузке и не нужно зависеть от сети. Подробное объяснение см. в разделе «Локальный кеш APK».

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

настройка-загрузка

Это отдельный скрипт; он не вызывается setup-alpine, его нужно запускать вручную.

Это позволяет создавать загрузочные носители, которые загружают систему, работающую из оперативной памяти (бездисковой), подобно установочным образам, но с использованием файловой системы с возможностью записи (т. е. не iso9660). Так что он также может служить для хранения локальных настроек (например, файлов apkovl и кэшированных пакетов).

Сначала скрипт копирует файлы из ISO-образа (как файл на CD/DVD/USB и т. д.) на USB-накопитель/CompactFlash/SDCard и т. д. или на раздел жесткого диска. Затем он устанавливает загрузчик syslinux, чтобы сделать устройство загружаемым.

Однако текущая установка syslinux, похоже, не работает на разделах, отличных от FAT32.Таким образом, в этих случаях вы можете начать заново с файловой системой FAT32 или, скорее, с желаемой файловой системой и использовать setup-bootable только с параметром -u, чтобы пропустить установку syslinux, а затем обратиться к ручному методу для решения проблемы, или вместо этого используйте один из других параметров загрузчика.

Скрипт setup-bootable принимает следующие аргументы и параметры командной строки (вы можете запустить setup-bootable -h, чтобы увидеть сообщение об использовании).

настройка-загрузочный источник [ место назначения ]

Источником аргумента может быть каталог или ISO (будет смонтирован в MNT или /mnt ) или URL-адрес (будет загружен с помощью WGET или wget ). Аргумент dest может быть точкой монтирования каталога или по умолчанию /media/usb, если он не указан.

-k Сохранить alpine_dev в syslinux.cfg ; в противном случае замените на UUID.

-u Режим обновления: сохранить существующий файл syslinux.cfg и не запускать syslinux

-f Перезаписать syslinux.cfg, даже если был указан параметр -u.

-s Принудительно запустить syslinux, даже если был указан параметр -u.

Сценарий обеспечит доступность исходного и целевого файлов; скопирует содержимое source в dest, убедившись сначала, что там достаточно места; и если не был указан параметр -u, то приемник будет загрузочным.

Предположим, что целевым устройством является /dev/sdXY, тогда этот раздел можно подготовить для загрузки с помощью

Чтобы вручную настроить загрузочный носитель, см. Manually_copying_Alpine_files.

настройка-xorg-база

Это отдельный скрипт; он не вызывается setup-alpine, его нужно запускать вручную.

Он настраивает графическую среду, устанавливает базовые пакеты Xorg и udev (заменяет mdev), а также требуется для сеансов Wayland.

Сценарий устанавливает среди прочих пакетов, например: xorg-server xf86-input-libinput xinit udev .

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

setup-xorg-base [дополнительные пакеты для установки]

Пакеты видео (необязательно)

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

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

Информацию о конкретных видеокартах, установленных на компьютере, можно найти в списке PCI-устройств:

Чтобы просмотреть доступные пакеты видеодрайверов, выполните следующие действия:

$ apk поиск xf86-video

  • Для набора видеочипов Sis установите xf86-video-sis.
  • Для видеочипсетов Intel установите xf86-video-intel и посмотрите Intel Video.

Совет. В некоторых случаях зависание при приостановке/возобновлении прекращается при смене видеопорта, к которому подключен монитор.

  • Для AMD Radeon Video см. Radeon_Video
  • Для Alix1D используйте xf86-video-geode.
  • В KVM/QEMU гости видят Xorg в KVM/QEMU
  • В гостевых системах VirtualBox используется xf86-video-vboxvideo, а также устанавливаются гостевые дополнения VirtualBox. Они содержат важные детали для водителя.
  • В гостевых системах VMware используется xf86-video-vmware
  • В гостевых системах Hyper-V используйте xf86-video-fbdev, а также установите гостевые службы Hyper-V.

Входные пакеты

Если настройки Numlock не работают или возникают ошибки "setleds not found":

Если какое-то устройство ввода не работает вообще, доступные драйверы ввода xf86 можно перечислить с помощью:

$ apk search xf86-input

Наверное, вы хотя бы хотите

libinput предназначен для Wayland с оболочкой для Xorg. evdev — это только Xorg.

Обычные устаревшие драйверы (не упакованные. По крайней мере, по состоянию на 02.02.2022 г.):

А также для поддержки тачпада на многих ноутбуках:

Настроить xorg-сервер (необязательно)

В большинстве систем xorg должен автоматически определять все устройства. Однако вы все равно можете настроить xorg-server вручную, запустив:

Это создаст файл `/root/xorg.conf.new`. Вы можете изменить этот файл в соответствии с вашими потребностями.
(После того как вы закончите модифицировать и протестировать приведенный выше файл конфигурации, переместите его в `/etc/X11/xorg.conf` для обычного использования.)

Раскладка клавиатуры (необязательно)

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

и установите setxkbmap:


Чтобы сделать его постоянным, добавьте этот раздел в /etc/X11/xorg.conf:

Раздел "InputClass" Идентификатор "Клавиатура по умолчанию" MatchIsKeyboard "yes" Параметр "XkbLayout" " " EndSection


Еще один способ изменить раскладку при входе в X — использовать ~/.xinitrc. В следующем примере загружается британская раскладка клавиатуры, просто добавьте эту строку в начало файла: setxkbmap gb &


Если вам нужно создать файл ~/.xinitrc, вы также можете добавить вторую строку, например exec openbox-session, чтобы по-прежнему запускать оконный менеджер с помощью startx или xinit .

Необходима документация

настройка-xen-dom0

настройка-mta

Это отдельный скрипт; он не вызывается setup-alpine, его нужно запускать вручную.

настройка-acf

Это отдельный скрипт; он не вызывается setup-alpine, его нужно запускать вручную.

Если вы здесь, значит, вы хотите установить alpine полуавтоматически или столкнулись с проблемами (по объему или по другим причинам) с setup-alpine . В любом случае, в этом разделе руководства шаг за шагом описывается, как настроить и запустить систему. В этом разделе вы найдете информацию об использовании различных утилит setup-*, а также пояснения их функций.

Раскладка клавиатуры

Раскладка клавиатуры управляется служебным файлом loadkmap. В /etc/conf.d/loadkmap определена переменная ( KEYMAP ). Файл, указанный в этой переменной, является загружаемой раскладкой.

Различные раскладки доступны в пакете kbd-bkeymaps и находятся в /usr/share/bkeymaps. Внутри этого каталога есть несколько каталогов с глобальными категориями для раскладок (например, us и ca для США и Канады соответственно). В этих каталогах находятся локальные варианты каждой категории раскладок. Например, чтобы иметь общий тип клавиатуры, вы должны использовать /usr/share/bkeymaps/us/us.bmap.gz .

Один из простых способов выбрать раскладку – использовать setup-keymap . Просто запустив его, он просмотрит различные доступные раскладки клавиш, подскажет, какую из них вы хотите использовать, а затем настроит loadkmap для вас. Он также удалит пакет kbd-bkeymaps после выбора раскладки и копирования ее в другой каталог. В качестве альтернативы, если вы уже знаете, какая раскладка вам нужна (например, us/us.bmap.gz из предыдущего примера), вы можете передать эту информацию в setup-keymap .

1 это будет копировать и использовать /usr/share/bkeymaps/us/us.bmap.gz

Имя хоста

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

Настройкой основного имени хоста является содержимое файла /etc/hostname. Однако существуют некоторые общие ограничения относительно того, каким он должен быть или не должен быть (также перечисленные в RFC, упомянутом выше). Таким образом, вы можете использовать setup-hostname, чтобы сделать процесс более безопасным. Вы можете либо вызвать его без аргументов, либо вы можете запустить его с аргументом, чтобы задать имя хоста.

Например, если вы хотите, чтобы ваше имя хоста было "alpine", вы можете запустить его следующим образом:

Обратите внимание, однако, что это не заполнит /etc/hosts — ваш локальный жестко заданный кеш DNS. Если вы хотите ускорить некоторые циклические операции, вы также можете изменить этот файл. Например, если бы вы установили имя хоста «alpine» без определенного домена для вашей сети (если у вас есть один из них, вам, вероятно, не нужны эти инструкции), ваш файл /etc/hosts мог бы выглядеть так:

После этого вы должны применить имя хоста, используя перезапуск имени хоста rc-service или /etc/init.d/hostname restart .

Сеть

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

Настройка беспроводной сети

Если в вашей системе нет доступного порта Ethernet (или подключения), вам потребуется настроить беспроводное подключение. Настоятельно рекомендуется избегать этого.

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

Для этого рекомендуется использовать утилиту setup-interfaces. В нем вы должны выбрать свой беспроводной интерфейс при появлении запроса (обычно он будет называться что-то вроде wlan0 ) и ответить на вопросы (подробнее об этом читайте в следующем разделе).

Это не сохранится после перезагрузки. Однако, если вы хотите продолжить использовать аналогичный метод, вы можете использовать rc-update add wpa_supplicant boot. По-прежнему рекомендуется получить более полное решение, такое как wpa_cli. Вы можете найти руководства по различным решениям для управления беспроводными сетями (включая wpa_cli и NetworkManager) на вики.

В большинстве случаев рекомендуется использовать DHCP. Если вы находитесь в профессиональной сети или у вас есть обычный домашний маршрутизатор, он, скорее всего, у вас есть. Это также очень распространено в сетях в целом. DHCP выделит вашей системе IP-адрес, предоставит ей сервер имен для DNS-запросов и, как правило, значительно уменьшит объем необходимой работы. Типичную настройку DHCP можно быстро настроить, запустив setup-interfaces -a ("a" означает "auto").

Не делайте этого, если вы используете беспроводную сеть.

Если это не работает (или вы используете беспроводную сеть), вам может потребоваться запустить его без флага "a". В таком случае скрипт задаст вам вопросы о топологии вашей сети, на которые вы сможете ответить.

Статический IP-адрес

В некоторых случаях в вашей сети не будет DHCP. В этом случае вам нужно будет отредактировать файлы /etc/network/interfaces и /etc/resolv.conf самостоятельно. Если вы запустили setup-interfaces, он спросит вас, хотите ли вы выполнить какое-либо ручное редактирование конфигурации сети. Вы можете ответить «да» или просто отредактировать оба файла вручную.

Файл /etc/network/interfaces по умолчанию (в стиле DHCP) будет выглядеть примерно так:

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

Адрес, который должна иметь ваша система (он еще не должен быть занят)

Адрес шлюза

Маска подсети сети (в большинстве сетей это 255.255.255.0 )

Большинство из них вы можете запросить у своего сетевого администратора. В этом примере мы определили, что ваша система должна иметь IP-адрес 192.168.0.147, шлюз — 192.168.0.1, а маска подсети — 255.255.255.0. В этом случае файл /etc/network/interfaces должен выглядеть так:

Если вы не использовали DHCP, вам также потребуется настроить DNS. Это делается путем редактирования файла /etc/resolv.conf. В большинстве случаев вы можете использовать 1.1.1.1, 8.8.8.8 или 9.9.9.9 в качестве DNS-сервера. Часто ваш маршрутизатор также предоставляет один для использования. В случае возникновения путаницы вы также можете обратиться к своему сетевому администратору.

Вот пример файла /etc/resolv.conf, в котором используются серверы имен 1.1.1.1 и 8.8.8.8.

В качестве альтернативы вы можете использовать скрипт setup-dns.

В настоящее время setup-dns запрашивает доменное имя . Не стесняйтесь оставлять ответ пустым, так как это необязательно.

Применение конфигурации

После того, как все вышеперечисленное учтено, вы можете приступить к настройке сети. Это делается запуском rc-service networking start. При желании вы также можете настроить загрузку во время загрузки, используя rc-update add networking boot.

Часовой пояс

Если вы не живете в часовом поясе по Гринвичу, вам может быть интересно, чтобы ваше устройство знало, где вы (или оно) находитесь с точки зрения времени. В musl часовой пояс определяется переменной окружения TZ, которая должна либо упоминать часовой пояс в стиле POSIX, непосредственно указывать на файл или иметь стандартное определение области/подобласти, которое должно быть найдено в /usr/share/zoneinfo, /share/zoneinfo или /etc/zoneinfo .

Вы можете получить /usr/share/zoneinfo, установив пакет tzdata. Вы можете увидеть доступные области, заглянув в этот каталог, и доступные подобласти, заглянув в выбранный вами каталог областей. После выбора вы можете либо оставить пакет установленным, либо скопировать выбранный файл в /etc/zoneinfo .

Рекомендуется оставить пакет установленным.

Например, если вы выбрали регион Америка/Нью-Йорк, выполните следующее:

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

1 Этот шаг в первую очередь предназначен для распространения новой настройки на текущий сеанс.

В качестве альтернативы вы можете использовать setup-timezone , который скопирует файл для вас.

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

Репозитории

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

Вот пример файла /etc/apk/repositories, в котором используются все стабильные репозитории с основного зеркала последней версии:

Предполагая, что конфигурация вашей сети завершена, вы также можете использовать утилиту setup-apkrepos, которая получит список допустимых репозиториев и предоставит вам выбор между ними (и варианты, такие как "случайный").

Корневой пароль

На этом этапе вы должны установить пароль root. Это легко сделать — просто запустите passwd и следуйте инструкциям.

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

SSH очень удобен — это означает, что вы можете комфортно работать с эмулятором терминала, а не с raw getty (полноэкранный эмулятор, который появляется при загрузке установочного носителя Alpine). Теперь, когда у нас есть сеть, мы можем настроить демон ssh.

В настоящее время доступны два основных демона безопасной оболочки: openssh и dropbear. Последний более прост, но имеет свой (несовместимый) формат ключа и может быть настроен только через аргументы командной строки — поэтому он не рекомендуется для новичков. Вы можете установить любой из них, используя apk add name , где name — «dropbear» или «openssh» соответственно. После этого вы можете запустить его и, возможно, включить — с помощью rc-service openssh start и rc-update add openssh соответственно.

По умолчанию вы не можете использовать SSH для входа в систему как root с использованием пароля.

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

Может быть полезно убедиться, что ваши часы работают правильно. Этого можно добиться с помощью демона NTP. Некоторые из распространенных — это chronyd и openntpd. Вы можете установить их, используя apk add name , где name — нужный демон. После этого вы можете запустить его и, возможно, включить, используя rc-service name start и rc-update add name соответственно.

В настоящее время chronyd прослушивается. Рассматриваемая ошибка в основном носит косметический характер, но она может вызвать тревогу у нового пользователя. Поэтому временно рекомендуется использовать сценарий setup-ntp и выбрать busybox .

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

Разметка диска

установочный диск

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

Как сейчас, setup-disk должен работать для типичных установок с одним диском без UEFI. Если значения по умолчанию кажутся вам приемлемыми, смело используйте их. Однако в других случаях рекомендуется, по крайней мере, рассмотреть возможность выполнения этого (по общему признанию сложного) раздела установки вручную.

setup-disk также поддерживает установку без диска. Они не рассматриваются в данном руководстве.

Параметры и настройки

setup-disk настраивается с помощью аргументов командной строки, а также переменных среды. В большинстве случаев, если вы хотите, чтобы setup-disk делал всю работу за вас, вам не нужно указывать ничего, кроме -m sys , как в setup-disk -m sys . Это неполный список - в нем отсутствуют какие-либо упоминания об установке без диска, а также что-либо слишком сложное (например, автоматический lvm/raid). Если они вам нужны, перейдите на страницы руководства или страницы для разработчиков.

Файловая система, используемая в /boot , по умолчанию ext4, также поддерживает ext2, ext3, (плоские) btrfs, xfs и vfat (требуется в UEFI).

Используемый загрузчик. По умолчанию используется syslinux, но также можно использовать grub, если только не используется UEFI, в этом случае требуется grub.

Размер /boot .

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

Файловая система, используемая в / , по умолчанию ext4, также поддерживает ext2, ext3, (плоские) btrfs и xfs.

Включите этот параметр, чтобы принудительно использовать UEFI.

Используемый режим диска - вы хотите -m sys .

Работайте тише.

Укажите размер раздела подкачки.

Действовать более подробно.

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

Любая отсутствующая информация будет запрошена у вас с помощью setup-disk , поэтому измените указанное выше, кроме -m, только в том случае, если вы явно хотите переопределить значения по умолчанию/вопросы.

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

Разошлись

Parted — это редактор GNU PARTition. Это очень полезный инструмент, способный выполнять редактирование разделов различного рода, в том числе интересующие нас, как программно, так и интерактивно. По этой причине именно эту утилиту мы будем использовать в этом разделе. Начните с его установки, используя apk add parted .

Это также часть руководства, в которой вы должны определить, нужно ли вам (или хотите ли) использовать UEFI. Это решение останется за вами, но вы можете определить, загружаетесь ли вы в настоящее время с использованием UEFI, проверив, существует ли папка /sys/firmware/efi. Если это сложно, вы можете использовать следующий фрагмент, чтобы получить прямой ответ:

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

Таким образом, у нас есть 3 распространенных варианта: - установка BIOS на таблицу разделов MS-DOS - установка BIOS на таблицу разделов GPT - установка UEFI на таблицу разделов GPT

Существуют и другие параметры, но они предназначены для более опытных пользователей. Использование MS-DOS для установки BIOS более тривиально, но имеет некоторые ограничения (только 4 раздела, максимальный размер диска 2 ТБ), поэтому рассматриваются оба варианта. Также предполагается, что ваш диск достаточно большой, что небольшие потери (например, создание ESP 1 ГБ) не имеют значения для простоты установки. «Достаточно большой» в данном случае — это где-то 32 ГБ или выше. Если ваш диск меньше, вы, вероятно, используете специализированное устройство, и вам следует либо следовать методу автоматической установки, упомянутому ранее, либо выполнять установку на основе tmpfs (которая не рассматривается в этом руководстве). В следующих разделах рассматривается каждый из этих вариантов, так что не стесняйтесь переходить к выбранному.

Также обратите внимание, что вы можете заметить, что разделы «подкачки» упоминаются как флаг. «своп» на самом деле не флаг, а тип файловой системы. Это файл подкачки, предназначенный для дополнения вашей системной памяти. Рекомендуется сделать его в два раза больше вашего физического ОЗУ, но это можно считать необязательным.

Одним из распространенных применений подкачки является функция приостановки на диск, часто называемая «гибернацией», для работы которой требуется достаточно места подкачки.

В следующих разделах вы увидите такой код:

1 Это ярлык/псевдоним. Первое, о чем нужно беспокоиться, это /dev/sda — это должно быть устройство, которое вы хотите использовать для установки.
2 Parted поддерживает оба интерактивные и неинтерактивные команды. Это эквивалентно запуску parted -a optimal /dev/sda , последующему вводу mklabel msdos в приглашение или вводу mklabel в приглашение и ответу msdos на входящий вопрос. Особенности того, как вы выполняете описанное ниже, зависит от вас.

БИОС + MS-DOS

При настройке BIOS с таблицей разделов MS-DOS у нас может быть только 4 основных раздела, а размер дисков ограничен 2 ТБ. Расширенные разделы выходят за рамки этого руководства. В BIOS + MS-DOS мы можем использовать MBR для установки загрузчика, поэтому нам нужно беспокоиться только о фактических разделах данных. Вот пример схемы разбиения:

В последние годы многие интернет-провайдеры в Японии начали предлагать своим клиентам туннель IPv4-over-IPv6. Большинство провайдеров туннелей IPv4-over-IPv6 в Японии либо используют Dual-Stack Lite (DS-Lite), например, услугу transix от mfeed, либо сопоставление адреса и порта с инкапсуляцией (MAP-E, RFC 7597), например JPNE. (предлагается как услуга v6plus).

Эта статья представляет собой мои заметки по настройке превосходного PC Engines APU2 в качестве маршрутизатора и точки беспроводного доступа с использованием Alpine Linux с использованием MAP-E с So-net и JPNE. Это было бы невозможно без помощи следующих статей (на японском языке):

Окружающая среда

В настоящее время я использую NTT Flet Next с включенной опцией v6. NTT предоставила мне только ONU, поэтому мне нужен маршрутизатор с поддержкой v6plus. Вместо того, чтобы покупать готовый роутер, я решил собрать его сам. Вот оборудование, которое я использую:

  • NTT GE-PON F ONU Type D (предоставляется NTT) с WLE900VX (с поддержкой 802.11ac) (перекрестный кабель RS-232 для APU2)
  • USB-накопитель (для установки)

Я выбрал Alpine Linux в основном из-за бездискового режима и LBU. Alpine Linux может работать полностью в памяти в бездисковом режиме, а LBU можно использовать для фиксации локальных изменений на доступном для записи носителе в виде архивного файла ( .apkvol.tar ), который загружается при каждой загрузке. Если что-то пойдет не так, я могу перезагрузить маршрутизатор, и все вернется в свое последнее известное исправное состояние.

Результаты теста скорости v6plus, подключенного через Gigabit Ethernet. 802.11ac с WLE900VX может управлять задержкой до 4 мс, скоростью загрузки 400 Мбит/с и скоростью загрузки 300 Мбит/с. Ваш пробег может отличаться.

Настройка Alpine Linux на APU2

Загрузите Alpine Linux со страницы загрузки и запишите его на USB-накопитель. Моя флешка на sdb :

Доступ к APU2 возможен только через последовательную консоль с использованием перекрестного кабеля RS-232 (он же нуль-модемный кабель). Я купил DTECH USB Serial на Amazon Japan, который отлично работает. Я считаю, что PuTTY для Linux — наименее болезненный способ работы с последовательной консолью.

Вставьте флэш-накопитель USB в APU2, подключите кабель LAN к ONU и APU2, подключите последовательный кабель, откройте последовательную консоль, нажмите F10, чтобы войти в меню загрузки, затем выберите флэш-накопитель.В приглашении загрузчика добавьте console=ttyS0,115200 к имени ядра, чтобы включить последовательную консоль:

После загрузки войдите в систему с именем пользователя root и паролем alpine. Если доступен вариант v6, eth0 (или порт, подключенный к ONU) должен автоматически получить IPv6, но не IPv4. К счастью, зеркала Alpine Linux также обеспечивают доступ по IPv6. Здесь мы настроим сеть, имя хоста и зеркала.

Нам не нужен номер детали ( sda вместо sda1 ), поскольку мы также устанавливаем загрузчик, а Alpine setup-bootable достаточно умен, чтобы во всем разобраться.

После этого не перезагружайтесь. Смонтируйте /dev/sda1 в /mnt и отредактируйте /mnt/boot/syslinux/syslinux.cfg и добавьте SERIAL 0 115200, а также console=ttyS0,115200 в параметры ядра:

Также отредактируйте /mnt/boot/grub/grub.cfg:

Запустите shutdown -p now, чтобы выключить питание, извлеките флэш-накопитель USB и снова включите APU2. На этот раз мы будем загружаться с диска из чистого состояния.

Хотя можно настроить Alpine Linux без предварительной перезагрузки в дисковую установку (поскольку то, что было записано на диск, по существу совпадает с образом флешки, и LBU применит наши изменения поверх него), мне нравится начиная с чистого, чтобы я мог отслеживать, что устанавливается в процессе установки и что необходимо для работы системы.

Войдите в систему с паролем root alpine и настройте систему (повторно). Здесь мы собираемся использовать s6 для наблюдения за несколькими службами, чтобы они перезапускались при сбое. Так обстоит дело с hostapd (для Wi-Fi), где ошибка в драйвере может привести к сбою демона, что приведет к потере соединения:

Необходима перезагрузка, чтобы убедиться, что apkvol можно восстановить. После перезагрузки я теперь могу войти со своим именем пользователя и паролем. Мы готовы настроить APU2 в качестве маршрутизатора.

Настройка IPv6 и IPv4

В отличие от IPv4, где клиент домашнего интернета обычно получает один динамический IP-адрес, IPv6 обычно назначается клиенту в виде префикса /64 (т. е. 2^64 или 18 446 744 073 709 551 616 адресов). Сети IPv6 не требуют NAT, так как все устройства получают свои собственные интернет-адреса. Есть некоторые последствия для конфиденциальности, но они выходят за рамки этой статьи.

Поскольку мы не получим IPv4 через DHCP для eth0 , нам нужно активировать интерфейс при загрузке, не пытаясь получить IP-адрес. Добавьте следующие строки в /etc/network/interfaces:

Затем откройте интерфейс:

Поскольку APU2 будет действовать как беспроводной маршрутизатор, а также как коммутатор, нам нужно соединить все остальные порты с eth0, чтобы устройства, подключенные к нему, могли получить доступ к Интернету. Сначала установите пакет моста:

В качестве внутренней сети мы будем использовать 10.100.0.0/24. Здесь мы также назначаем мосту IPv4-адрес, чтобы другие устройства могли получить доступ к маршрутизатору через 10.100.0.1. Добавьте следующие строки в /etc/network/interfaces:

В настоящее время мы не поднимаем br0, так как /usr/libexec/setup-v6plus.sh до сих пор не существует. Мы собираемся использовать dnsmasq для предоставления DHCP для клиентов IPv4:

Если строка /usr/libexec/setup-v6plus.sh в файле /etc/network/interfaces закомментирована, а br0 был поднят с помощью ifup br0 , то все устройства, подключенные к APU2, теперь должны иметь как IPv4, так и IPv6. адресов, но мог получить доступ только к Интернету IPv6, так как мы еще не настроили MAP-E.

Настройка MAP-E

MAP-E работает путем настройки устройства Consumer Edge (CE) с определенным IPv6-адресом в соответствии с правилами MAP, а затем открывает туннель 4over6 к Border Relay (BR) IPv6-адрес. Эта ссылка называется домен MAP. Правила MAP используют несколько определенных битов из префикса IPv6 для формирования адреса для CE IPv6 и CE IPv4. Пример расчета правил MAP можно найти в RFC 7597, Приложение A.

Одним из самых больших препятствий при настройке собственного MAP-E было выяснить IPv6-адрес пограничного ретранслятора (BR). К счастью, IPv6-адрес JPNE BR So-net довольно хорошо известен (поиск «So-net BR アドレス» должен дать некоторые результаты). Создайте файл /usr/libexec/setup-v6plus.sh со следующим содержимым:

Скрипт настраивает домен MAP, назначая CE IPv6 интерфейсу WAN (или мосту) и создавая туннель к BR. Весь трафик IPv4 должен быть отправлен на туннельный интерфейс, поэтому мы настраиваем маршрут по умолчанию для отправки всего IPv4 в туннель. Затем нам нужно настроить nftables для выполнения SRCNAT для определенных номеров портов в соответствии с правилом MAP.

Отредактируйте или создайте файл /etc/firewall.nft, указав CE IPv4 и номера портов, полученные с помощью калькулятора. Некоторые части опущены для краткости. Необходимое нам количество отметок — это номер диапазона портов, который мы получили из калькулятора:

Пришло время поднять br0 , nftables и dnsmasq (если мы еще этого не сделали)!

Если все прошло хорошо, теперь у нас есть доступ к сети IPv4 через туннель 4over6. Соединения IPv4 ограничены количеством назначенных нам портов (например, 210 портов в случае v6plus). Это ограничение применяется только к IPv4 из-за того, как работает MAP-E.IPv6 не имеет этого ограничения.

Настройка беспроводной точки доступа

Мы можем превратить наш APU2 в точку беспроводного доступа с помощью hostapd.

Отредактируйте /etc/hostapd/hostapd.conf со следующим содержимым:

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

Завершение

Если все работает правильно, теперь мы можем зафиксировать текущие изменения с помощью LBU:

Читайте также: