Гэрийн видео тандалт. Гэрийн бүртгэгчгүйгээр видео архивыг хадгалах схем

Би DVRIP протоколоор камертай ажиллах скриптийн талаар нийтлэл бичихийг нэлээд удаан хүсч байсан боловч сүүлийн үеийн мэдээний талаар ярилцаж байна. Xiaomi Би эхлээд өөрийн байрандаа видео тандалт хэрхэн суулгасан тухайгаа ярих, дараа нь скрипт болон бусад зүйл рүү шилжихийг надад уриалав.

Бидэнд 2 боодол байсан... Тиймээс хүлээгээрэй, энэ бол түүх биш юм.
Бидэнд 2 TP-LINK чиглүүлэгч, NAT үйлчилгээ үзүүлэгчийн ард интернэт холболт, Партизан хяналтын камер, аль загвар (TCP эсвэл DVRIP-ээр RSTP дэмждэг ямар ч IP камер ажиллахыг) санахгүй байна. шинж чанарууд: 4 үндсэн CPU 2GHz, 2.4GB RAM, 4 GB HDD, 300 Mbit/s порт. Мөн нөхөөсийн утаснаас илүү үнэтэй зүйл худалдаж авахаас татгалздаг.

Өмнөх үг

Тодорхой шалтгааны улмаас бид чиглүүлэгч дээрх камерын портуудыг дамжуулж, амьдралаас таашаал авч чадахгүй, үүнээс гадна бид боломжтой байсан ч үүнийг хийх ёсгүй.

Сүлжээнд байгаа бүх төхөөрөмж гадаад IPv6 хаягийг хүлээн авахын тулд бүх зүйлийг хийх боломжтой мэт IPv6 туннел хийх зарим сонголтууд байгааг би чихнийхээ булангаас сонссон бөгөөд энэ нь ажлыг бага зэрэг хялбаршуулах болно. Энэ үйл явдлын аюулгүй байдлыг хэвээр үлдээсэн хэвээр байгаа бөгөөд энэ гайхамшигт зориулсан стандарт TP-LINK програм хангамжийн дэмжлэг нь ямар нэгэн байдлаар хачирхалтай юм. Хэдийгээр өмнөх өгүүлбэрт би шал дэмий юм ярьж байгаа байх, тиймээс үүнийг огт анхаарах хэрэггүй.

Гэхдээ бидний хувьд аз болоход ямар ч чиглүүлэгчийн бараг бүх програм хангамж (үнэндээ үндэслэлгүй мэдэгдэл) нь PPTP / L2TP клиент эсвэл түүний тусламжтайгаар тусгай програм суулгах боломжийг агуулдаг. Үүнээс бид аль хэдийн зан үйлийн стратегийг бий болгож чадна.

Топологи

Халуурах үед миний тархи ийм холболтын диаграммыг төрүүлэв.

мөн өөр нэг дайралтын үеэр би үүнийг Хабр дээр тавихаар зурсанГэрийн видео тандалт. Гэрийн бүртгэгчгүйгээр видео архивыг хадгалах схем

169.178.59.82 хаяг нь санамсаргүй байдлаар үүсгэгдсэн бөгөөд зөвхөн жишээ болно.

За, эсвэл үгээр хэлбэл:

  • Чиглүүлэгч TP-LINK 1 (192.168.1.1), үүнд хананд наалддаг кабель оруулдаг. Сонирхолтой уншигч энэ бол миний интернетэд нэвтрэх үйлчилгээ үзүүлэгч кабель гэж таамаглах болно. Төрөл бүрийн гэрийн төхөөрөмжүүд энэ чиглүүлэгчтэй нөхөөс эсвэл Wi-Fi-аар холбогддог. Энэ бол сүлжээ юм 192.168.1.0
  • Чиглүүлэгч TP-LINK 2 (192.168.0.1, 192.168.1.200), дотор нь TP-LINK 1 чиглүүлэгчээс наалдсан кабель суурилуулсан байна. Энэхүү кабелийн ачаар TP-LINK 2 чиглүүлэгч болон түүнд холбогдсон төхөөрөмжүүд интернетэд холбогдох боломжтой. Энэ чиглүүлэгч нь 10.0.5.100 серверт тохируулагдсан PPTP холболттой (169.178.59.82). IP Camera 192.168.0.200 нь мөн энэ чиглүүлэгчид холбогдсон бөгөөд дараах портуудыг дамжуулдаг.
    • 192.168.0.200:80 -> 49151 (вэб нүүр)
    • 192.168.0.200:34567 -> 49152 (DVRIP)
    • 192.168.0.200:554 -> 49153 (RTSP)
  • Сервер (169.178.59.82, 10.0.5.1), TP-LINK 2 чиглүүлэгч холбогдсон байна. Pptpd, shadowsocks болон 3proxy сервер дээр ажиллаж байгаа бөгөөд үүгээр дамжуулан та 10.0.5.0 сүлжээн дэх төхөөрөмжүүдэд хандаж, улмаар TP-LINK 2 чиглүүлэгч рүү хандах боломжтой болно.

