# Прокидання потоку 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 Підпільне: ретрансляція українського мовлення