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

Сначала я взял лежавший у меня RPI4, накатил на него готовую сборку Openwebrx (без плюса) и подключил SDRPLAY.





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

В общем я купил Rockpi4a и несколько RTL-SDR, сначала три приемника и кв-апконвертер с пассивным делителем, затем поставил пять приемников и усилитель после апконвертера.
Три приемника


Пять приемников, фото версии с двумя приемниками на УКВ, потом диапазоны были распределены иначе, 4 на КВ и 1 на СИБИ.


Последние версии фильтров
КВ

СИБИ


Схема до переделки фильтров.


На Rock Pi 4 A rtl-sdr полосой 2.8 МГц первый клиент загружает проц на 11%, каждый следующий - 4%
Вебсдрка была так себе, во-первых дешевые rtl sdr излучают помехи при работе, во-вторых нагрузка одноплатника вызывала просадку напряжения питания конвертера и уход частоты, в третьих максимально дешевые свистки на r828 дрейфуют по частоте после включения, из-за прогрева кварца. Поэтому я решил перекатитья на клоны SDRPLAY без корпуса и вч коммутаторов, которые к моменту принятия решения подешевели до 700р. Вот такие.

После серии экспериментов с ними и rockpi4a выяснилось следующее:
Во-первых, у RSP1a меняется разрешение АЦП при изменении полосы обзора
14bit 2MSPS 6.048MSPS
12bit 6.048MSPS 8.064MSPS
10bit 8.064MSPS 9.216MSPS
8bit >9.216MSPS
плюс реальная полоса пропускания немного ниже, примерно на 0.6МГц, из-за скатов аналоговых фильтров ПЧ тюнера, так что для того чтобы перекрыть весь КВ нужно 4 приемника, я установил полосы пропускания 8МГц, соответственно 12 бит разрешение и 7.6 МГц полосы на приемник. Я считаю что падение разрешения в целых 4 бита ради увеличения полосы до 9.6 - неоправданная жертва.
Во-вторых rockpi4a с камнем rk3399 даже с большим радиатором-кирпичом не тянет все 4 приемника, три приемника по одному клиенту, и то уже с разрывами звука.


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

Затем я собрал вебсдрку в своем старом десктопе. Приемники - RSP1a полосой 8МГц.
core i3-4130, 4g ram
один приёмник нагружает систему на 42%
второй пользователь на приёмнике добавляет 1-2%
четыре приемника нагружают на 77% (но это очень неточно, ингода второй приёмник даже не добавляет нагрузки)

rk3399 4g ram
один приёмник нагружает систему на 38%
второй пользователь добавляет 7-8%
второй приёмник добавляет 39%
три приемника уже тянет с тормозами

В общем я купил Xeon E3-1270v3, подключил еще один RSP1a на укв и HACKRF на сатком. Нагрузка на ксеоне с 5 RSP1a по 8МГц и HACKRF на 20МГц полосы.


Делители сигнала в новом SDR
Сначала, когда стоял только КВ блок я по-быстрому запилил примитивный делитель на трансформаторе. Одна первичная обмотка на 10 витков, 4 вторичных обмотки (выходы на приемники) по 5 витков, плюс несколько защит.


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







Внешний вид (монтаж плох, между катушками сильная индуктивная связь)


Плюс для запихивания КВ+УКВ в один кабель пришлось запилить еще пару диплексеров, один установленный на балконе запихивающий УКВ и КВ в один кабель.


Другой в корпусе пеки, разделяющий и обратно.

UPD 26.10.2023
Переделан блок фильтров (посредственные ттх вышли, надо будет переделать), добавлен пятый приемник на диапазон 0-1.8МГц, блоки защты, фильтров и приемников запихнуты в экран (корпус АТХ блока птания).

Антенная система сейчас

Расположение антенн


Фото антенного блока и укв антенны




Схема диплексера



Балун (магнитный трансформатор 40:1 на кольце относительно большого диаметра - минимальная емкостная связь между обмотками), затем был добавлен длинный дроссель синфазного тока.



Внутре нет неонки(а стоп, разрядник на 75в газонаполненный и светится  в поле Теслы), таки есть у нее неонка!


В сборе


OpenWebRx
Бесплатный сервер вебсдр поддерживающий большое количество приемников, распространяется без ограничений. Использует CSDR, так что он не так экономичен как websdr от PA3FWM, но при небольшом количестве пользователей это не критично, плюс имеет огромное количество фич, встроенную карту на которой отображаются другие вебсдр зарегистрированные на своих сервисах, OWRX, websdr, Kiwisdr, расписания вещаний разных станций, плюс отображаются координаты декодированных сообщений APRS,WSPR,HFDL, все в которых передаются координаты (да, есть куча встроенных декодеров, метеофаксы, ISM. Много их.








Результаты приема нескольких диапазонов ft8 + hfdl + AIS в нескольких вкладках выводятся на одну карту.



Настройка
С использованием Docker
Нужен curl
sudo apt install curl

ставим докер
curl -sSL https://get.docker.com | sh

ставим OpenWebRx
sudo docker pull jketterl/openwebrx-full:stable
sudo docker volume create openwebrx-settings

Отключаем мешающие драйвера. Редактируем файл
sudo nano /etc/modprobe.d/blacklist.conf

добавляем в конец строчки
blacklist dvb_usb_rtl28xxu
blacklist sdr_msi3101
blacklist msi001
blacklist msi2500
blacklist hackrf
выход из редактора - Ctrl+O, Enter - сохранить файл, Ctrl+Х закрыть редактор

Чтобы приемник запускался автоматом после включения одноплатника достаточно ввести один раз
sudo docker run --restart always --name OPENWEBRX --device /dev/bus/usb -p 8073:8073 -v openwebrx-settings:/var/lib/openwebrx jketterl/openwebrx-full:stable

перезагружаем
sudo reboot

создаем аккаунт для веб-интерфейса приемника (доступ к настройкам на веб-странице радио)
sudo docker exec -it OPENWEBRX bash
python3 openwebrx.py admin adduser username
Далее с этими логином и паролем заходим в настройки в веб-интерфейс.

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

Если использовалась убунта с этого сайта то процесс установки нужно пропустить, там уже стоят драйвера и сам openwebrx.

Оригинал инструкции OpenWebRX+ Package Repository | ppa (luarvique.github.io)
Установка
sudo su
apt install gpg (вроде его в убунте нет по дефолту)
Добавляем репозитории
для Debian
wget -O - https://luarvique.github.io/ppa/openwebrx-plus.gpg | gpg --dearmor -o /etc/apt/trusted.gpg.d/openwebrx-plus.gpg
echo "deb [signed-by=/etc/apt/trusted.gpg.d/openwebrx-plus.gpg] https://luarvique.github.io/ppa/debian ./" > /etc/apt/sources.list.d/openwebrx-plus.list
wget -O - https://repo.openwebrx.de/debian/key.gpg.txt | gpg --dearmor -o /usr/share/keyrings/openwebrx.gpg
echo "deb [signed-by=/usr/share/keyrings/openwebrx.gpg] https://repo.openwebrx.de/debian/ bullseye main" > /etc/apt/sources.list.d/openwebrx.list


для Ubuntu
wget -O - https://luarvique.github.io/ppa/openwebrx-plus.gpg | gpg --dearmor -o /etc/apt/trusted.gpg.d/openwebrx-plus.gpg
echo "deb [signed-by=/etc/apt/trusted.gpg.d/openwebrx-plus.gpg] https://luarvique.github.io/ppa/ubuntu ./" > /etc/apt/sources.list.d/openwebrx-plus.list
wget -O - https://repo.openwebrx.de/debian/key.gpg.txt | gpg --dearmor -o /usr/share/keyrings/openwebrx.gpg
echo "deb [signed-by=/usr/share/keyrings/openwebrx.gpg] https://repo.openwebrx.de/ubuntu/ jammy main" > /etc/apt/sources.list.d/openwebrx.list
apt update
apt install openwebrx
В процессе установки система попросит поставить пароль к веб-интерфейсу настроек приемника, имя пользователя сменить сейчас нельзя.

Блокируем драйвера
nano /etc/modprobe.d/blacklist.conf
добавляем в конец открывшегося файла строчки
blacklist dvb_usb_rtl28xxu
blacklist sdr_msi3101
blacklist msi001
blacklist msi2500
blacklist hackrf
сохраняем
ctrl+o
enter
закрываем редактор
ctrl+x

установка драйвера sdrplay
wget https://www.sdrplay.com/software/SDRplay_RSP_API-Linux-3.07.1.run
chmod 755 ./SDRplay_RSP_API-Linux-3.07.1.run
./SDRplay_RSP_API-Linux-3.07.1.run
apt install soapysdr-module-sdrplay3

необязательно, удаление модуля miri (старый linux драйвер для тв-тюнеров на базе микросхем на которых делается SDRPlay)
apt purge soapysdr0.8-module-mirisdr


Дополнительно.
Если компьютер будет работать именно как сервер, и рабочий стол не нужен то можно управлять загрузкой графической оболочки командами ниже (требуется перезагрузка)
отключение рабочего стола (консоль будет доступна)
sudo systemctl set-default multi-user
вернуть рабочий стол
sudo systemctl set-default graphical

У меня была проблема: openwebrx теряет приемник после выключения\включения питания но после перезагрузки sudo reboot - работает.
Проблема оказалась где-то на стыке usb3 драйверов, sdrplay и soapy. Если я отключал в BIOS XHCI полностью - радио работало после выключения-включения питания, но нельзя было одновременно запустить приемники включенные в соседние порты на материнке (на ней всего 2 EHCI контроллера, и их пропускной способности хватает только на 2 приемника в режиме 8MSPS 12 bit). Если я включах XHCI в любом режиме (enabled, manual, auto, smar auto) и с любым режимом XHCI hand-off  все четыре приемника могли работать одновременно, но при пропадании и восстановлении питания терялись, lsusb устройства видел, SoapySDRUtil --find же устройств не видел. Но если после включения питания перезагрузить машину sudo reboot, все работало. Я оставил XHCI включенным, не покупать же еще два pci-express>usb контроллера, и добавил в crontab ежесуточную перезагрузку ночью, на всякий.

Настройка:
Первым делом в консоли на сервере выполняем:
sudo openwebrx admin adduser [username]     
Вводим имя и пароль нового юзера.
Затем, если у вас больше одного приемника и они подключены к разным антеннам или фильтрам то нам надо определить их серийники чтобы указать в настройках. Если у вас один приемник или несколько подключены к одной антенне через простой делитель то на серийники можно забить.
SoapySDRUtil --find
Пример вывода с обрезанной лишней информацией, подключено 3 устройства, серийный номер при работе soapy зависит от того к какому порту подключен клон sdrplay
.......
Found device 6
  driver = sdrplay
  label = SDRplay Dev0 RSP1 B0003P0001
  serial = B0003P0001

Found device 7
  driver = sdrplay
  label = SDRplay Dev1 RSP1 B0003P0003
  serial = B0003P0003

Found device 8
  driver = sdrplay
  label = SDRplay Dev2 RSP1 B0003P0002
  serial = B0003P0002

Строки вида serial = B0003P0002 представляют собой номера устройств RSP1a в системе, это не реальные серийники, это номера USB портов на шинах в которые вставлены приемники. Запишите их, они используются в качестве идентификаторов при назначении приемников.

В случае с RTL-SDR серийники можно менять.
В линуксе можно втыкать приемники по одному в компьютер, и менять серийники командой
rtl_eeprom -s XXXXХXXX (x-серийный номер, восемь цифр).
Либо если несколько приемников воткнуты через хаб то:
rtl_eeprom -d n -s XXXXXXXX где n - порядковый номер, начинается с нуля


В винде можно сменить серийник с помощью rtl1090:
Создаем ярлык для программы, заходим в свойства ярлыка и в поле "объект" дописываем после пробела /EEPROM , сохраняем и запускаем, жмем в программе кнопку START, откроется окно где можно выставить новый серийник.


Далее в веб-интерфейсе настроек идем в настройки устройств, добавляем новое


Выбираем сдр и драйвер


В настройках приемника Settings/SDR device settings/Device settingsкаждого приемника нужно добавить параметр device identifier.
Additional optional settings>device identifier


Добавляем серийник приемника вида serial=xxxxxxxx,


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

Также при использовании большого количества приемников работающих одновременно стоит увеличить usbfs буфер, в линуксе он по умолчанию 16мб, иначе при большом количестве клиентов начинает глючить водопад - картинка водопада сдвигается относительно шкалы частот
1. sudo nano /etc/default/grub. В строку: GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" добавьте  usbcore.usbfs_memory_mb=1000 чтобы итоговая строка выглядела так 
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.usbfs_memory_mb=1000"
2. Обновите grub: sudo update-grub и перезагрузите сервер sudo reboot.

----------------------------------------------------------------------------------------------------------------------------------------------------------------------
Установка websdr PA3FWM
Вебсдр распространяется по личному запросу, и в теории использование без разрешений это пиратство. Но дистрибутив валяется в интернете, сборка 14 года, в современных браузерах нужно в настройках разрешать воспроизведение звука на нем вручную, сервер с одним клиентом дрет 3\4 ресурсов по сравнению с OpenWebRx+ с аналогичными настройками приемника. Но нагрзка на дополнительных клиентов у него меньше, так что есть смысл его использовать.
Установка
Установка на убунту 22.04 описана тут https://www.sdrutah.org/info/websdr_Ubuntu_2204_install_notes.html

В Ubuntu 22.04:
add-apt-repository ppa:linuxuprising/libpng12
apt update
apt install libpng12-0
nano /etc/apt/sources.list
в конец файла добавляем строчку
deb [trusted=yes] http://security.ubuntu.com/ubuntu xenial-security main
жмем ctrl+o для сохранения, ctrl+x для закрытия редактора.
apt update
apt install libssl1.0.0

Копируем дистрибутив websdr в /opt
в /opt/websdr/cfg/websdr.cfg раскомментируйте #noorgserver или вебсдр потребует ваш мейл и координаты и не запустится.

теперь можно запустить сервер для проверки с вводом сигнала через звуковую карту (для работы с приемниками SOFTROCK)
cd /opt/websdr/dist11
sudo ./websdr64
(если тупо не стартует возможно нужно сделать его исполняемым и дать права на запись\чтение)
Посмотрите что сервер вывалит в консоль, он очень капризный и если ему что-то не по нраву он не запустится и не покажет веб-страничку, также в первый запуск он проводит калибровку и возможно потребуется рестартнуть его прибив killall'ом и запустив снова.
Теперь можно открыть страничку вебсдр в браузере, на сервере адрес будет http://localhost  http://127.0.0.1 ВНИМАНИЕ, НЕ https, также можно указать порт :80

Конфигурационный файл находится в папке /opt/websdr/cfg/websdr.cfg
Для работы с приемником rtl-sdr в конфигурационном файле после строчки # We need to configure at least one band: добавьте

band 2m
device !rtlsdr 127.0.0.1:64000     //ip и порт RTL_TCP сервера
samplerate 2048000                    // полоса
centerfreq 145000                         // центральная частота
antenna dipole                               //тип антенны (для описания на сервере
gain -25                                          // усиление
extrazoom1

Затем в консоли запустите RTL_TCP сервер
cd /opt/websdr/dist11/
rtl_tcp -a 127.0.0.1 -p 64000 -f 145000K -g 0 -s 2048000 &
Затем запустите  сам сервер
./websdr64
 теперь он работает с приемнипком rtl_sdr

Для автоматического запуска создайте файл, например websdr.sh в папке /etc/init.d с содержимым
#!/bin/sh
sleep 12
cd /opt/websdr/dist11/
rtl_tcp -a 127.0.0.1 -p 64000 -f 145000K -g 0 -s 2048000 &
sleep 10
./websdr64

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

конфигурация нескольких приемников на сервере (не пробовал, и непонятно как указывать конкретные приемники по серийнику, похоже нужно каждый раз сопоставлять серийник и условный номер устройства, см. тутhttps://derushadigital.com/other%20projects/2019/02/15/RTLSDR-service.html)
Для начала в случае с rtl-sdr нужно запустить серверы rtl-tcp в скрипте автозапуска, на разных портах, затем указать их в файле конфигурации сервера

Пример запуска двух приемников
Файл автозапуска /etc/init.d/websdr.sh
---------------------------------------------------------------
#!/bin/sh
cd /opt/websdr/dist11/
rtl_tcp -a 127.0.0.1 -p 64000 -f 145000K -g 0 -s 2048000 -d0 &
rtl_tcp -a 127.0.0.1 -p 64001 -f 433000K -g 0 -s 2048000 -d1 &
sleep6
./websdr64
--------------------------------------------------------------
где:
-p 64000     порт сервера rtl_tcp (разные приемники на разные порты)
-f 145000K     центральная частота
-g 0         усиление ( 0-автоматически)
-s 2048000     полоса частот
-d0         условный порядковый номер устройства


Файл конфигурации сервера /opt/websdr/cfg/websdr.cfg
секция настройки диапазонов
------------------------------------------------------------------------------
############################################################################


# We need to configure at least one band:

band 2m                название диапазона
device !rtlsdr 127.0.0.1:64000    устройство (необходимо запустить его в скрипте автозапуска)
samplerate 2048000        рабочая полоса
centerfreq 145000        центральная частота
antenna dipole            тип антенны (просто для справки слушателей0
gain -25           
extrazoom1

band 70сm            название диапазона
device !rtlsdr 127.0.0.1:64001    устройство (необходимо запустить его в скрипте автозапуска)
samplerate 2048000        рабочая полоса
centerfreq 433000        центральная частота
antenna gp            тип антенны (просто для справки слушателей0
gain -25           
extrazoom1

Сравнение нагрузок OWRX и WEBSDR при одинаковых настройках приемника:
Один пользователь



4 пользователя



SDRPLAY и PA3FWM websdr
https://www.sdrutah.org/info/sdrplay_rx.htmll
https://www.sdrutah.org/info/higher_rate_16b_websdr.html
websdr который PA3FWM распространяет изначально работал только с аудиовходами звуковых карт (приемниками типа softrock), этот интерфейс дает 16бит вход и предельную теоретическую полосу в звуковой системе ALSA 768kSPs,  возможность подключать rtl_tcp была прикручена позже, и интерфейс делался под RTL, и работает только с 8 битами.
Для SDRPLAY написаны пара вариантов утилит rsp_tcp. Эта версия выдает 8 и 16 бит поток, по выбору, и не управляет усилением и аттенюатором приемника, выставляя захардкоженное очень низкое, неюзабельное значение усиления. Вторая версия может управлять усилением и включать АРУ, но выдает только 8бит. Во всем остальном, в теории если запустить эти серверы и подключить к ним websdr он будет работать, но зачем, 8 бит выдаст и РТЛка.
Сисадмины вебсдр Северной Юты настолько преисполнились от работы с этим софтом что пустились во все тяжкие.
Во-первых они пробовали запускать 16 битный сервер rsp_tcp и с помощью netcat отправлять из него данные в звуковую  систему.
старт сервера
rsp_tcp -a 127.0.0.1 -p 1234 -f 5000000 -s 192000 -b 16 &
создание виртуального звукового интерфейса
sudo modprobe snd_aloop
запихиваем поток с выхода сервера rsp_tcp прямо в звуковую подсистему
nc 127.0.0.1 1234 | aplay -D <sound_device_name> -r 192000 -c 2 -f s16_le
узнаем id звукового устройства
aplay -l
если к примеру оно получило id  hw:2,1,0 то в websdr.config нужно указать hw:2,1,1 (последняя цифра указывает вход это или выход)
Полчим 768 кгц 16 бит с приемника который в состоянии работать полосой в десять раз больше. И без возможности регулировать усиление которое установлено в нереально низкое значение.
Админы Northern Utah Websdr в попытке использовать sdrplay не через жопу написали несколько программ
https://github.com/CrumResearch/sdrplayalsa берет поток с приемника и запихивает его звуковую систему минуя tcp_ip и netcat. Умеет в реглировки АРУ, усиления, аттенюатора, децимации, полосы. Скачать бинарник 64х. использование и настройки описаны на этой странице.
Ах да, для того чтобы зарядить 768кгц полосы через звуковую подсистему вам нужно заменить утилиту aplay на написанную админами N.U.Websdr утилиту fplay.
Еще можно используя CSDR снять с одного приемника потоки на несколько диапазонов.
https://www.sdrutah.org/info/using_csdr_for_auxiliary_receivers_on_a_websdr.html
В общем ребята знатно заморочились и это стоило упомянуть здесь, простого способа реализовать зотя бы преимущество SDRPLAY в битах перед rtl нет. А в полосе - все равно эта вебсдрка больше двух не может прожевать.

Прочие игрища
За внешний вид страницы отвечает файл /dist/pub2/websdr-control.html
Его можно отредактировать даже редактором типа Kompozer




Добавление кнопки "Включить звук" (решение проблемы с отсутствием звука в браузерах после 2019 года)
https://www.sdrutah.org/info/chrome_WebSDR_fix.html



--------------------------------------------------------------------------------------------------------------------------------------------
На реддите есть раздел в котором ведется неспешная разработка вебсдрки novasdr
Тестового доступа к софту пока нет
https://www.reddit.com/r/novasdr/



--------------------------------------------------------------------------------------------------------------------------------------------
Настройка сети.

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


1: Внешний IP (арендуется у вашего провайдера, но если это невозможно есть способы создания туннелей к другим серверам которые имеют внешний IP, вебсдр это обыччный сайт и все трюки связанные с этим работают и для него)
2: (опционально) DNS имя для того чтобы иметь легко запоминающееся имя вместо 12 цифр записанны через точки, также с DNS именем ваш вебсдр будет индексироваться гуглом.
Если ваш кабель от провайдера воткнут прямо в вебсервер то больше настраивать ничего не нужно, но я думаю вы сами хотите пользоваться интернетом, тем более что вебсдр - не особо посещаемые ресурсы, поэтому нужны еще два пункта.
3: Настроенный статический IP в локальной сети на сервере вебсдр (настраивается на сервере вебсдр).
4: Роутер настроенный на проброс порта 8073 (для OpenWebRx) или 8901 (для websdr, но в моем случае при запуске от root он работал на 80 порту) на IP нашего сервера в локальной сети (настраивается в панели настроек роутера).


Настройка статического IP на сервере.
Проще всего сделать с рабочего стола. На сервере вебсдр тыкаем мышкой в значок сети на рабочем столе, выбираем настройки проводной сети.

Тыкаем на значок шестеренки у работающего соединения

Ставим ручной режим и выставляем ip адрес, маску подсети, адрес шлюза и DNS.
Обычно домашние роутеры имеют сеть вида:
Адрес шлюза 192.168.0.1 или 192.168.1.1
Маска подсети 255.255.255.0
Адрес DNS гугла 8.8.8.8
Адрес самого сервера может лежать в пределах 192.168.0.2-192.168.0.254 или 192.168.1.2-192.168.1.254, запишите его, он понадобится при настройке проброса портов в роутере.


Тут внимание, нужно чтобы выбранный вами адрес НЕ ПОПАДАЛ в пул адресов которые выдаются вашим роутером динамически, в моем тп-линке настройка по умолчанию выглядит так


Пул адресов которыми распоряжается DHCP 192.168.0.100 - 192.168.0.199, значит я могу выбрать адрес сервера в диапазонах 192.168.0.2 - 192.168.0.99 или 192.168.0.200 - 192.168.0.254

Проброс портов в роутере.
В роутерах разных производителей это делается по-разному, суть в следующем: по умолчанию роутер не пропускает в локальную сеть запросы из внешнего интернета, поскольку так работает сам NAT, роутер не знает какому из подключенных компьютеров пришел внешний запрос. Поэтому для того чтобы наш сервер стал доступен извне нам нужно сказать роутеру чтобы все запросы приходящие на определенный порт он отправлял на определенный ip адрес в локальной сети (адрес сервера который мы настроили выше). Например адрес моего сервера в локальной сети 192.168.0.8, у OpenWebRx рабочий порт 8073. Соответственно это внутренний адрес и порт в настройке. А вот внешний порт можете поставить другой, тогда из внешнего интернета вы сможете открыть ваш вебсдр по ссылке http://ваш внешний ip: внешний порт в настройках роутера.
Внешний ip же выдается провайдером.
Вот пример настройки моего tp-link, наверно одна из самых распространенных марок роутеров.


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

DNS запись (необязательно, см подробности)
Если вы только подключили внешний ip то во-первых его сложно запомнить, чтобы допустим зайти с чужого компьютра, а во-вторых, но самое важное - приемник не будет индексироваться гуглом. Для этого нужно купить DNS имя. Это то самое имя типа google.ru которое вводится в строке браузера. Служба DNS это такой автоматизированный "телефонный справочник" который автоматически передает вашему браузеру ip адрес который соответствует доменному имени.
Для этого стоит посмотреть какие регистраторы имен есть, зарегистрироваться в одном из них, выбрать свободное доменное имя, оплатить регистрацию , (обычно на год, имена стоят по-разному, в зависимости от популярности и.т.д) а потом зайти в личный кабинет и вбить ваш внешний ip адрес который вам выдал провайдер.
Ниже пример, настройки моего адреса hoshinokoe.ru

Обратите внимание: если вы в пункте настройки роутера настроили проброс портов вида "внешний ip:8073 -  ip адрес сервера:8073"  то чтобы попасть на вебсдр вам после регистрации DNS нужно в адресной строке браузера вводить адрес в виде "http://доменное_имя.ru:8073"
Чтобы не вводить вручную порт можно настроить на роутере проброс портов вида "внешний ip:80 - ip адрес сервера:8073". Дело в том что порт 80 стандартный для http, и браузеру не нужно будет указывать порт чтобы попасть на интерфейс OpenWebRx, то есть вебсдр будет доступен просто "http://доменное_имя.ru".

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

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


--------------------------------------------------------------------------------------------------------------------------------------------
К вебсдр это не относится, но если есть пара (десятков) сдр приемников то можно организовать нехилый виртуальный онлайн-радар для кораблей и самолетов.
Virtual radar server
Linux - Virtual Radar Server
Программа создает веб-страничку с картой, принимает от разных декодеров данные и отображает на карте самолеты.

Принимать данные может через UART, TCP, UDP порты.

HFDL
Для линукс есть консольный декодер HFDL который может обработать столько каналов HFDL сколько позволяет полоса SDR и мощность компьютера, а потом скормить декодированные данные в Virtual Radar Server или подобный софт.
Установка требует компиляции самого dumphfdl и еще нескольких софтин.
GitHub - szpajder/dumphfdl: Multichannel HFDL decoder
Локальная копия исходников (сохранена на случай вторжения некронов)
Пример запуска с отправкой декодированного на виртуальный радар по TCP

dumphfdl --soapysdr driver=sdrplay --gain-elements IFGR=40,RFGR=0 --sample-rate 6000000 8825 8834 8843 8885 8886 8894 8912 8921 8927 8936 8939 8942 8948 8957 8977 10027 10060 10063 10066 10075 10081 10084 10087 10093 11306 11312 11318 11321 11327 11348 11354 11384 11387 11184 11306 13264 13270 13276 13303 13312 13315 13321 13324 13342 13351 13354 --freq-as-squawk --output decoded:basestation:tcp:address=127.0.0.1,port=20005 --system-table /home/aholt/dumphfdl/etc/systable.conf

Пример трехчасового мониторинга на нескольких диапазонах


ADS-B
Антенна

В случае с ADS-B всю работу делает программа dump1090. При запуске командой dump1090 --interactive --net --net-http-port 8080 (возможно если хотите еще прием AIS с картой запилить стоит сменить порт) читает с rtl-sdr, декодирует, создает веб-сервер и рисует карту с самолетами на веб-страничке. Карта по умолчанию работает по адресу localhost:8080
Опции программы

rtlsdr-specific options (use with --device-type rtlsdr)
--device <index|serial> select device by index or serial number
--enable-agc enable digital AGC (not tuner AGC!)
--ppm <correction> set oscillator frequency correction in PPM
--direct <0|1|2> set direct sampling mode



modesdeco2 - еще один декодер ADS-B A/C с виртуальным радаром
карта на порту 8585



ACARS
Данные системы acars тоже можно скормить виртуальному радару.
Программа acarsdeco2 или acarsdec
GitHub - TLeconte/acarsdec: ACARS SDR decoder

VDL MODE 2
Смена акарсу, но оказалась особо никому не нужна, мало кто ей пользуется.
декодер vdl mode 2 для линукс, правда с отправкой данных в VRS непонятки, вот  plane plotter поддерживается.
GitHub - szpajder/dumpvdl2: VDL Mode 2 message decoder and protocol analyzer

ADS-C
JAERO декодер нескольких систем работающих через спутники inmarsat, для радаров интересна ADS-C
thebaldgeek | C-Band ADSC aka Satellite ADSB
Для приема нужна тарелка под два метра и конвертер C-диапазона



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

IRIDIUM-ACARS
Iridium ACARS Decoding. | thebaldgeek.github.io
ACARS сообщения также пердаются через спутники IRIDIUM. Декодер иридиума умеет парсить акарс сообщения, но вот для отправки данных в виртуальный радар используется дополнительный скрипт на питоне.

AIS
Антенна


Чтение с rtl-sdr и декодирование - aisdeco2
Запуск приложения sudo aisdeco2 --udp 127.0.0.1:10110
AIS Dispatcher - free AIS data sharing tool | AISHub
За веб-сервер с картой отвечает  AIS Dispatcher
wget https://www.aishub.net/downloads/dispatcher/install_dispatcher
chmod 755 install_dispatcher
sudo ./install_dispatcher
Заходим в настройки
http://IPADDRESS:8080
Username: admin
Password: admin
Заходим в конфиг


настраиваем передачу данных из UDP порта указанного при запуске.

сохраняем настройки, запускаем сервер и смотрим на кораблики (если подключили приемник с антенной и находимся рядом с судоходным водоемом, лол)


Результат работы AIS Dispatcher


Также есть програмка ais catcher которая сочетает в себе sdr приемник сигнала с rtl, декодер и вебсервер с отображением судов на карте - AIS Catcher


Метеозонды
Метеозонды это шары с метеодатчиками и gps приемниками которые запускается дважды в сутки с метеостанций и передают свои координаты и телеметрию.

Для их приема под линукс есть программа radiosonde-auto-RX которая выводит принятые сигналы на веб-страничку, отображает графики изменения телеметрии и положение зондов на карте.



-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Еще один вариант сетевых приемников - станции автоматического приема с низкоорбитальных спутников, запускаемых университетасми итд. Большая проблема низкоорбиталов-то что они летят низко, а соответственно видны с относительно небольшой территории, соответственно связь с ними возможна ограниченное время, пока спутник пролетает над одной из станций приема, соответственно любительская сеть дешевых (ну, кому как) приемных станций устанавливаемых добровольно любителями - вполне вариант.
https://efir.net.ru/



https://globus.sonik.space/



https://satnogs.org/

Клиенты сетей имеют разные требования. efir.net работает только под windows и требует установки программ аудиомодема и клиента сети, а вот SATNOGS более цельный, работает напрямую с sdr и ставится на одноплатники.
Для работы приемных станций достаточно установленных неподвижно антенн


Хотя проект satnogs имеет проработанный вариант поворотки.


Внутренности станции. Хотя ничего не мешает оставить компьютер с приемником дома, вынеся на крышу только антенну с усилителем.


Онлайн скиммер
Скиммер это станция которая принимает и декодирует все цифровые сигналы в полосе, возможно на нескольких диапазонах и отправляет информацию о принятых позывных на сервер (впрочем необязательно, можно оставить его в личном пользовании). Интересное использование данных-reverse beacon, вместо того чтобы слушать маяки чтобы определить направление прохождения можно дать несколько cw вызовов и посмотреть в rbn аггрегаторе какие станции приняли ваш вызов.

Хорошая статья о настройке многомодового (cw, rtty,ft8,wspr) скиммера на восьми приемниках rtl sdr описана в блоге UA3REO
https://ua3reo.ru/cw-ft8-ft4-wspr-rtty-skimmer-na-sdr-rtl/
Локальная копия (потому что интернет забывает все)
Интересная деталь, используется не проямое соединение с rtl а приемники объединены по 4 штуки, подключены к raspberry pi которые эмулируют трансивер HPSDR. Оригинальный трансивер может одновременно принимать 8 полос по 192кгц. На работу с ним заточены программы - скиммеры для windows.
Фото блока приемников с сайта ua3reo


-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Железо некоторых вебсдрок

PA3FWM вебсдр.
http://websdr.ewi.utwente.nl:8901/
После нескольких итераций железа вебсдр пришел к АЦП со скоростью 77.76MSPS, 16bit, FPGA производящей децимацию 3/4 и запихивающей поток в ETHERNET и компьютера который уже занимается расчетом и отрисовкой FFT и демодуляцией, при чем на GPU.




Антенна - самопальный mini-whip, не лучшее решение честно говоря, создатель самого явления веб-сдр мог бы заморочиться.


Northern Utah websdr
https://www.sdrutah.org/

Тут все серьезнее, вебсдр представляет собой небольшую будку которая стоит вдалеке от городов, посреди пустыни, имеет несколько серверов, в качестве основных приемников используются Sofrock и качественные звуковые карты. Антенны - несколько промышленных антенн, в основном ЛПВА, как направленные так и всенаправленные.


Основные приемники - Softrock с внешними синтезаторами, также используются RTL-SDR с внешними блоками АРУ (!), конвертерами, усилителями, и все они собраны в стиле manhattan (навесным монтажом).
Примеры ниже.


Пример внешних блоков АРУ для "широкополосных" (по сравнению с Softrock) RTL-SDR.


Для примера блок-схема распределения ВЧ сигнала на одном из серверов.


KFS SDR
http://websdr1.kfsdr.com:8901/
Тоже использует жирные ЛПВА от TCI. Помимо серверов pa3fwm к ним подключено несколько kiwisdr.




Блоки делителей и кастомных фильтров.


Приемники подключены к серверу pa3fwm с помощью модифицированных rsp_tcp.


Стойка целиком.



KPH
https://www.radiomarine.org/kph-sdrs

Находится в здании сообщества истории морского радио, использует пачку кивисдр и опять же промышленные ЛПВА (или активную рамку для НЧ диапазонов).