ZeroTIER VPN for CCTV streaming (Windows Ubuntu Orange Pi)

Автор: hostmarineoffice | Dec 24, 20


Zero Tier Account (https://my.zerotier.com/network)

Hostmarine.office@gmail.com

Сеть: Bear_net

Net_ID 17d709436c53534d

Установка приложения ZeroTier на устройство (Win, Mac, Linux)

https://docs.zerotier.com/start

После запуска приложения вводим идентификатор сети, устройство автоматически

регистрируется в Dashboard

Далее из Dashboard авторизуем новое устройство в нашей сети

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

Если NAT был настроен с помощью netsh:

Проверьте текущие настройки проброса порта:

netsh interface portproxy show all

Удалите старую настройку:

netsh interface portproxy delete v4tov4 listenport=8554 listenaddress=10.241.80.97

Добавьте новую настройку с новым IP-адресом (одна строка, после 554 - пробел):

netsh interface portproxy add v4tov4 listenport=8554 listenaddress=10.241.80.97 connectport=554 connectaddress=192.168.40.146

Объяснение команды: транслируем трафик с локального доступного адреса 192.168.40.146 порт 554 на наружный адрес 10.241.80.97 порт 8554

Убедитесь, что служба iphlpsvc запущена:

net start iphlpsvc

Проверка правила

netsh interface portproxy show all

Результат

Адрес и порт теперь можно видеть снаружи, в случае с камерой Hikvision, например, вот по такому адресу

rtsp://10.241.80.97:8554/cam/realmonitor?channel=1&subtype=1

Более продвинутый вариант организовать поток - использовать мини РС (например Orange Pi 5 plus https://www.fisherydb.com/forum/lan-staff/orangepi-5-plus-how-to)

Устанавливаем систему, затем устанавливаем туда последовательно

zerotier

ffmpeg

mediamtx

для mediamtx точно также нужно создать mediamtx.yml файл
для которого есть свои тонкости.

Команда для создания файла

nano /usr/local/etc/mediamtx.yml
Максимально простой и надежный вариант такого файла:

paths:

cam1:

source: publisher

sourceOnDemand: no

runOnInit: ffmpeg -re -rtsp_transport tcp -i rtsp://user:MKCAM2020@192.168.40.156:554/cam/realmonitor?channel=1&subtype=1 -c copy -f rtsp rtsp://127.0.0.1:8554/cam1

Где формат потока указан для камеры Hikvision,

адрес 192.168.40.156 - локальный адрес камеры в судовой сети

Схема настройки:

Установили компоненты:

ffmpeg - для захвата RTSP потока

mediamtx - как RTSP сервер

zerotier - для создания VPN сети

Подключились к ZeroTier сети:

zerotier-cli join 17d709436c53534d

sudo zerotier-cli status

sudo zerotier-cli listnetworks

Получили IP: 10.241.248.197 (см.настройки выше)

Настроили mediamtx (nano /usr/local/etc/mediamtx.yml):

rtspAddress: 0.0.0.0:8554

paths:

cam1:

source: publisher

runOnInit: ffmpeg -re -rtsp_transport tcp -i rtsp://user:MKCAM2020@192.168.40.156:554/cam/realmonitor?channel=1&subtype=1 -c copy -f rtsp rtsp://10.241.248.197:8554/cam1

Команды для проверки и перезапуска mediamtx

sudo systemctl status mediamtx

sudo systemctl stop mediamtx

sudo systemctl start mediamtx

sudo systemctl restart mediamtx

Результат:

Камера (192.168.40.156) → ffmpeg → mediamtx (127.0.0.1:8554)

Поток доступен через ZeroTier: rtsp://10.241.248.197:8554/cam1

Troubleshooting

Если есть подозрение, что на порту 8000 еще какие-то процессы - проверяем командой

sudo netstat -tuln | grep :8000

journalctl -u mediamtx.service

проверка наличия потока

ffprobe rtsp://10.241.66.60:8554/cam1