Featured image of post Как я запустил SDR-радио в интернет

Как я запустил SDR-радио в интернет

Как я запустил SDR-радио в интернет

GA(good afternoon), дорогие читатели уютного блога, websdr.org-подобной радиостанции. Вчера я запустил сервис в бета-режиме, создал полигон для развития этого сервера. С вами я, любознательный анонимус, и как я докатился до жизни такой? - Сейчас расскажу

img

Это я, позер

img

Вот как это выглядело 07.07.2021 числа

Оборудование

Купил синий свисток на TRL2832 + 820T2 обошелся в 600 рублей.

img

покоритель женских сердец

Сервером выступает нетбук 1232432 года до нашей эры, великий hp mini 110 410er на intel atom. Был всегда, возможно старше меня. Антенна - диполь от телевизора, длинной 50 см плечо или метр в общую длину, что позволяет качественно ловить диапазон в районе 143 Mhz, т.е. телевидение. Нашел на чердаке.

img

Диполь от телевизора, подключенная клеммами к “свистку”

Установка локального сервера

  1. Скачиваю образ Ubuntu 16.04, ставлю на нетбук

  2. Устанавливаю rtl-sdr драйвер

1
2
3
4
5
6
7
8
9
sudo apt-get install libusb-1.0-0-dev git cmake
git clone git://git.osmocom.org/rtl-sdr.git cd rtl-sdr/
mkdir build
cd build 
cmake ../ -DINSTALL_UDEV_RULES=ON 
make
sudo make install 
sudo cp ../rtl-sdr.rules /etc/udev/rules.d/ 
sudo ldconfig
  1. Блокирую ненужные функции драйвера
1
2
3
4
5
6
cat <no-rtl.conf 
blacklist dvb_usb_rtl28xxu
blacklist rtl2832 
blacklist rtl2830 
EOF
sudo mv no-rtl.conf /etc/modprobe.d/
  1. Ставлю библиотеки для сервера
1
2
3
sudo apt-get update && sudo apt-get install libx11- xcb1 libxss1 libasound2 libxkbfile1 sudo apt-get install libfftw3-dev libfftw3-3 libpng-dev 
sudo apt-get install libasound2 libasound2-dev
sudo apt-get install -f libpng-dev

  1. Беру дистрибутив websdr и правлю конфиги, а конкретно настраиваю диапазон.

# Начальная точка, откуда будет проигрываться звук

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
*initial 100000 fm*

*allowwide*

*#BAND 2m*

*band 150MHz*

*device !rtlsdr 192.168.1.100:1234*

*# Samplerate in Hz:*

*samplerate 2048000*

*# Center frequency in kHz:*

*centerfreq 100000*

*# A short description of the antenna, for listing on websdr.org:*

*antenna GP*

*gain -30*

*#Added extra zoom function*

*extrazoom 1*

*#Added noise blankerfunction*

*#noiseblanker 100*
  1. Запускаю rtl_tcp командой
1
rtl_tcp -a 192.168.1.100 -p1234

Можно открыть sdrSharp и выбрав RTL(TCP) вбить этот диапазон, выбрать модуляцию 2.048 mbps, и наслаждаться любым видом контента, не ограничиваясь длинной пропускной способностью приемника в 30khz, в то время, когда обычный FM-поток имеет 190khz. Т.е. послушать нормальный FM не получится.

  1. Запускаю websdr из папки дистрибутива
1
sudo ./websdr
  1. ??? Profit. Через локалку заходим к серверу в гости и видим, что в локалке работает. Теперь надо перекинуть мостик через VDS сервер.

Установка VPN

  1. Купил сервер на хостинге за 189 рублей

img

Догадались, что за хостинг?

  1. Две команды
1
2
get https://git.io/vpn -O openvpn-install.sh
bash openvpn-install.sh

Настройка сервер VPN легкая, делал по этому гайду:

  1. Так как Ubuntu 16.04 доисторической хлам, то OpenVPN клиента, поддерживающего TLS шифрования в официальных репозиториях нет, иду в гугл и натыкаюсь на решение:
1
2
3
4
curl -s https://swupdate.openvpn.net/repos/repo-public.gpg | apt-key add -
echo "deb http://build.openvpn.net/debian/openvpn/stable xenial main" > /etc/apt/sources.list.d/openvpn-aptrepo.list
apt update
apt install -y openvpn

Благо, i386 поддерживается и легаси ПО будет теперь преследовать меня всегда, пока товарищ PA3FWM не откроет код ядра websdr И не даст людям продвигать ПО своими силами, пока тру-радиолюбитель медленно закрывает проект, забрасывая его.

  1. Скачиваю получившийся конфиг ovpn, подключаюсь на ноутбуке командой
1
sudo openvpn test.ovpn
  1. Проверяю смену ip:
1
curl ifconfig.me

Готово, ВПН настроен и ip сменился, пора двигаться дальше.

Белый IP для всех

Я хотел, чтобы имея VPN - соединение, сервер за 189 рублей предоставлял моему ноутбуку белый ip, чтобы из любой точки интернета можно подключиться к нему.

  1. Проверяю на ноуте локальный ip внутри VPN сети
1
ifconfig

1
2
3
4
5
6
inet addr:10.8.0.2 P-t-P:10.8.0.2 Mask:255.255.255.0
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:791532 errors:0 dropped:0 overruns:0 frame:0
TX packets:428050 errors:0 dropped:58778 overruns:0 carrier:0
collisions:0 txqueuelen:500 
RX bytes:328839957 (328.8 MB) TX bytes:258639628 (258.6 MB)
  1. На сервере правлю iptables
1
iptables -t nat -A PREROUTING -p tcp -d 92.53.120.26 —dport 8080 -j DNAT —to-destination 10.8.0.2:80

Теперь можно зайти на http://92.53.120.26:8080/ и увидеть локальный сервер.

img

Готово.

Монитор ресурсов для локального сервера

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

img

Вот как это выглядит

  1. Выбор пал на linux-dash, устанавливаю его
1
2
git clone --depth 1 https://github.com/afaqurk/linux-dash.git
cd linux-dash/app/server
  1. Компилирую сервер на go
1
2
go run index.go
go build && ./server -h
  1. Запускаю скомпилированный бинарник(каламбур)
1
./server -listen="0.0.0.0:5555"
  1. Снова на сервере правлю iptables
1
iptables -t nat -A PREROUTING -p tcp -d 92.53.120.26 —dport 8081 -j DNAT —to-destination 10.8.0.2:5555

Но меняю порты. Можно зайти на http://92.53.120.26:8081/ и увидеть анализ ресурсов.

Вывод

Готов полигон для развития, настроены VPN, iptables. Теперь развитие будет вестись в уклон апгрейда железа, настройки доступа. И скорее всего будет использован OpenWebRX как здоровая опенсорсная альтернатива закрытому ядру websdr.

Спасибо, что дочитали до конца. Буду писать еще про радио и продвижения в этом деле. Буду писать про новые открытия и совершения.

Лицензия MIT - Наши права никогда не были защищены
comments powered by Disqus
Создано при помощи Hugo
Тема Stack, дизайн Jimmy