Тиймээс 192.168.1.0 сүлжээнд байгаа гэрийн бүх төхөөрөмжүүд 2 хаягаар TP-LINK 192.168.1.200-оор камерт хандах боломжтой бөгөөд бусад бүх төхөөрөмжүүд pptp, shadowsocks эсвэл socks5-ээр холбогдож 10.0.5.100 руу нэвтрэх боломжтой.

тохируулга

Эхний алхам бол дээрх зураг дээрх схемийн дагуу бүх төхөөрөмжийг холбох явдал юм.

  • TP-LINK 1 чиглүүлэгчийг тохируулах нь TP-LINK 192.168.1.200-д зориулж 2 хаягийг нөөцлөхөд хүргэдэг. Хэрэв танд 192.168.1.0 сүлжээнээс хандахын тулд тогтмол хаяг шаардлагатай бол сонголттой. Хэрэв хүсвэл та 10-20 Mbps нөөцлөх боломжтой (10-д толгойтой нэг видео урсгалд 1080 хангалттай).
  • Сервер дээр та pptpd-г суулгаж, тохируулах хэрэгтэй. Надад Ubuntu 18.04 байгаа бөгөөд алхамууд нь дараах байдалтай байсан (донор жишээ нь байсан blog.xenot.ru/bystraya-nastrojka-vpn-servera-pptp-na-ubuntu-server-18-04-lts.fuck):
    • Шаардлагатай багцуудыг суулгана уу:
      sudo apt install pptpd iptables-persistent
    • Бид дараах хэлбэрт хүргэж байна

      /etc/pptpd.conf

      option /etc/ppp/pptpd-options
      bcrelay eth0 # Интерфейс, через который ваш сервер ходит в интернеты
      logwtmp
      localip 10.0.5.1
      remoteip 10.0.5.100-200

    • Дүрэм

      /etc/ppp/pptpd-options

      novj
      novjccomp
      nologfd
      
      name pptpd
      refuse-pap
      refuse-chap
      refuse-mschap
      require-mschap-v2
      #require-mppe-128 # Можно раскомментировать, но мой TP-LINK c ним не дружит
      
      ms-dns 8.8.8.8
      ms-dns 1.1.1.1
      ms-dns  77.88.8.8
      ms-dns 8.8.4.4
      ms-dns 1.0.0.1
      ms-dns  77.88.8.1
      
      proxyarp
      nodefaultroute
      lock
      nobsdcomp
      
    • Итгэмжлэх жуух бичгийг нэмж байна

      /etc/ppp/chap-secrets

      # Secrets for authentication using CHAP
      # client	server	secret			IP addresses
      username pptpd password *
    • -д нэмэх

      /etc/sysctl.conf

      net.ipv4.ip_forward=1

      болон sysctl-г дахин ачаална уу

      sudo sysctl -p
    • Pptpd-г дахин эхлүүлээд автоматаар ачаалахад нэмнэ
      sudo service pptpd restart
      sudo systemctl enable pptpd
    • Дүрэм

      iptables

      sudo iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
      sudo iptables -A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT
      sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
      sudo iptables --table nat --append POSTROUTING --out-interface ppp+ -j MASQUERADE
      sudo iptables -I INPUT -s 10.0.5.0/24 -i ppp+ -j ACCEPT
      sudo iptables --append FORWARD --in-interface eth0 -j ACCEPT

      Мөн хадгална

      sudo netfilter-persistent save
      sudo netfilter-persistent reload
      
  • TP-LINK 2-г тохируулж байна
    • Бид камертаа 192.168.0.200 хаягийг нөөцөлсөн:

      DHCP -> Хаягийн захиалга - MAC хаяг - Камерын MAC-г DHCP -> DHCP үйлчлүүлэгчдийн жагсаалтаас үзэх боломжтой.
      - Нөөцлөгдсөн IP хаяг - 192.168.0.200

    • Дамжуулах портууд:
      Дамжуулах -> Виртуал серверүүд - Үйлчилгээний порт: 49151, Дотоод порт: 80, IP хаяг: 192.168.0.200, Протокол: TCP
      - Үйлчилгээний порт: 49152, Дотоод порт: 34567, IP хаяг: 192.168.0.200, Протокол: TCP
      - Үйлчилгээний порт: 49153, Дотоод порт: 554, IP хаяг: 192.168.0.200, Протокол: TCP
    • VPN холболтыг тохируулах:

      Сүлжээ -> WAN - WAN холболтын төрөл: PPTP
      - Хэрэглэгчийн нэр: хэрэглэгчийн нэр (/etc/ppp/chap-secrets-ийг үзнэ үү)
      - Нууц үг: нууц үг (/etc/ppp/chap-secrets-ийг үзнэ үү)
      - Нууц үгээ баталгаажуулах: нууц үг (/etc/ppp/chap-secrets хэсгийг үзнэ үү)
      - Динамик IP
      - IP хаяг / Серверийн нэр: 169.178.59.82 (мэдээж таны серверийн гадаад IP)
      - Холболтын горим: Автоматаар холбогдоно

    • Заавал чиглүүлэгчийн вэбморд руу алсаас хандахыг зөвшөөрөх
      Аюулгүй байдал -> Алсын удирдлага - Вэб удирдлагын порт: 80
      - Алсын удирдлагын IP хаяг: 255.255.255.255
    • TP-LINK 2 чиглүүлэгчийг дахин эхлүүлж байна

