Назад | Перейти на главную страницу

Заблокируйте rtmp и заставьте его повторить попытку через порт 80 через iptables

У нас есть соединения с фильтрацией прокси, но некоторые сайты используют RTMP, который работает на порту 1935. Это не может проходить через прокси, поскольку прокси - это только порт 80.

Насколько я знаю, если RTMP не удастся, он повторит попытку через порт 80.

Итак, как я могу заблокировать 1935 год в iptables заставить RTMP проходить через обычный HTTP-порт?

У меня есть следующее, но оно не работает.

Любые потоки RTMP по-прежнему не работают.

[root@li711-43 ~]# iptables -A INPUT -p tcp --destination-port 1935 -j DROP
[root@li711-43 ~]# iptables -A OUTPUT -p tcp --dport 1935 -j DROP

Итак, как я могу заблокировать 1935 год в iptables заставить RTMP проходить через обычный HTTP-порт?

Использовать ПЕРЕДАЧА цепочка:

iptables -t nat -I PREROUTING -p tcp --dport 1935 -j REDIRECT --to-ports 80

Но при этом вы также говорите следующее:

У нас есть соединения с фильтрацией прокси, но некоторые сайты используют RTMP, который работает на порту 1935. Это не может проходить через прокси, поскольку прокси - это только порт 80.

Так что, порт 1935 полностью заблокирован? Вам нужно будет как минимум пробить дыру в цепочке FORWARD, чтобы позволить 1935 пройти, а затем отправить его на порт 80 через приведенное выше правило PREROUTING:

iptables -A INPUT -p tcp -m tcp --dport 1935 -j ACCEPT

Или если iptables собирается перенаправить этот трафик на другую машину, вам нужно установить этот IP-адрес; замена 123.45.67.89 с фактическим IP-адресом конечной машины:

iptables -A FORWARD -i eth0 -p tcp --dport 1935 -d 123.45.67.89 -j ACCEPT