Несмотря на то, что есть стабильная сборка рефлектора под 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.