Туннель ipv6: вопрос по маршрутизации [РЕШЕНО]

Автор Роман, 19 мая 2016, 20:06:25

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Роман

Здравствуйте товарищи!

Работает у меня в хозяйстве удалённая машинка, Raspi под Debian в качестве
видеорегистратора. Крутится на ней Motion, и по движению в кадре веб камеры
скидывает этот кадр на мой Google drive.

Смотрит это дело в инет через мегафоновский свисток (приватный динамический IP).

Всё хорошо работает, но захотелось мне иногда поглядывать через вебку удалённо в real-time
режиме, для чего установил ipv6 туннель Teredo. Создал динамически обновляемую DNS запись
на сервисе freedns.afraid.org и имею нормальный доступ к железяке извне через SSH по туннелю IPv6.

То есть на 22, 80 порт захожу удалённо без проблем.

Не могу удалённо (через teredo) зайти на порт 8081 по которому Motion льёт стрим с веб-камеры.

Причём с самой малины и через её ethernet интерфейс (eth0) могу зайти и браузером посмотреть мою вебку без проблем:
192.168.0.1:8081 (через Ethernet малины)
127.0.0.1:8081 (с малины)

http://www.wservice.info/ говорит что порт 8081 закрыт, а порты 80 и 22 открыты.

Может кто подскажет как открыть этот чёртов порт, чтобы через ipv6 туннель поглядывать в камеру real-time?


ifconfig:

Открыть содержимое (спойлер)

eth0      Link encap:Ethernet  HWaddr b8:27:eb:a5:dc:a4
          inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::ba27:ebff:fea5:dca4/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:17947 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16651 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2262634 (2.1 MiB)  TX bytes:5037985 (4.8 MiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:81 errors:0 dropped:0 overruns:0 frame:0
          TX packets:81 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:145579 (142.1 KiB)  TX bytes:145579 (142.1 KiB)

ppp0      Link encap:Point-to-Point Protocol
          inet addr:100.96.4.23  P-t-P:10.64.64.64  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:18676 errors:0 dropped:0 overruns:0 frame:0
          TX packets:21658 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:3587319 (3.4 MiB)  TX bytes:2743460 (2.6 MiB)

teredo    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet6 addr: 2001:0:53aa:64c:27b6:7b80:b1e6:85ad/32 Scope:Global
          inet6 addr: fe80::ffff:ffff:ffff/64 Scope:Link
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1280  Metric:1
          RX packets:509 errors:0 dropped:0 overruns:0 frame:0
          TX packets:591 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500
          RX bytes:50439 (49.2 KiB)  TX bytes:192546 (188.0 KiB)
[свернуть]

315th

Debian GNU/Linux 7.11 (wheezy) - CLI
ICH7; D525MV; r8169; Linux 4.14.32-atomd525mv-imq-ja1 (i686); Intel Atom D525 1.8 GHz

ogost

#2
у нас некоторые нехорошие провайдеры режут "лишние" (по их мнению) порты, может это тот случай?
туплю, туннель же  :o

endru

ogost, в тунеле расшифровали данные и заблокировали трафик выборочно?  ;D

Роман, команды:
route
netstat -nl

Роман

Всем привет!

Дал следующие команды:

root@raspberrypi:~# lynx  [::1]:8081

Looking up  '[::1]' first

Looking up [::1] first
Looking up [::1]:8081
Making HTTP connection to [::1]:8081
Alert!: Unable to connect to remote host.


root@raspberrypi:~# route

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.64.64.64     0.0.0.0         UG    0      0        0 ppp0
10.64.64.64     *               255.255.255.255 UH    0      0        0 ppp0
192.168.0.0     *               255.255.255.0   U     0      0        0 eth0


root@raspberrypi:~# netstat -nl

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:9000            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:8081            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:8082            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp6       0      0 :::80                   :::*                    LISTEN
tcp6       0      0 :::53                   :::*                    LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN
udp        0      0 0.0.0.0:53              0.0.0.0:*
udp        0      0 0.0.0.0:67              0.0.0.0:*
udp        0      0 100.96.78.57:123        0.0.0.0:*
udp        0      0 192.168.0.1:123         0.0.0.0:*
udp        0      0 127.0.0.1:123           0.0.0.0:*
udp        0      0 0.0.0.0:123             0.0.0.0:*
udp        0      0 0.0.0.0:35469           0.0.0.0:*
udp6       0      0 :::53                   :::*
udp6       0      0 fe80::ffff:ffff:fff:123 :::*
udp6       0      0 2001:0:53aa:64c:3c5:123 :::*
udp6       0      0 fe80::ba27:ebff:fea:123 :::*
udp6       0      0 ::1:123                 :::*
udp6       0      0 :::123                  :::*
raw6       0      0 :::58                   :::*                    7
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ACC ]     SEQPACKET  LISTENING     3843     /run/udev/control
unix  2      [ ACC ]     STREAM     LISTENING     6205     /var/run/dbus/system_bus_socket
unix  2      [ ACC ]     STREAM     LISTENING     1442997  /tmp/insync0.sock


Фигово понимаю что делать... :(

endru

мда... забыл что у тебя ipv6:
route -A inet6
но этот вывод не понадобится:)

у тебя motion сидит только на ipv4, ищи в конфиге параметр который включает ipv6 (быстрое гугление говорит: в конфиге нужно заменить(добавить) ipv6_enabled off на ipv6_enabled on)

Роман

Цитировать
мда... забыл что у тебя ipv6:
Код: [Выделить]

route -A inet6

но этот вывод не понадобится!  :)

у тебя motion сидит только на ipv4, ищи в конфиге параметр который включает ipv6 (быстрое гугление говорит: в конфиге нужно заменить(добавить) ipv6_enabled off на ipv6_enabled on)

Благодарю за ответ!

ipv6_enabled on в конфиге прописан... Помню давно игрался, тоже нагуглил эту инфу... Однако не помогает.
Вопрос: route -A inet6 не повесит мою систему? Дело в том что она удалённая, ехать до неё 150 километров :)

endru

#7
да не бойся, не повесит, в теории.

если не помогает, значит нужно упорно гуглить motion enable ipv6.
посмотри логи системные, может там при запуске появляется какая-то ошибка Motion.
cd /var/log/; grep -i motion syslog daemon.log dmesg

vadd

#8
Вот это вам не поможет?
ЦитироватьMotion by default restricts it's web server to localhost only (i.e. on the Pi itself)
The relevant lines in /etc/motion/motion.conf are:
    webcam_localhost on
    control_localhost on
Both the above lines should be set to off if you want web access from another computer

Роман

#9
Цитировать
Motion by default restricts it's web server to localhost only (i.e. on the Pi itself)
The relevant lines in /etc/motion/motion.conf are:
    webcam_localhost on
    control_localhost on
Both the above lines should be set to off if you want web access from another computer

К сожалению, эти установки у меня выключены (off)...

Cообщение объединено 20 мая 2016, 13:37:54

Цитировать
да не бойся, не повесит, в теории.

если не помогает, значит нужно упорно гуглить motion enable ipv6.
посмотри логи системные, может там при запуске появляется какая-то ошибка Motion.
Код: [Выделить]

cd /var/log/; grep -i morion syslog daemon.log dmesg

ОК, посмотрю логи от моушена внимательно.
Просто думал что можно сделать некий проброс портов между интерфейсами ppp и teredo.
Или настроить маршрут из ipv6 на ipv4...

root@raspberrypi:/etc/motion# route -A inet6


Kernel IPv6 routing table
Destination                    Next Hop                   Flag Met Ref Use If
2001::/32                      ::                         U    256 1     0 teredo
fe80::/64                      ::                         U    256 0     0 eth0
fe80::/64                      ::                         U    256 0     0 teredo
::/0                           ::                         U    1029 0     0 teredo
::/0                           ::                         !n   -1  1   487 lo
::1/128                        ::                         Un   0   1   206 lo
2001::/128                     ::                         Un   0   1     0 lo
2001:0:53aa:64c:2c96:145e:b1e6:8509/128 ::                         Un   0   2    14 lo
fe80::/128                     ::                         Un   0   1     0 lo
fe80::/128                     ::                         Un   0   1     0 lo
fe80::ffff:ffff:ffff/128       ::                         Un   0   1     0 lo
fe80::ba27:ebff:fea5:dca4/128  ::                         Un   0   1     0 lo
ff00::/8                       ::                         U    256 0     0 eth0
ff00::/8                       ::                         U    256 0     0 teredo
::/0                           ::                         !n   -1  1   487 lo
root@raspberrypi:/etc/motion#


Cообщение объединено 20 мая 2016, 14:59:48

Глянул логи от моушена, оказывается он не принимает команду ipv6_enabled on
Нагуглил какой-то патч: http://www.lavrsen.dk/foswiki/bin/view/Motion/IPv6
Не пойму откуда его качать...

Открыть содержимое (спойлер)


root@raspberrypi:/var/log# grep -i motion syslog daemon.log dmesg
syslog:Dec 27 06:30:28 raspberrypi motion: [1] Calling vid_close() from motion_cleanup
syslog:Dec 27 06:30:28 raspberrypi motion: [1] Closing video device /dev/video0
syslog:Dec 27 06:30:29 raspberrypi motion: [0] httpd Closing
syslog:Dec 27 06:30:29 raspberrypi motion: [0] httpd thread exit
syslog:Dec 27 06:30:29 raspberrypi motion: [0] Motion terminating
syslog:Dec 27 06:30:29 raspberrypi motion: [0] Removed process id file (pid file).
syslog:Dec 27 06:30:50 raspberrypi motion: [0] Processing thread 0 - config file /etc/motion/motion.conf
syslog:Dec 27 06:30:50 raspberrypi motion: [0] Unknown config option "ipv6_enabled"
syslog:Dec 27 06:30:50 raspberrypi motion: [0] Motion 3.2.12 Started
syslog:Dec 27 06:30:50 raspberrypi motion: [0] Created process id file /var/run/motion/motion.pid. Process ID is 2327
syslog:Dec 27 06:30:50 raspberrypi motion: [0] Motion running as daemon process
syslog:Dec 27 06:30:50 raspberrypi motion: [0] ffmpeg LIBAVCODEC_BUILD 3482368 LIBAVFORMAT_BUILD 3478785
syslog:Dec 27 06:30:50 raspberrypi motion: [0] Thread 1 is from /etc/motion/motion.conf
syslog:Dec 27 06:30:50 raspberrypi motion: [0] motion-httpd/3.2.12 running, accepting connections
syslog:Dec 27 06:30:50 raspberrypi motion: [0] motion-httpd: waiting for data on port TCP 8082
syslog:Dec 27 06:30:50 raspberrypi motion: [1] Thread 1 started
syslog:Dec 27 06:30:50 raspberrypi motion: [1] cap.driver: "uvcvideo"
syslog:Dec 27 06:30:50 raspberrypi motion: [1] cap.card: "UVC Camera (046d:0825)"
syslog:Dec 27 06:30:50 raspberrypi motion: [1] cap.bus_info: "usb-bcm2708_usb-1.3"
syslog:Dec 27 06:30:50 raspberrypi motion: [1] cap.capabilities=0x84000001
syslog:Dec 27 06:30:50 raspberrypi motion: [1] - VIDEO_CAPTURE
syslog:Dec 27 06:30:50 raspberrypi motion: [1] - STREAMING
syslog:Dec 27 06:30:50 raspberrypi motion: [1] Config palette index 8 (YU12) doesn't work.
syslog:Dec 27 06:30:50 raspberrypi motion: [1] Supported palettes:
syslog:Dec 27 06:30:50 raspberrypi motion: [1] 0: YUYV (YUV 4:2:2 (YUYV))
syslog:Dec 27 06:30:50 raspberrypi motion: [1] 1: MJPG (MJPEG)
syslog:Dec 27 06:30:50 raspberrypi motion: [1] Selected palette YUYV
syslog:Dec 27 06:30:50 raspberrypi motion: [1] Test palette YUYV (1280x720)
syslog:Dec 27 06:30:50 raspberrypi motion: [1] Using palette YUYV (1280x720) bytesperlines 2560 sizeimage 1843200 colorspace 00000008
syslog:Dec 27 06:30:50 raspberrypi motion: [1] found control 0x00980900, "Brightness", range 0,255
syslog:Dec 27 06:30:50 raspberrypi motion: [1] #011"Brightness", default -8193, current 128
syslog:Dec 27 06:30:50 raspberrypi motion: [1] found control 0x00980901, "Contrast", range 0,255
syslog:Dec 27 06:30:50 raspberrypi motion: [1] #011"Contrast", default 57343, current 32
syslog:Dec 27 06:30:50 raspberrypi motion: [1] found control 0x00980902, "Saturation", range 0,255
syslog:Dec 27 06:30:50 raspberrypi motion: [1] #011"Saturation", default 57343, current 32
syslog:Dec 27 06:30:50 raspberrypi motion: [1] found control 0x00980913, "Gain", range 0,255
syslog:Dec 27 06:30:50 raspberrypi motion: [1] #011"Gain", default 57343, current 0
syslog:Dec 27 06:30:50 raspberrypi motion: [1] mmap information:
syslog:Dec 27 06:30:50 raspberrypi motion: [1] frames=4
syslog:Dec 27 06:30:50 raspberrypi motion: [1] 0 length=1843200
syslog:Dec 27 06:30:50 raspberrypi motion: [1] 1 length=1843200
syslog:Dec 27 06:30:50 raspberrypi motion: [1] 2 length=1843200
syslog:Dec 27 06:30:50 raspberrypi motion: [1] 3 length=1843200
syslog:Dec 27 06:30:50 raspberrypi motion: [1] Resizing pre_capture buffer to 1 items
syslog:Dec 27 06:30:51 raspberrypi motion: [1] Started stream webcam server in port 8081
syslog:Dec 27 06:37:26 raspberrypi motion: [1] Calling vid_close() from motion_cleanup
syslog:Dec 27 06:37:26 raspberrypi motion: [1] Closing video device /dev/video0
syslog:Dec 27 06:37:28 raspberrypi motion: [0] httpd Closing
syslog:Dec 27 06:37:28 raspberrypi motion: [0] httpd thread exit
syslog:Dec 27 06:37:28 raspberrypi motion: [0] Motion terminating
syslog:Dec 27 06:37:28 raspberrypi motion: [0] Removed process id file (pid file).
syslog:Dec 27 06:37:48 raspberrypi motion: [0] Processing thread 0 - config file /etc/motion/motion.conf
syslog:Dec 27 06:37:48 raspberrypi motion: [0] Unknown config option "ipv6_enabled"

[свернуть]

Cообщение объединено 20 мая 2016, 15:57:59

Так, разобрался как скачать патч, теперь непонятно как его установить:
Вернее как сделать ребилд моушена не подскажете?

Цитировать
Installation of Patch

Download the patch file. If it is packed as a gz or tar.gz unpack it first. Then copy it to the motion source directory and issue the command (assuming the patch file is called filename_of_patch_file.diff)

patch < filename_of_patch_file.diff

Then re-build Motion and test the patch.

Cообщение объединено 20 мая 2016, 23:32:36

Вышел из положения несколько иначе. Решение нагуглил, может кому пригодится:

Поскольку у меня в системе работает апач, и он виден за провайдерским натом через ipv6 туннель из интернета (на 80 порту),
оказалось достаточно создать файл "camera.php" следующего содержания:


<?php
set_time_limit
(0);
$fp fsockopen ("127.0.0.1"8081$errno$errstr30);
if (!
$fp) {
echo 
"$errstr ($errno)<br>\n";
} else {
fputs ($fp"GET / HTTP/1.0\r\n\r\n");
while (
$str trim(fgets($fp4096)))
header($str);
fpassthru($fp);
fclose($fp);
}
?>



Далее, этот файл кладём в корень нашего WWW сервера, и ... о чудо!!! Апач начинает транслировать поток который льёт Motion. Для этого просто захожу по адресу: xxx.yyy.com/camera.php

Всех благодарю за участие!

endru

Роман, только упорство и долгое гугление помогает добиться результата. поздравляю :)

Роман