AnrDaemon, спасибо за участие.
Структура сети с айпишниками:
локальная машина INT_IP --> Ubuntu server c GATE_IP и WAN_IP --> аппаратный роутер--> INTERNET --> видеорегистратор с EXT_IP:37777
С Ubuntu сервера видеорегистратор доступен и по ping и по telnet EXT_IP 37777 , так что затык в роутере исключаем.
Задача - дать локальной машине доступ к видеорегистратору.
На локальной машине настраиваю клиент видеонаблюдения на сервер GATE_IP:37777 ,Форвардинг пакетов в Ubuntu включен ( 1 в файле /proc/sys/net/ipv4/ip_forward).
Таблицы iptables очищены. Вношу правило
iptables -t nat -A PREROUTING -p tcp -d GATE_IP --dport 37777 -j DNAT --to-destination EXT_IP:37777
,то есть на сервере слушаем входящие c любого IP на порт 37777 и отправляем на видеорегистратор :37777
С локальной машины видео недоступно, telnet EXT_IP 37777 также не работает.
Пытаемся соединиться, смотрим tcpdump.
sudo tcpdump -p tcp port 37777
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
11:09:50.026958 IP INT_IP.56838 > GATE_IP.37777: Flags [S], seq 3934726529, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
11:09:53.027262 IP INT_IP.56838 > GATE_IP.37777: Flags [S], seq 3934726529, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
11:09:59.028666 IP INT_IP.56838 > GATE_IP.37777: Flags [S], seq 3934726529, win 8192, options [mss 1460,nop,nop,sackOK],length 0
11:10:10.297567 IP INT_IP.56839 > GATE_IP.37777: Flags [S], seq 1315410236, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
11:10:13.297647 IP INT_IP.56839 > GATE_IP.37777: Flags [S], seq 1315410236, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
11:10:19.301045 IP INT_IP.56839 > GATE_IP.37777: Flags [S], seq 1315410236, win 8192, options [mss 1460,nop,nop,sackOK],length 0
смотрим tcpdump на wan интерфейсе Ubuntu шлюза
sudo tcpdump -i eth1 -p tcp port 37777
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
11:13:13.854086 IP INT_IP.56843 > EXT_IP.37777: Flags [S], seq 3456946689, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
11:13:16.854116 IP INT_IP.56843 > EXT_IP.37777: Flags [S], seq 3456946689, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
11:13:22.854521 IP INT_IP.56843 > EXT_IP.37777: Flags [S], seq 3456946689, win 8192, options [mss 1460,nop,nop,sackOK], length 0
Пакеты вроде бы идут куда надо , но смущает length 0 , а идут ли обратно?