LINUX.ORG.RU
решено ФорумAdmin

VPS, Wireguard, ip камера, проброс порта

 , ,


0

2

Приветствую, Уважаемые!

Я начинаю только, плз, яйцами не кидать))) У самого что-то не получается.

Нужно: Чтобы кто угодно набрал rtsp://user:pass@216.120.11.37:10500 и получил видео. Vps ubuntu+wireguard server 216.120.11.37, wg порт 41321, порт на который нужно пробросить ртсп камеру 10500. Адрес камеры на wg клиенте 192.168.5.10 порт 554. iptables умучал уже. С сервера через wg камера пингуется.

PostUp = iptables -I INPUT -p udp –dport 41321 -j ACCEPT

PostUp = iptables -I FORWARD -i ens18 -o wg0 -j ACCEPT

PostUp = iptables -t nat -A PREROUTING -p tcp -d 216.120.11.37 – dport 10500 -j DNAT –to-destination 192.168.5.10:554

#PostUp = iptables -I FORWARD -i wg0 -j ACCEPT

PostUp = iptables -t nat -A POSTROUTING -p tcp -d 192.168.5.10 -j SNAT –to-source 216.120.11.37:10500

PostUp = iptables -t nat -A POSTROUTING -o ens18 -j MASQUERADE

PostDown = iptables -D INPUT -p udp –dport 41321 -j ACCEPT

PostDown = iptables -D FORWARD -i ens18 -o wg0 -j ACCEPT

PostDown = iptables -t nat -A PREROUTING -p tcp -d 216.120.11.37 –dport 10500 -j DNAT –to-destination 192.168.5.10:554

#PostDown = iptables -D FORWARD -i wg0 -j ACCEPT

PostDown = iptables -t nat -D POSTROUTING -p tcp -d 192.168.5.10 -j SNAT –to-source 216.120.11.37:10500

PostDown = iptables -t nat -D POSTROUTING -o ens18 -j MASQUERADE

Уже неделю долблюсь об iptables))) Плз, помогите поправить!!!



Последнее исправление: AlexZander (всего исправлений: 2)

Ответ на: комментарий от AlexZander

Выше написано, как проверить с помощью ffmpeg, что поток идёт.

Проверки на ping и прочее нет.

Ты положил эти команды в postup. Ты перезагружал VPS?

В iptables важна очерёдность в правилах. Если выше остались твои неправильные правила или прочие отрабатывающие правила, подходящие для пакетов порта 10050 - то, что ты добавил позднее работать не будет.

Посмотри вывод:

iptables-save

Добавь команды, что я привёл руками, не через postup, а просто в командной строке, а потом всё проверяй.

Ещё можно вместо

iptables -t nat -A PREROUTING ...
iptables -t nat -A POSTROUTING ...

Добавлять правила в начало цепочек.

iptables -t nat -I PREROUTING ...
iptables -t nat -I POSTROUTING ...

Если ты уверен, что выше этих правил не должны быть другие правала, важные для работы.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 2)
Ответ на: комментарий от kostik87
после каждого изменения впс ребут.

есть конфиг на котором по wg видео и пинги идут норм.

PostUp = iptables -I INPUT -p udp --dport 40123 -j ACCEPT
PostUp = iptables -I FORWARD -i ens18 -o wg0 -j ACCEPT
PostUp = iptables -I FORWARD -i wg0 -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o ens18 -j MASQUERADE
PostDown = iptables -D INPUT -p udp --dport 40123 -j ACCEPT
PostDown = iptables -D FORWARD -i ens18 -o wg0 -j ACCEPT
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT
PostDown = iptables -t nat -D POSTROUTING -o ens18 -j MASQUERADE

плз, можете написать, что сюда добавить/убавить, чтобы и wg ехало и проброс порта работал?

