Несмотря на то, что есть стабильная сборка рефлектора под Windows, лучшим решением будет конечно его установка на Linux машине. Вместо компьютера, в качестве сервера для ysf рефлектора можно использовать недорогую плату PasberryPi. Ресурсов даже Pi Zero W вполне достаточно для стабильной работы рефлектора! В этой статье мы пошагово произведём установку на Raspberry, попутно я постараюсь описать все возможные подводные камни. Ставить будем на "чистой", только что установленный Raspbian. Скачиваем образ Raspbian Buster Lite отсюда: https://www.raspberrypi.org/downloads/raspbian/.  Buster это последняя версия Raspbian на момент написания этой статьи. Извлекаем образ из архива и записываем его на флэш-карту. Проще всего сделать это с помощью программы https://www.balena.io/etcher/.

Чтобы не подключать Raspberry к монитору, не подключать клавиатуру и мышь, до первой загрузки подключаем карту с записанным образом к компьютеру и вносим небольшие изменения. Необходимо создать пустой файл с именем ssh в разделе boot. Это нужно для того, чтобы указать системе включить возможность подключения по SSH.

Если подключение raspberry к локальной сети будет осуществляться через wifi, необходимо создать файл wpa_supplicant.conf в корневом каталоге. Содержимое файла должно быть следующим:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

update_config=1

ap_scan=1

fast_reauth=1

country=JP

network={

ssid="ИмяВашейСети"

psk="ПарольВашейСети"

id_str="0"

priority=100

}

В файле корректно укажите имя вашей сети и пароль. При загрузке, файл будет автоматически перемещен в / etc / wpa_supplicant /, поэтому вы больше не найдете его в корневом разделе. Все готово к первой загрузке! Устанавливаем карту в Raspberry и включаем питание, и если необходимо - кабель локальной сети. Загружаемся! Чтобы найти ip адрес нашей "малины" можно заглянуть в настройки вашего роутера. Но можно найти его с помощью ip сканера. Самый простой и удобный качаем тут: https://www.advanced-ip-scanner.com/ru/.

Программа имеет режим "только запустить" но можно и установить её, поскольку она не раз еще может пригодиться. Интерфейс очень прост - жмём "сканировать" и смотрим результаты. На скриншоте видно, что у raspberry адрес 192.168.1.12. У вас он вероятнее всего будет другим.

Для подключения к Raspberry  нам потребуется SSH клиент. Самый простой и популярный - PuTTY. Скачать можно тут: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html. Можно скачать в том числе и портативную версию.

Интерфейс у программы прост:

Запускаем, устанавливаем режим SSH, вбиваем ip адрес, по желанию пишем имя и сохраняем профиль на будущее. Жмём "соединиться". При первом подключении putty предупредит вас о необходимости обновить ключи, соглашаемся. Оказавшись в окне терминала логинимся с логином pi и паролем raspberry.

Обновляем пакеты и зависимости: sudo apt-get update sudo apt-get upgrade Процесс апгрейда довольно длительный, можно смело идти готовить себе чашечку кофе или чая! :) Примечание: любому другому свежеустановленному Linux-дистрибутиву update и upgrade так же настоятельно рекомендуется провести! На этом подготовка завершена, начинаем непосредственно установку. Это можно проделать с помощью скрипта автоматической установки но я очень не рекомендую этот способ. На то есть несколько причин, и мы не станем углубляться в полемику по этому поводу. Вместо этого быстренько сделаем всё вручную, заодно будем четко понимать что и для чего мы делаем! ;) Ручная установка: Первое, что необходимо сделать - скачать исходники, но до этого необходимо установить git. sudo apt install git git clone https://github.com/g4klx/YSFClients.git Эта команда скопирует текущие исходники всего проекта YSFClients в папку «YSFClients». В этом каталоге вы найдете папку «YSFReflector». Заходим  в YSFClients/YSFReflector: cd YSFClients/YSFReflector Выполняем: sudo make clean all Через минуту-другую процесс компиляции завершится, и вы получите исполняемый файл "YSFReflector". В этом же каталоге мы также получили YSFReflector.ini, который нужно настроить в соответствии нашими потребностями. Заполняем там следующее: Указываем рефлектору запускаться как демон во время запуска операционной системы:

Daemon=1

Имя для вашего рефлектора в параметре "Name=" длинной не более 16 символов

Name=Your Reflector's name

Описание вашего рефлектора в параметре "Description=" длинной не более 14 символов

Description=Your Reflector's description

Так же указываем путь сохранения логов:

FilePath=/var/log/YSFReflector

Редактируем файл и вносим вышеописанные изменения с помощью редактора nano:

sudo nano YSFReflector.ini

По окончании редактирования нажимаем Ctrl + X, «Y», ENTER.

Далее нам нужно добавить пользователя и группу "mmdvm". Выполняем:

sudo groupadd mmdvm

sudo useradd mmdvm -g mmdvm -s /sbin/nologin

Создаём каталог для хранения логов

sudo mkdir /var/log/YSFReflector

Устанавливаем для пользователя mmdvm права на запись в каталог хранения логов:

sudo chown mmdvm /var/log/YSFReflector

На странице посвященной установке рефлектора ( https://register.ysfreflector.de/installation ), описан скрипт запуска рефлектора. Его предлагается создать. Странно, ведь файл YSFReflector.sh лежит среди файлов скачанных с гитхаба! Необходимо лишь сделать его исполняемым:

sudo chmod +x YSFReflector.sh

После этого, необходимо разложить файлы в соответствии с тем, как они описаны в скрипте, либо переписать сам скрипт. Разумнее и правильнее разложить файлы так, как они указаны в скрипте.

Копируем YSFReflector.sh в каталог /etc/init.d/

sudo cp YSFReflector.sh /etc/init.d/YSFReflector.sh

Копируем YSFReflector.ini в каталог /etc/

sudo cp YSFReflector.ini /etc/YSFReflector.ini

Копируем YSFReflector в каталог /usr/local/bin/

sudo cp YSFReflector /usr/local/bin/YSFReflector

Осталось только сделать так, чтобы при запуске ОС стартовал наш скрипт запуска рефлектора:

В полноценном дистрибутиве Debian можно использовать команду: sudo chkconfig YSFReflector.sh on .

Но у нас Raspbian и эта команда не сработает. Даже если вы установите chkconfig, выполнив "sudo apt install chkconfig", это не решит проблему! К счастью, проблема вполне решаема! Приступим:

sudo nano /etc/rc.local

После начальных комментариев (строки начинающиеся с '#') добавьте следующую строчку:

sudo /etc/init.d/YSFReflector.sh start

Сохраняем изменения, нажав Ctrl + X, «Y», ENTER

Перезагружаем Raspberry:

sudo reboot now

После перезагрузки рефлектор запустится автоматически!

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

sudo /etc/init.d/YSFReflector.sh start

Если потребуется изменить имя или описание вашего рефлектора - вы можете изменить YSFReflector.ini, как и прежде, командой:

sudo nano YSFReflector.ini

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

sudo nano /etc/dhcpcd.conf

Прокручиваем файл до строк:

# It is possible to fall back to a static IP if DHCP fails:

# define static profile

#profile static_eth0

static ip_address=192.168.1.12/24

static routers=192.168.1.1

static domain_name_servers=192.168.1.1

В выделенных полужирным строках убираем комментарий (решетку), меняем ip адреса на необходимые нам, стандартно сохраняем файл и перезагружаем систему. В теории, нужно устанавливать ip для каждого интерфейса, но на практике, достаточно просто явно указать ip!

Вот собственно и всё!

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

passwd

вводим старый пароль и затем два раза новый НАДЁЖНЫЙ пароль.

Установка рефлектора окончена, но вы пока еще не сможете подключиться к нему через сеть интернет! Дело в том, что несмотря на то, что он подключен к интернету, доступа из интернета к нему нет! Всему виной NAT роутера. Для того, чтобы был доступ из интернета к вашему рефлектору, вам необходимо "пробросить порт" 42000 из интернета к вашему рефлектору по его внутреннему ip. Как это сделать в вашей модели роутера - это отдельный большой вопрос, поскольку моделей роутеров существует великое множество. Поэтому, за ответом на этот вопрос вам придётся обратиться к гуглу! ;)

После проброса порта 42000 можете полноценно наслаждаться работой вашего рефлектора.

Вместо заключения:

Проведены пара тестов. Операционная система на флэш-карте 16Gb была запущена на zero и 3b+ поочерёдно. Оказалось, что на зеро, согласно показаниям дашборда, нагрузка на процессор составила 8 процентов, в 3b+ 1.8 процента.

Несмотря на то, что созданный таким образом ysf рефлектор вполне работоспособен, я не могу рекомендовать подобный подход для построения рефлектора работающего 24/7. Это скорее хорошее решение для тестов и экспериментов. Причина моих сомнений - флэш-карта. Она довольно быстро придёт в негодность! Способы увеличения продолжительности жизни флеш-карты есть и мы рассмотрим их немного позже. А сейчас, вы можете изучить руководство по установке дашборда на ysf рефлектор.

До будущих встреч! 73! UA6AHP.