From 4fea491e90d213c33ad57a6c0a8377437664eb2b Mon Sep 17 00:00:00 2001 From: ps Date: Wed, 25 Mar 2026 14:37:59 +0200 Subject: [PATCH] add `icecast-http-over-tor-socks.gmi` --- public/uk/icecast-http-over-tor-socks.gmi | 80 +++++++++++++++++++ public/uk/index.gmi | 1 + ...u8-stream-proxy-with-ffmpeg-in-icecast.gmi | 3 +- ...up-icecast-ezstream-web-radio-on-linux.gmi | 7 +- 4 files changed, 89 insertions(+), 2 deletions(-) create mode 100644 public/uk/icecast-http-over-tor-socks.gmi diff --git a/public/uk/icecast-http-over-tor-socks.gmi b/public/uk/icecast-http-over-tor-socks.gmi new file mode 100644 index 0000000..7aa970c --- /dev/null +++ b/public/uk/icecast-http-over-tor-socks.gmi @@ -0,0 +1,80 @@ +# Прокидання потоку Icecast/HTTP через Tor/SOCKS з socat + +Ситуація така, що поточний сервер не має Інтернет-інтерфейсу, зате має Yggdrasil, а той в свою чергу - мости Tor. Мені хотілось би відновити два стріми проєкту pidpilne.i2p, про які мене просили, тим паче що цей проєкт задумувався як пенетратор фаєрволів а не балалайка для музики. + +Оскільки Tor працює на проксі SOCKS5, певна річ, Icecast того проксування з коробки не вміє. В мене були спроби пустити потік через: +* privoxy - він в мене зайнятий і без того заплутаний правилами +* ffmpeg - його залежності тягнуть мінімум 500Мб диску та в цей спосіб не відображатимуться заголовки треків +* і навіть Nginx - але це вже збочення + +Врешті, зупинився на новому для себе способі: + +``` /etc/hosts +::1 radio.ukr.radio +``` + +``` /etc/icecast2/icecast.xml + + + radio.ukr.radio + 8070 + /ur5-aacplus-l + /tochka.aac + 0 + 1 + + + + radio.ukr.radio + 8070 + /ur3-aacp-ulow + /kultura.aac + 0 + 1 + +``` + +В терміналі або окремим сервісом systemd: + +``` bash +socat TCP6-LISTEN:8070,fork,reuseaddr,bind=[::1] SOCKS4A:[::1]:radio.ukr.radio:8000,socksport=9150 +``` +* зверніть увагу, що порт в мене `9150` - він є стандартним для роутера Arti +=> arti-onion-router-with-tor-connection-over-yggdrasil.gmi Встановлення Onion-роутера Arti з підключенням до мережі Tor через Yggdrasil + +З сервісом не заморочувався, думаю туди можна докинути відповідних залежностей для запуску: + +``` /etc/systemd/system/icecast-socat.service +[Unit] +Description=socat forwarding for icecast/tor +After=network-online.target + +[Service] +Type=simple +User=socat +Group=socat +ExecStart=/usr/bin/socat \ + TCP6-LISTEN:8070,fork,reuseaddr,bind=[::1] \ + SOCKS4A:[::1]:radio.ukr.radio:8000,socksport=9150 +Restart=always +RestartSec=1 +TimeoutStopSec=0 + +[Install] +WantedBy=multi-user.target +``` +* щоб не пускати від рута, додав окремого юзера: +``` bash +useradd -s /usr/sbin/nologin -Mr socat +``` + +## Посилання + +=> https://devzone.org.ua/post/prokydannia-potoku-icecasthttp-cherez-tor-z-socat Веб-адаптація цього матеріалу з коментарями на DevZone +=> http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]/yggdrasil:tunnels:socat + +## Дивіться також + +=> m3u8-stream-proxy-with-ffmpeg-in-icecast.gmi Проксування потоку m3u8 засобами ffmpeg в Icecast +=> icecast-http-over-tor-socks.gmi Прокидання потоку Icecast/HTTP через Tor/SOCKS з socat +=> pidpilne.gmi Підпільне: ретрансляція українського мовлення \ No newline at end of file diff --git a/public/uk/index.gmi b/public/uk/index.gmi index f5bbbf8..0f35d7e 100644 --- a/public/uk/index.gmi +++ b/public/uk/index.gmi @@ -16,6 +16,7 @@ ### Нотатки +=> icecast-http-over-tor-socks.gmi 2026-03-25 Прокидання потоку Icecast/HTTP через Tor/SOCKS з socat => your-childs-not-yours.gmi 2026-03-23 Ваші діти - не ваші => create-file-from-nautilus-context-menu.gmi 2026-03-23 Створення файлів з контекстного меню Nautilus / GNOME => psocks-my-vision-of-filtering-out-proxy.gmi 2026-03-22 psocks: моє бачення фільтруючого проксі diff --git a/public/uk/m3u8-stream-proxy-with-ffmpeg-in-icecast.gmi b/public/uk/m3u8-stream-proxy-with-ffmpeg-in-icecast.gmi index 8c92444..8d37efa 100644 --- a/public/uk/m3u8-stream-proxy-with-ffmpeg-in-icecast.gmi +++ b/public/uk/m3u8-stream-proxy-with-ffmpeg-in-icecast.gmi @@ -159,4 +159,5 @@ server { ### Читайте також -=> yggdrasil-is-network-with-distributed-routing.gmi Yggdrasil - мережа з децентралізованою маршрутизацією \ No newline at end of file +=> yggdrasil-is-network-with-distributed-routing.gmi Yggdrasil - мережа з децентралізованою маршрутизацією +=> icecast-http-over-tor-socks.gmi Прокидання потоку Icecast/HTTP через Tor/SOCKS з socat \ No newline at end of file diff --git a/public/uk/setup-icecast-ezstream-web-radio-on-linux.gmi b/public/uk/setup-icecast-ezstream-web-radio-on-linux.gmi index d666e35..ac97ca4 100644 --- a/public/uk/setup-icecast-ezstream-web-radio-on-linux.gmi +++ b/public/uk/setup-icecast-ezstream-web-radio-on-linux.gmi @@ -334,4 +334,9 @@ WantedBy=multi-user.target ## Посилання -=> https://devzone.org.ua/post/veb-radio-v-linux-vstanovlennia-servera-icecast-ta-bazove-nalashtuvannia-rotatsiyi-z-ezstream Веб-версія цього матеріалу з коментарями на DevZone \ No newline at end of file +=> https://devzone.org.ua/post/veb-radio-v-linux-vstanovlennia-servera-icecast-ta-bazove-nalashtuvannia-rotatsiyi-z-ezstream Веб-версія цього матеріалу з коментарями на DevZone + +### Дивіться також + +=> m3u8-stream-proxy-with-ffmpeg-in-icecast.gmi Проксування потоку m3u8 засобами ffmpeg в Icecast +=> icecast-http-over-tor-socks.gmi Прокидання потоку Icecast/HTTP через Tor/SOCKS з socat \ No newline at end of file