PPTP-ийн оронд та L2TP ашиглаж болно, эсвэл хэрэв танд тусгай програм хангамж байгаа бол зүрх сэтгэлийнхээ хүссэн бүх зүйлийг ашиглаж болно. Энэ схемийг аюулгүй байдлын үүднээс бүтээгээгүй тул би PPTP-г сонгосон бөгөөд pptpd бол миний туршлагаас хамгийн хурдан VPN сервер юм. Түүнээс гадна би тусгай программ суулгахыг үнэхээр хүсээгүй бөгөөд энэ нь PPTP болон L2TP хоёрын аль нэгийг нь сонгох шаардлагатай гэсэн үг юм.

Хэрэв би гарын авлагын хаана ч алдаа гаргаагүй бөгөөд та бүх зүйлийг зөв хийж, азтай байсан бол эдгээр бүх заль мэхийн дараа

  • Эхнийх нь
    ifconfig

    интерфэйсийг харуулах болно ppp0 inet 10.0.5.1 netmask 255.255.255.255 destination 10.0.5.100,

  • хоёрдугаарт, 10.0.5.100-д ​​ping хийх ёстой,
  • болон гуравдугаарт
    ffprobe -rtsp_transport tcp "rtsp://10.0.5.100:49153/user=admin&password=password&channel=1&stream=0.sdp"

    Урсгалыг илрүүлэх ёстой.
    rtsp порт, нэвтрэх нэр, нууц үгийг та камерынхаа баримтаас олж болно

дүгнэлт

Зарчмын хувьд энэ нь муу биш, RTSP-д нэвтрэх боломжтой, хэрэв хувийн програм хангамж DVRIP-ээр ажилладаг бол та үүнийг ашиглаж болно. Та ffmpeg ашиглан дамжуулалтыг хадгалах, видеог 2-3-5 дахин хурдасгах, цаг тутамд хэсэг болгон хуваах, Google Drive эсвэл олон нийтийн сүлжээнд байршуулах гэх мэт олон зүйлийг хийх боломжтой.

Би TCP дээр RTSP-д дургүй байсан, учир нь энэ нь ямар нэг байдлаар тийм ч тогтвортой ажиллахгүй байсан ч UDP-ээс шалтгаалж, бид портуудын хүрээг дамжуулах боломжгүй (эсвэл бид чадна, гэхдээ би үүнийг хийхийг хүсэхгүй байна) шалтгааны улмаас аль RTSP видео урсгалыг түлхэх болно, энэ нь ажиллахгүй, би DVRIP дээр TCP дээр дамжуулалтыг чирэх скрипт бичсэн. Энэ нь илүү тогтвортой байх шиг санагдсан.

Аргын давуу талуудаас бид TP-LINK 2 чиглүүлэгчийн оронд 4G шүгэлийг дэмждэг зүйлийг авч, UPS-ийн камерын хамт бүгдийг нь цэнэглэж болно (энэ нь бүртгэгчийг ашиглахаас хамаагүй бага хүчин чадал шаардагдах нь дамжиггүй. ), үүнээс гадна бичлэг нь сервер рүү бараг шууд дамждаг тул халдагчид таны байранд орсон ч тэднээс видеог устгах боломжгүй болно. Ерөнхийдөө маневр хийх зай байгаа бөгөөд бүх зүйл таны төсөөллөөс хамаарна.

Жич: Олон үйлдвэрлэгчид бэлэн үүлэн шийдлүүдийг санал болгодог гэдгийг би мэднэ, гэхдээ үнэ нь миний VPS-ээс бараг хоёр дахин үнэтэй (түүний 3 нь надад байгаа тул би нөөцийг хаа нэгтээ байрлуулах хэрэгтэй), хяналтыг хамаагүй бага болгож, бас тийм ч сэтгэл ханамжгүй чанар.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх