Server Ubuntu dengan Raspberry Pi Motion Camera

3

Saya memiliki Server Ubuntu yang saya gunakan sebagai server web. Semuanya berfungsi dengan baik, saya memiliki beberapa situs mengatur. Router saya hanya memungkinkan satu perangkat untuk memiliki IP publik yang merupakan Server Ubuntu saya. Saya mengatur RaspberryPi dengan Kamera dan Gerak. Sekali lagi, semuanya berfungsi dengan baik - Saya dapat mengakses Cam melalui browser (IP: 8081).

Saya ingin menjalankan situs web dari Ubuntu saya dan menampilkan streaming langsung dari raspberry. Ini bekerja dengan baik <img src="IP:8081?action=stream />. Namun, karena raspberry hanya IP internal, saya tidak dapat melihat aliran ketika saya berada di luar jaringan saya.

Apa yang harus saya lakukan agar Ubuntu saya mengakses raspberry dan umpan balik streaming?

Aplikasi ini didasarkan pada codeigniter dengan cara, gerakan diatur untuk bekerja di luar locahost juga.

69
sumber
Siapkan router Anda untuk meneruskan paket, yang datang dari internet dan ditujukan ke port 8081, ke Raspberry Anda. Kemudian, di tag gambar, gunakan alamat IP eksternal Anda (sama seperti apa yang akan Anda gunakan untuk server web). Itu seharusnya bekerja.
Jos

Jawaban:

1

Jadi Anda memiliki server yang mengangkangi dua jaringan (WAN dan LAN) dan Anda ingin mengekspos sesuatu dari LAN pada WAN, sebagai bagian dari konten lain yang dihosting oleh server.

Cara termudah adalah memberi tahu server HTTP Anda untuk mem-proxy koneksi. Sebagian besar server dapat melakukan ini, tetapi saya akan melakukannya dengan Nginx lebih dari yang lain karena itu yang terbaik (tercepat, terkecil, dll, dll). Anda akan menggunakan aturan seperti ini:

location /webcam/ {
    proxy_pass http://internal_webcam_IP:8081/?action=stream;
}

Untuk Apache, hal yang sama berlaku ... Anda hanya membuat proksi pembalikan cepat:

ProxyRequests off
ProxyPass /webcam http://internal_webcam_IP:8081/?action=stream

Dan kemudian ubah lokasi gambar HTML menjadi:

<img src="/webcam/" />

Sisi jaringan ini seharusnya cukup sederhana tetapi hosting gambar pada webcam mungkin tidak berfungsi dalam tag gambar (beberapa menggunakan MJPEG, beberapa menggunakan javascript) sehingga Anda mungkin perlu menyematkan halaman melalui iframe, atau menulis beberapa javascript baru untuk perbarui gambar (lebih bersih dari iframe tetapi lebih banyak pekerjaan). Jika Anda melakukan ini, Anda mungkin perlu membuka proxy sehingga tidak hanya mencerminkan /?action=streamURL.

Itu menyulitkan banyak hal. Kita berbicara tentang perangkat keras yang disematkan di sini: yang terkenal kurang diperbarui dan — secara keseluruhan — sangat mudah diretas. Jika Anda perlu membuka proxy hingga pilihan URL yang lebih luas, Anda mungkin juga ingin menambahkan banyak URL eksplisit untuk diblokir untuk menghentikan orang eksternal mendapatkan terlalu banyak akses ke jaringan internal Anda.


Arah lainnya adalah menggunakan PHP dan CodeIgniter ke proksi apa pun yang Anda butuhkan .... Namun aturan umum webdev adalah bahwa jika Anda dapat menghindarinya, jangan ikat bahasa sisi server Anda yang menangani tugas-tugas kasar. Ini adalah sesuatu yang dapat Anda unduh ke server web (atau bahkan tumpukan jaringan - yang saya tidak masuki karena tidak menawarkan keamanan sama sekali).

Oli
sumber
Bekerja seperti pesona ... Terima kasih banyak. FYI: Saya mengaktifkan proxy dengan a2enmod dan memasukkan ProxyRequest dan ProxyPass ke File Host Virtual server web saya.
Sixtynine