AlexZander
() автор топика
Ответ на: комментарий от kostik87
root@wgserver:~# iptables-save
# Generated by iptables-save v1.8.7 on Wed Jun 12 14:00:48 2024
*mangle
:PREROUTING ACCEPT [1029:393898]
:INPUT ACCEPT [1023:392188]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [658:1446640]
:POSTROUTING ACCEPT [658:1446640]
COMMIT
# Completed on Wed Jun 12 14:00:48 2024
# Generated by iptables-save v1.8.7 on Wed Jun 12 14:00:48 2024
*filter
:INPUT DROP [73:3120]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:ufw-after-forward - [0:0]
:ufw-after-input - [0:0]
:ufw-after-logging-forward - [0:0]
:ufw-after-logging-input - [0:0]
:ufw-after-logging-output - [0:0]
:ufw-after-output - [0:0]
:ufw-before-forward - [0:0]
:ufw-before-input - [0:0]
:ufw-before-logging-forward - [0:0]
:ufw-before-logging-input - [0:0]
:ufw-before-logging-output - [0:0]
:ufw-before-output - [0:0]
:ufw-logging-allow - [0:0]
:ufw-logging-deny - [0:0]
:ufw-not-local - [0:0]
:ufw-reject-forward - [0:0]
:ufw-reject-input - [0:0]
:ufw-reject-output - [0:0]
:ufw-skip-to-policy-forward - [0:0]
:ufw-skip-to-policy-input - [0:0]
:ufw-skip-to-policy-output - [0:0]
:ufw-track-forward - [0:0]
:ufw-track-input - [0:0]
:ufw-track-output - [0:0]
:ufw-user-forward - [0:0]
:ufw-user-input - [0:0]
:ufw-user-limit - [0:0]
:ufw-user-limit-accept - [0:0]
:ufw-user-logging-forward - [0:0]
:ufw-user-logging-input - [0:0]
:ufw-user-logging-output - [0:0]
:ufw-user-output - [0:0]
-A INPUT -p udp -m udp --dport 40123 -j ACCEPT
-A INPUT -j ufw-before-logging-input
-A INPUT -j ufw-before-input
-A INPUT -j ufw-after-input
-A INPUT -j ufw-after-logging-input
-A INPUT -j ufw-reject-input
-A INPUT -j ufw-track-input
-A FORWARD -i wg0 -j ACCEPT
-A FORWARD -i ens18 -o wg0 -j ACCEPT
-A FORWARD -j ufw-before-logging-forward
-A FORWARD -j ufw-before-forward
-A FORWARD -j ufw-after-forward
-A FORWARD -j ufw-after-logging-forward
-A FORWARD -j ufw-reject-forward
-A FORWARD -j ufw-track-forward
-A OUTPUT -j ufw-before-logging-output
-A OUTPUT -j ufw-before-output
-A OUTPUT -j ufw-after-output
-A OUTPUT -j ufw-after-logging-output
-A OUTPUT -j ufw-reject-output
-A OUTPUT -j ufw-track-output
-A ufw-after-input -p udp -m udp --dport 137 -j ufw-skip-to-policy-input
-A ufw-after-input -p udp -m udp --dport 138 -j ufw-skip-to-policy-input
-A ufw-after-input -p tcp -m tcp --dport 139 -j ufw-skip-to-policy-input
-A ufw-after-input -p tcp -m tcp --dport 445 -j ufw-skip-to-policy-input
-A ufw-after-input -p udp -m udp --dport 67 -j ufw-skip-to-policy-input
-A ufw-after-input -p udp -m udp --dport 68 -j ufw-skip-to-policy-input
-A ufw-after-input -m addrtype --dst-type BROADCAST -j ufw-skip-to-policy-input
-A ufw-after-logging-forward -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
-A ufw-after-logging-input -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
-A ufw-before-forward -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 12 -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A ufw-before-forward -j ufw-user-forward
-A ufw-before-input -i lo -j ACCEPT
-A ufw-before-input -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-input -m conntrack --ctstate INVALID -j ufw-logging-deny
-A ufw-before-input -m conntrack --ctstate INVALID -j DROP
-A ufw-before-input -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A ufw-before-input -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A ufw-before-input -p icmp -m icmp --icmp-type 12 -j ACCEPT
-A ufw-before-input -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A ufw-before-input -p udp -m udp --sport 67 --dport 68 -j ACCEPT
-A ufw-before-input -j ufw-not-local
-A ufw-before-input -d 224.0.0.251/32 -p udp -m udp --dport 5353 -j ACCEPT
-A ufw-before-input -d 239.255.255.250/32 -p udp -m udp --dport 1900 -j ACCEPT
-A ufw-before-input -j ufw-user-input
-A ufw-before-output -o lo -j ACCEPT
-A ufw-before-output -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-output -j ufw-user-output
-A ufw-logging-allow -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW ALLOW] "
-A ufw-logging-deny -m conntrack --ctstate INVALID -m limit --limit 3/min --limit-burst 10 -j RETURN
-A ufw-logging-deny -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
-A ufw-not-local -m addrtype --dst-type LOCAL -j RETURN
-A ufw-not-local -m addrtype --dst-type MULTICAST -j RETURN
-A ufw-not-local -m addrtype --dst-type BROADCAST -j RETURN
-A ufw-not-local -m limit --limit 3/min --limit-burst 10 -j ufw-logging-deny
-A ufw-not-local -j DROP
-A ufw-skip-to-policy-forward -j DROP
-A ufw-skip-to-policy-input -j DROP
-A ufw-skip-to-policy-output -j ACCEPT
-A ufw-track-output -p tcp -m conntrack --ctstate NEW -j ACCEPT
-A ufw-track-output -p udp -m conntrack --ctstate NEW -j ACCEPT
-A ufw-user-input -p tcp -m tcp --dport 10000 -j ACCEPT
-A ufw-user-input -p udp -m udp --dport 40123 -j ACCEPT
-A ufw-user-limit -m limit --limit 3/min -j LOG --log-prefix "[UFW LIMIT BLOCK] "
-A ufw-user-limit -j REJECT --reject-with icmp-port-unreachable
-A ufw-user-limit-accept -j ACCEPT
COMMIT
# Completed on Wed Jun 12 14:00:48 2024
# Generated by iptables-save v1.8.7 on Wed Jun 12 14:00:48 2024
*nat
:PREROUTING ACCEPT [214:30723]
:INPUT ACCEPT [34:1874]
:OUTPUT ACCEPT [19:1294]
:POSTROUTING ACCEPT [8:501]
-A POSTROUTING -o ens18 -j MASQUERADE
COMMIT
AlexZander
() автор топика
Ответ на: комментарий от AlexZander

У тебя стоит ufw, ну так и настраивай через него или добавляй правила в iptables через ключ ‘-I’.

Всё, что не объявлено в ufw дропается вот этими правилами:

-A ufw-not-local -j DROP
-A ufw-skip-to-policy-forward -j DROP
-A ufw-skip-to-policy-input -j DROP

Скажи, зачем ты лезешь туда, в чём не разбираешься и даже не пытаешься разобраться?

Найми админа и включай голову.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

Вы задали хороший вопрос. Потому и лезу, надо разобраться. Других вариантов пока нет.

Большое спасибо, что помогаете. Если есть желание все настроить на возмездной основе, плз, дайте знать.

AlexZander
() автор топика
Ответ на: комментарий от kostik87
есть пустышка с wg.

root@test1:~# iptables-save
# Generated by iptables-save v1.8.7 on Wed Jun 12 13:26:32 2024
*mangle
:PREROUTING ACCEPT [440:87705]
:INPUT ACCEPT [344:55111]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [226:54900]
:POSTROUTING ACCEPT [226:54900]
COMMIT
# Completed on Wed Jun 12 13:26:32 2024
# Generated by iptables-save v1.8.7 on Wed Jun 12 13:26:32 2024
*filter
:INPUT ACCEPT [344:55111]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [226:54900]
:ufw-user-input - [0:0]
-A INPUT -p udp -m udp --dport 40123 -j ACCEPT
-A FORWARD -i wg0 -j ACCEPT
-A FORWARD -i eth0 -o wg0 -j ACCEPT
COMMIT
# Completed on Wed Jun 12 13:26:32 2024
# Generated by iptables-save v1.8.7 on Wed Jun 12 13:26:32 2024
*nat
:PREROUTING ACCEPT [157:36977]
:INPUT ACCEPT [61:4383]
:OUTPUT ACCEPT [4:271]
:POSTROUTING ACCEPT [3:190]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Wed Jun 12 13:26:32 2024
root@test1:~# 

Фаервола нет совсем.
Правильно понимаю, если сюда разместить ваши рекомендации, то все поедет?
AlexZander
() автор топика
Ответ на: комментарий от kostik87
опробовал на пустышке без фаерфола и лишнинего в iptables/
не едет ни c wg, ни без wg

PostUp = iptables -t nat -A PREROUTING -p tcp -d 217.197.117.81 --dport 10500 -j DNAT --to-destination 192.168.5.10:554
PostUp = iptables -t nat -A POSTROUTING -p tcp --dport 554 -d 192.168.5.10 -j SNAT --to-source 10.8.8.1
PostDown = iptables -t nat -D PREROUTING -p tcp -d 217.197.117.81 --dport 10500 -j DNAT --to-destination 192.168.5.10:554
PostDown = iptables -t nat -D POSTROUTING -p tcp --dport 554 -d 192.168.5.10 -j SNAT --to-source 10.8.8.1

root@wgserver:~# iptables-save
# Generated by iptables-save v1.8.7 on Wed Jun 12 17:23:39 2024
*mangle
:PREROUTING ACCEPT [423:82518]
:INPUT ACCEPT [421:81948]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [380:105071]
:POSTROUTING ACCEPT [380:105071]
COMMIT
# Completed on Wed Jun 12 17:23:39 2024
# Generated by iptables-save v1.8.7 on Wed Jun 12 17:23:39 2024
*filter
:INPUT ACCEPT [421:81948]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [380:105071]
COMMIT
# Completed on Wed Jun 12 17:23:39 2024
# Generated by iptables-save v1.8.7 on Wed Jun 12 17:23:39 2024
*nat
:PREROUTING ACCEPT [67:5699]
:INPUT ACCEPT [65:5129]
:OUTPUT ACCEPT [7:479]
:POSTROUTING ACCEPT [7:479]
-A PREROUTING -d 217.197.117.81/32 -p tcp -m tcp --dport 10500 -j DNAT --to-destination 192.168.5.10:554
-A POSTROUTING -d 192.168.5.10/32 -p tcp -m tcp --dport 554 -j SNAT --to-source 10.8.8.1
COMMIT
# Completed on Wed Jun 12 17:23:39 2024

root@wgserver:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         217-197-117-1.e 0.0.0.0         UG    100    0        0 ens18
10.8.8.0        0.0.0.0         255.255.255.0   U     0      0        0 wg0
192.168.5.0     0.0.0.0         255.255.255.0   U     0      0        0 wg0
192.168.5.1     0.0.0.0         255.255.255.255 UH    0      0        0 wg0
192.168.5.10    0.0.0.0         255.255.255.255 UH    0      0        0 wg0
192.168.5.20    0.0.0.0         255.255.255.255 UH    0      0        0 wg0
rec14.estt.ru   217-197-117-1.e 255.255.255.255 UGH   100    0        0 ens18
217.197.117.0   0.0.0.0         255.255.255.0   U     100    0        0 ens18
217-197-117-1.e 0.0.0.0         255.255.255.255 UH    100    0        0 ens18
AlexZander
() автор топика
Ответ на: комментарий от AlexZander

Повторяю, нужно выполнить для начала тесты.

ping WEB камеры с сервера VPS, проверку через ffmpeg, что поток отдаётся, а потом дальше смотреть.

Это сделано?

К тому же по какому протоколу камера отдаёт поток, tcp или udp? В правилах указан только TCP.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от kostik87
Извините за задержку с ответами, включение головы - процесс не простой)))

пинги идут и видео идет.

root@test1:~# ping -c 3 192.168.10.10 
PING 192.168.10.10 (192.168.10.10) 56(84) bytes of data.
64 bytes from 192.168.10.10: icmp_seq=1 ttl=63 time=5.75 ms
64 bytes from 192.168.10.10: icmp_seq=2 ttl=63 time=5.38 ms
64 bytes from 192.168.10.10: icmp_seq=3 ttl=63 time=5.30 ms

на клиенте кинетик стоит маршрут до сети 10.8.8.0
tcpdump показывает, если запросы идут по wg, например с 10.8.8.14, то кинетик отправляет ответы нормально. Если запрос приходит не из сети 10.8.8.0, то ничего не отправляется.

Дальше возможны 2 варианта:
1. "Правильно" маршрутизировать кинетик, но пока чтение форумов к позитиву не привело.
2. Попробовать подменить адрес, приходящий с порта 10500, на адрес 10.8.8.100 и посмотреть как пойдут пакеты. С такой подменой адреса можете помочь с настройками?
AlexZander
() автор топика
Ответ на: комментарий от AlexZander

Если запрос приходит не из сети 10.8.8.0, то ничего не отправляется.

Думаю, отправляется, но не туда. А маршрут по умолчанию. У тебя в кинетике стоит галка «использовать для выхода в интернет»? Если в его политику засунуть камеру, тогда пойдёт связь?

https://help.keenetic.com/hc/ru/articles/360016262100

Посмотри мою тему ещё, там были ссылки на англоязычные блоги на эту тему. Перенаправить udp траффик через wireguard

NyXzOr ★★★
()
Последнее исправление: NyXzOr (всего исправлений: 1)
Ответ на: комментарий от NyXzOr
Спасибо за подсказку! Но не пошло, буду думать, что не так)))
AlexZander
() автор топика
Ответ на: комментарий от kostik87
некая подвижка есть))), но видео нет.

root@test1:~# tcpdump -n -vv port 10500
tcpdump: listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
15:47:05.193003 IP (tos 0x8, ttl 52, id 25927, offset 0, flags [DF], proto TCP (6), length 60)
    83.220.237.142.27282 > 45.84.85.67.10500: Flags [S], cksum 0x7e05 (correct), seq 202252715, win 65535, options [mss 1360,sackOK,TS val 2114796 ecr 0,nop,wscale 8], length 0
15:47:05.198706 IP (tos 0x0, ttl 62, id 0, offset 0, flags [DF], proto TCP (6), length 60)
    45.84.85.67.10500 > 83.220.237.142.27282: Flags [S.], cksum 0x603a (correct), seq 4214417918, ack 202252716, win 28960, options [mss 1284,sackOK,TS val 1230759 ecr 2114796,nop,wscale 2], length 0
15:47:05.231986 IP (tos 0x8, ttl 52, id 25928, offset 0, flags [DF], proto TCP (6), length 52)
    83.220.237.142.27282 > 45.84.85.67.10500: Flags [.], cksum 0xfe0c (correct), seq 1, ack 1, win 319, options [nop,nop,TS val 2114834 ecr 1230759], length 0
15:47:05.232568 IP (tos 0x8, ttl 52, id 25929, offset 0, flags [DF], proto TCP (6), length 140)
    83.220.237.142.27282 > 45.84.85.67.10500: Flags [P.], cksum 0x336f (correct), seq 1:89, ack 1, win 319, options [nop,nop,TS val 2114836 ecr 1230759], length 88
15:47:05.238382 IP (tos 0x0, ttl 62, id 11861, offset 0, flags [DF], proto TCP (6), length 52)
    45.84.85.67.10500 > 83.220.237.142.27282: Flags [.], cksum 0xe2a5 (correct), seq 1, ack 89, win 7240, options [nop,nop,TS val 1230763 ecr 2114836], length 0

root@test1:~# tcpdump -n -vv -i wg0 host 192.168.10.10
tcpdump: listening on wg0, link-type RAW (Raw IP), snapshot length 262144 bytes
15:44:54.288166 IP (tos 0x8, ttl 51, id 31716, offset 0, flags [DF], proto TCP (6), length 60)
    83.220.237.142.26307 > 192.168.10.10.554: Flags [S], cksum 0xc18d (correct), seq 2377283086, win 65535, options [mss 1360,sackOK,TS val 2100714 ecr 0,nop,wscale 8], length 0
15:44:54.294281 IP (tos 0x0, ttl 63, id 0, offset 0, flags [DF], proto TCP (6), length 60)
    192.168.10.10.554 > 83.220.237.142.26307: Flags [S.], cksum 0xd445 (correct), seq 2924231045, ack 2377283087, win 28960, options [mss 1284,sackOK,TS val 1217668 ecr 2100714,nop,wscale 2], length 0
15:44:54.326904 IP (tos 0x8, ttl 51, id 31717, offset 0, flags [DF], proto TCP (6), length 52)
    83.220.237.142.26307 > 192.168.10.10.554: Flags [.], cksum 0x721f (correct), seq 1, ack 1, win 319, options [nop,nop,TS val 2100745 ecr 1217668], length 0
15:44:54.327589 IP (tos 0x8, ttl 51, id 31718, offset 0, flags [DF], proto TCP (6), length 140)
    83.220.237.142.26307 > 192.168.10.10.554: Flags [P.], cksum 0xa782 (correct), seq 1:89, ack 1, win 319, options [nop,nop,TS val 2100746 ecr 1217668], length 88: RTSP, length: 88
        OPTIONS rtsp://45.84.85.67:10500 RTSP/1.0
        User-Agent: AndroidXMedia3/1.2.1
        CSeq: 0

15:44:54.333447 IP (tos 0x0, ttl 63, id 44302, offset 0, flags [DF], proto TCP (6), length 52)
    192.168.10.10.554 > 83.220.237.142.26307: Flags [.], cksum 0x56b9 (correct), seq 1, ack 89, win 7240, options [nop,nop,TS val 1217672 ecr 2100746], length 0


AlexZander
() автор топика
Ответ на: комментарий от Cergoo
тут хоть одну бы подключить.

в разрешении 1280х720 20кс поток около 2мбит.

есть конструктивные идеи как все это запустить?


AlexZander
() автор топика
Ответ на: комментарий от AlexZander

берите меня админом сервака такого, у тебя есть хоть один rtsp урл посмотреть как это работает, чтот все что нахожу в гугле все нерабочие?

Cergoo
()
Последнее исправление: Cergoo (всего исправлений: 1)
Ответ на: комментарий от Cergoo
сделал проброс 80 порт кинетик -> wg туннель -> vps wg сервер ->
порт ххххх -> интернет http доступ работает нормально, схема работает без проблем. видимо, засада в rtcp при пробросе.

есть светлые мысли? 
AlexZander
() автор топика
Ответ на: комментарий от Cergoo
есть, но надо через личку как-нибудь)))

кстати, хорошая идея попробовать пропустить через vps и без wg rtsp видео с белого ip и посмотреть как пройдет.
AlexZander
() автор топика
Ответ на: комментарий от AlexZander

почитал про rtsp - это управляющий протокол, сам видео аудио поток точно по 554 порту передается ?

для лички мой телеграм @le_craft

Cergoo
()
Последнее исправление: Cergoo (всего исправлений: 1)
Ответ на: комментарий от Cergoo
точно))) можно и другой на камере назначить. на локалке видео идет, через впн - впн идет, впн - порт не идет. может ртсп с wg на порт надо как-то описывать специально?

AlexZander
() автор топика
Ответ на: комментарий от AlexZander

я это проверить хотел, посмотреть какие порты открываются, может там потоки по другим портам идут. но в гугле рабочих ссылок rtsp чтото не нашел.

Cergoo
()
Ответ на: комментарий от Cergoo
есть пара публичных ссылок, работают.

rtsp://rtspstream:0b74861da07d9effb9b22024f1a81513@zephyr.rtsp.stream/pattern

rtsp://rtspstream:8dcbfc1bedca90fd6b385274ed219364@zephyr.rtsp.stream/movie


AlexZander
() автор топика
Ответ на: комментарий от Cergoo
похоже вы были правы. мелькает два порта, 40000 и 40001, с 40000 камера выдает поток. как понять это случайный порт или нет? и нужно ли делать проброс диапазона, например, 40000:40100?

09:22:10.071599 IP (tos 0x0, ttl 64, id 2552, offset 0, flags [DF], proto TCP (6), length 60)
    10.8.8.1.37688 > 192.168.10.10.10500: Flags [S], cksum 0xdce9 (incorrect -> 0xfc1d), seq 1199986045, win 64860, options [mss 1380,sackOK,TS val 1309788872 ecr 0,nop,wscale 7], length 0
09:22:10.076612 IP (tos 0x0, ttl 63, id 0, offset 0, flags [DF], proto TCP (6), length 60)
    192.168.10.10.10500 > 10.8.8.1.37688: Flags [S.], cksum 0xe8dc (correct), seq 611804625, ack 1199986046, win 28960, options [mss 1284,sackOK,TS val 726398 ecr 1309788872,nop,wscale 2], length 0
09:22:10.076624 IP (tos 0x0, ttl 64, id 2553, offset 0, flags [DF], proto TCP (6), length 52)
    10.8.8.1.37688 > 192.168.10.10.10500: Flags [.], cksum 0xdce1 (incorrect -> 0x8614), seq 1, ack 1, win 507, options [nop,nop,TS val 1309788877 ecr 726398], length 0
09:22:10.076664 IP (tos 0x0, ttl 64, id 2554, offset 0, flags [DF], proto TCP (6), length 135)
    10.8.8.1.37688 > 192.168.10.10.10500: Flags [P.], cksum 0xdd34 (incorrect -> 0x3cab), seq 1:84, ack 1, win 507, options [nop,nop,TS val 1309788877 ecr 726398], length 83
09:22:10.082281 IP (tos 0x0, ttl 63, id 28844, offset 0, flags [DF], proto TCP (6), length 52)
    192.168.10.10.10500 > 10.8.8.1.37688: Flags [.], cksum 0x6b73 (correct), seq 1, ack 84, win 7240, options [nop,nop,TS val 726399 ecr 1309788877], length 0
09:22:10.084769 IP (tos 0x0, ttl 63, id 28845, offset 0, flags [DF], proto TCP (6), length 188)
    192.168.10.10.10500 > 10.8.8.1.37688: Flags [P.], cksum 0x0d22 (correct), seq 1:137, ack 84, win 7240, options [nop,nop,TS val 726399 ecr 1309788877], length 136
09:22:10.084774 IP (tos 0x0, ttl 64, id 2555, offset 0, flags [DF], proto TCP (6), length 52)
    10.8.8.1.37688 > 192.168.10.10.10500: Flags [.], cksum 0xdce1 (incorrect -> 0x8531), seq 84, ack 137, win 506, options [nop,nop,TS val 1309788885 ecr 726399], length 0
09:22:10.084864 IP (tos 0x0, ttl 64, id 2556, offset 0, flags [DF], proto TCP (6), length 161)
    10.8.8.1.37688 > 192.168.10.10.10500: Flags [P.], cksum 0xdd4e (incorrect -> 0xb44b), seq 84:193, ack 137, win 506, options [nop,nop,TS val 1309788885 ecr 726399], length 109
09:22:10.091161 IP (tos 0x0, ttl 63, id 28846, offset 0, flags [DF], proto TCP (6), length 203)
    192.168.10.10.10500 > 10.8.8.1.37688: Flags [P.], cksum 0x3a01 (correct), seq 137:288, ack 193, win 7240, options [nop,nop,TS val 726399 ecr 1309788885], length 151
09:22:10.091322 IP (tos 0x0, ttl 64, id 2557, offset 0, flags [DF], proto TCP (6), length 348)
    10.8.8.1.37688 > 192.168.10.10.10500: Flags [P.], cksum 0xde09 (incorrect -> 0xf077), seq 193:489, ack 288, win 505, options [nop,nop,TS val 1309788891 ecr 726399], length 296
09:22:10.107522 IP (tos 0x0, ttl 63, id 28847, offset 0, flags [DF], proto TCP (6), length 709)
    192.168.10.10.10500 > 10.8.8.1.37688: Flags [P.], cksum 0xc215 (correct), seq 288:945, ack 489, win 7508, options [nop,nop,TS val 726401 ecr 1309788891], length 657
09:22:10.107920 IP (tos 0x0, ttl 64, id 2558, offset 0, flags [DF], proto TCP (6), length 415)
    10.8.8.1.37688 > 192.168.10.10.10500: Flags [P.], cksum 0xde4c (incorrect -> 0xd2b4), seq 489:852, ack 945, win 502, options [nop,nop,TS val 1309788908 ecr 726401], length 363
09:22:10.115745 IP (tos 0x0, ttl 63, id 28848, offset 0, flags [DF], proto TCP (6), length 287)
    192.168.10.10.10500 > 10.8.8.1.37688: Flags [P.], cksum 0x8adc (correct), seq 945:1180, ack 852, win 7776, options [nop,nop,TS val 726402 ecr 1309788908], length 235
09:22:10.115919 IP (tos 0x0, ttl 64, id 44467, offset 0, flags [DF], proto UDP (17), length 40)
    10.8.8.1.14692 > 192.168.10.10.40000: [bad udp cksum 0xdce0 -> 0xcd65!] UDP, length 12
09:22:10.115935 IP (tos 0x0, ttl 64, id 44468, offset 0, flags [DF], proto UDP (17), length 36)
    10.8.8.1.14693 > 192.168.10.10.40001: [bad udp cksum 0xdcdc -> 0xcca1!] UDP, length 8
09:22:10.115967 IP (tos 0x0, ttl 64, id 2559, offset 0, flags [DF], proto TCP (6), length 356)
    10.8.8.1.37688 > 192.168.10.10.10500: Flags [P.], cksum 0xde11 (incorrect -> 0x0e0d), seq 852:1156, ack 1180, win 502, options [nop,nop,TS val 1309788916 ecr 726402], length 304
09:22:10.120991 IP (tos 0xc0, ttl 63, id 55555, offset 0, flags [none], proto ICMP (1), length 68)
    192.168.10.10 > 10.8.8.1: ICMP 192.168.10.10 udp port 40000 unreachable, length 48
	IP (tos 0x0, ttl 63, id 44467, offset 0, flags [DF], proto UDP (17), length 40)
    10.8.8.1.14692 > 192.168.10.10.40000: [udp sum ok] UDP, length 12
09:22:10.121128 IP (tos 0xc0, ttl 63, id 55556, offset 0, flags [none], proto ICMP (1), length 64)
    192.168.10.10 > 10.8.8.1: ICMP 192.168.10.10 udp port 40001 unreachable, length 44
	IP (tos 0x0, ttl 63, id 44468, offset 0, flags [DF], proto UDP (17), length 36)
    10.8.8.1.14693 > 192.168.10.10.40001: [udp sum ok] UDP, length 8
09:22:10.127708 IP (tos 0x0, ttl 63, id 28849, offset 0, flags [DF], proto TCP (6), length 177)
    192.168.10.10.10500 > 10.8.8.1.37688: Flags [P.], cksum 0x87c5 (correct), seq 1180:1305, ack 1156, win 8044, options [nop,nop,TS val 726403 ecr 1309788916], length 125
09:22:10.171514 IP (tos 0x0, ttl 64, id 2560, offset 0, flags [DF], proto TCP (6), length 52)
    10.8.8.1.37688 > 192.168.10.10.10500: Flags [.], cksum 0xdce1 (incorrect -> 0x7c1a), seq 1156, ack 1305, win 502, options [nop,nop,TS val 1309788972 ecr 726403], length 0
09:22:10.228638 IP (tos 0x0, ttl 63, id 18398, offset 0, flags [DF], proto UDP (17), length 74)
    192.168.10.10.40000 > 10.8.8.1.14692: [udp sum ok] UDP, length 46
09:22:10.228647 IP (tos 0x0, ttl 63, id 18400, offset 0, flags [DF], proto UDP (17), length 47)
    192.168.10.10.40000 > 10.8.8.1.14692: [udp sum ok] UDP, length 19
09:22:10.228649 IP (tos 0x0, ttl 63, id 18399, offset 0, flags [DF], proto UDP (17), length 84)
    192.168.10.10.40000 > 10.8.8.1.14692: [udp sum ok] UDP, length 56
09:22:10.228651 IP (tos 0x0, ttl 63, id 18401, offset 0, flags [DF], proto UDP (17), length 49)
    192.168.10.10.40000 > 10.8.8.1.14692: [udp sum ok] UDP, length 21
09:22:10.229032 IP (tos 0x0, ttl 63, id 18402, offset 0, flags [+], proto UDP (17), length 1324)
    192.168.10.10.40000 > 10.8.8.1.14692: UDP, length 1408
09:22:10.229038 IP (tos 0x0, ttl 63, id 18402, offset 1304, flags [none], proto UDP (17), length 132)
    192.168.10.10 > 10.8.8.1: ip-proto-17
09:22:10.229069 IP (tos 0x0, ttl 63, id 18403, offset 0, flags [+], proto UDP (17), length 1324)
    192.168.10.10.40000 > 10.8.8.1.14692: UDP, length 1408
09:22:10.229071 IP (tos 0x0, ttl 63, id 18403, offset 1304, flags [none], proto UDP (17), length 132)
    192.168.10.10 > 10.8.8.1: ip-proto-17
09:22:10.229271 IP (tos 0x0, ttl 63, id 18404, offset 0, flags [+], proto UDP (17), length 1324)
    192.168.10.10.40000 > 10.8.8.1.14692: UDP, length 1408
09:22:10.229273 IP (tos 0x0, ttl 63, id 18404, offset 1304, flags [none], proto UDP (17), length 132)

AlexZander
() автор топика
Ответ на: комментарий от Cergoo
выше выложил tcpdump с портами. это был ffmpeg -i rtsp://admin:admin@192.168.10.10:10500

то есть видео внутри сервера доступно, теперь надо правильно сообразить, как это разрулить внутри сервера.
AlexZander
() автор топика
Ответ на: комментарий от Cergoo
домомофоны))) все хотят, чтобы ip шло через серые адреса за натами, так как это дешево, белый ip покупать на каждый адрес дорого)) поднять сервер можно, только начинка будет все таже и это не решит проблему проброса портов из серой зоны.
AlexZander
() автор топика
Ответ на: комментарий от Cergoo
да, кол-во камер любое.

а теперь про ужасы....))))


"RTSP требует специальной обработки при использовании NAT (как того требует протокол FTP), например, с помощью пакета raspbian nat-rtsp-dkms....."

в лоб ртсп пробросить нельзя, нужна доп приблуда на сервере для обработки ртсп. вот поэтому проброс на 80 порт и http работали нормально, а проброс в лоб ртсп не идет)))

теперь надо выбирать приблуду для ртсп)))

AlexZander
() автор топика
Ответ на: комментарий от AlexZander
Тему закрываю, так как с обычным пробросом и wg все выяснено. По РТСП открыл другую тему.

Всем Спасибо!!!
AlexZander
() автор топика
Ответ на: комментарий от kostik87
Спасибо за хороший совет!! Для одной камеры может и норм, но если будет 50, то все сдохнет))) фактически нужен ртсп свитч и такие есть, но это уже в др. теме.

AlexZander
() автор топика

Чтобы кто угодно набрал rtsp://user:pass@216.120.11.37:10500 и получил видео.

Не нужно выставлять rtsp для всех, нужно его перепаковывать в HLS или вообще раздавать через ютуб, твич или подобное rtsp.me.

yandrey
()
Ответ на: комментарий от Cergoo

и в чем принципиальная разница. ютуб и твич канал с камерой домофона конечно смешно :)

rtsp на камерах не для множественных подключений

все равно rtsp без шифрования, ссылка и пароль сразу утекут

yandrey
()
Ответ на: комментарий от Cergoo
Для убунты есть такая приблуда nat-rtsp-dkms, которая как помогает решить проброс ртсп.

Может кто сталкивался, как это настроить, как это работает, есть ли мануал или примеры?


AlexZander
() автор топика
Ответ на: комментарий от AlexZander

При беглом просмотре темы не понял, есть ли со стороны внутренней сети с камерами сервер, если есть что то где может быть ffmpeg, просто возьми lighttpd или nginx+fcgiwrap, сделай на них запуск такого скрипта:

#!/bin/sh
echo -e "Content-type: video/mpegts\r\n"

ffmpeg -loglevel quiet -rtsp_transport tcp -i rtsp://user:pass#10.10.10.10 -c copy -y -f mpegts pipe:1

после http можно хоть как пробрасывать или проксировать.

yandrey
()
Ответ на: комментарий от AlexZander

там по другому делать надо,

но в любом случае сервак по трафику не вывезет, планируеш 50 камер по 2 Мбит/с на сервак? двое клиентов на камеру уже канал весь загрузят.

Cergoo
()
Последнее исправление: Cergoo (всего исправлений: 1)
Ответ на: комментарий от Cergoo
1 камера = всегда 1 клиент, вероятность одновременного подключения камер не более 10%, время коннекта камеры не более 1 минуты за сеанс. Чтобы забить хотя бы 50 мбит нужно постараться)))
AlexZander
() автор топика
Ответ на: комментарий от Cergoo
сеанс с камерой привязан к сеансу приложения смарта клиента, тайм аут на клиентском приложении 1 мин.

Есть идеи по nat-rtsp-dkms или по 	
net.netfilter.nf_conntrack_helper?

AlexZander
() автор топика
Ответ на: комментарий от Cergoo
плз, если не затруднит, можете написать небольшую инструкцию как сделать через прокси?

AlexZander
() автор топика
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.