martes, 4 de noviembre de 2025

Nginx proxy inverso cache para protocolo HTTP Live Streaming (HLS)

Configuracion:

1° Creando un directorio para el caché de nginx:

proxy_cache_path "/opt/ramcache" use_temp_path=off keys_zone=hls:1m inactive=30s max_size=10g;


---------------------------------------------------------------------

Archivo de configuracion " hls_proxy.conf ":

/etc/nginx/conf.d/hls_proxy.conf:


-----------------------------------------------hls_proxy.conf

server {

    listen 4000;

    server_name _;

    location ~* \.(m3u8)$ {

        proxy_cache off;

        expires -1;

        proxy_pass http://192.168.88.100:8000;

        include /etc/nginx/hls_proxy_params.conf;

    }



    location ~* \.(ts)$ {

        proxy_pass http://192.168.88.100:8000;

        proxy_cache hls;

        proxy_cache_key $request_uri;

        proxy_cache_valid 200 10s;

        proxy_cache_lock on;

        proxy_cache_lock_timeout 5s;

        proxy_cache_lock_age 5s;

        include /etc/nginx/hls_proxy_params.conf;

    }


}
----------------------------------------------------------------
3° opciones de proxy comunes en:
 /etc/nginx/hls_proxy_params.conf

----------------------------------------------hls_proxy_params.conf

proxy_redirect              off;

proxy_connect_timeout       5s;
proxy_send_timeout          180s;
proxy_read_timeout          180s;

# Buffer for headers
proxy_buffer_size           16k;
proxy_buffers               512  32k;
proxy_temp_file_write_size  512k;
proxy_max_temp_file_size    256m;

# For keepalive
proxy_http_version          1.1;

proxy_set_header            Host $host;
proxy_set_header            X-Real-IP $remote_addr;
proxy_set_header            X-Forwarded-For $remote_addr;
proxy_set_header            X-Forwarded-Proto $scheme;

proxy_next_upstream         error timeout http_502 http_504;
proxy_next_upstream_tries   2;



-------------------------------------------------------------

fuentes:
https://www.hostingtg.com/blog/nginx-servidor-web-alto-rendimiento/
https://help.cesbo.com/misc/tools-and-utilities/network/hls-caching-proxy-with-nginx

---------------------------------------------------------------------------

Uso practico:
requisitos previos:
1° instalcion Nginx web proxy
2° config segun los pasos anteriores mostrados
3° prueba de funcionamiento

lunes, 3 de noviembre de 2025

HTTP Live Streaming (HLS), Transport Stream (TS) Adminstracion de trafico con Mikrotik

Identificar trafico streaming con L7 (TS para protocol 80):

/ip firewall layer7-protocol

add name=M3U8_TS2 regexp="(\\.(ts|m3u8)\?.+\$)*\$"


Mangle y L7

/ip firewall mangle

add action=mark-connection chain=prerouting layer7-protocol=M3U8_TS2 \

    new-connection-mark=Video_Stream

add action=mark-packet chain=postrouting connection-mark=Video_Stream \

    new-packet-mark=iptv_pkt passthrough=no


En Queue List y Type

/queue tree

add name=A_iptv packet-mark=iptv_pkt parent="Streaming Videos" priority=3 \

    queue=down_iptv


/queue type

add kind=pcq name=down_iptv pcq-classifier=dst-address pcq-rate=10M





sábado, 13 de marzo de 2021

Mikrotik: Bloquear Netflix con Layer7

 Mikrotik: Bloqueo de Netflix con Layer7

MikroTik RouterOS 6.48.1
 
1ro:  
Mediante el terminal: En ip / firewall / layer7protocols

/ip firewall layer7-protocol
add name=Block_Netflix regexp="^(.*|\.)(Nflxso|Nflxvideo|Netflix)\.(net|com)"

o

/ip firewall layer7-protocol
add name=Block_Netflix regexp="^.+(netflix.com|netflix.net|nflxext.com|nflximg.com|nflximg.net|nflxso.net|nflxvideo.net|.netflix.).*$"

En Winbox esta imagen:




2do:
En el Terminal: En ip / firewall / filter rules


/ip firewall filter
add action=drop chain=forward comment=Drop_NETFLIX layer7-protocol=\
    Block_Netflix

En Winbox esta otra imagen:



Fuente: https://buananetpbun.github.io/mikrotik/block-netflix-layer7-content-tls.html
----------------------------------------------------------------------------------------------------------------
Block Netflix with "Layer 7" or "Content" or "TLS
----------------------------------------------------------------------------------------------------------------

Block Netflix With "Layer-7"

/ip firewall layer7-protocol
add name=Netflix regexp="^.+(netflix.com).*\$"
/ip firewall filter
add action=drop chain=forward layer7-protocol=Netflix


Block Netflix With "Content"

/ip firewall filter
add action=drop chain=forward content="netflix.com" 
add action=drop chain=forward content=".netflix."


Block Netflix With "TLS"

/ip firewall filter
add action=drop chain=forward protocol=tcp tls-host="netflix.com"
add action=drop chain=forward protocol=tcp tls-host="*.netflix.*"

Credit: www.o-om.com

martes, 9 de julio de 2019

Mikrotik: Bloqueo de Facebook con Layer7

Mikrotik: Bloqueo de Facebook con Layer7
MikroTik RouterOS 6.44.3
 
1ro:  
Mediante el terminal: En ip / firewall / layer7protocols

/ip firewall layer7-protocol
add name=Block-Facebook regexp="([a-z\\.]*)\?facebook\\.com.*"


En Winbox esta imagen:

2do:
En el Terminal: En ip / firewall / filter rules

/ip firewall filter
add action=drop chain=forward comment=\
    "Block-Facebook" \
    layer7-protocol=Block-Facebook


En Winbox esta otra imagen:




 

sábado, 16 de marzo de 2019

Mikrotik: Limitar velocidad de descarga a los Servidores de Descargas

Mikrotik Limitar velocidad de descarga a los Servidores de Descargas
ya sea de Mega, Google drive, Mediafire, DropBox, Onedrive, Tresorit, FreeFileSync,Owncloud, SpiderOak,  depositefiles, ... etc, etc.
El ejemplo de prueba que se muestra a continuación limita a 512 KB/s, la descarga del archivo de vídeo alojado en Google Drive.

1.-: Aplicar reglas regex (convertir a expresiones regulares) en ip/firewall/ layer 7 protocols o través de Terminal el  siguiente Código de Configuración:

/ip firewall layer7-protocol
add name=block-GDrive2 regexp=".(api|googleusercontent).com"




2.-: En Ip/Firewall/Mangle: 
Agregar las reglas de marcado, como se muestra mediante terminal o winbox.

/ip firewall mangle
add action=mark-packet chain=postrouting comment=\
    "Limitar ancho de banda GDrive" layer7-protocol=block-GDrive2 \
    new-packet-mark=limita-gdrive passthrough=no protocol=tcp






3.- En Queues/Queues type: Agregar las reglas:

/queue type
add kind=pcq name=pcq-gdrive-down pcq-classifier=dst-address pcq-rate=500k




4.- En Queues/Queue Tree: por ultimo crear el árbol de cola.

/queue tree
add max-limit=1M name=Gdrive-Limite packet-mark=limita-gdrive parent=ether4 \
    queue=pcq-gdrive-down



El resultado:






miércoles, 27 de febrero de 2019

Mikrotik – AdGuard DNS: Bloquear Publicidad, Malware, Phishing y Contenido adulto

Mikrotik – AdGuard DNS: Bloquear Publicidad, Malware y Phishing

La privacidad en internet esta fuera de nuestro control y navegar seguro ya no es posible, en todo momento estamos siendo rastreados, entonces una solución es usar los DNS de AdGuard para bloquear los anuncios, phishing, rastreadores y contenido adulto.

Aqui utilizaremos los DNS, de https://adguard.com y la opción de reenvió NAT de Mikrotik para bloquear publicidad en juegos, videos, aplicaciones y páginas web. Ademas también los sitios web de malware y phishing.

AdGuard DNS por defecto

Que bloquean anuncios, rastreadores y phishing

DNS primario : 176.103.130.130

DNS secundario : 176.103.130.131

AdGuard DNS por defecto + Protección familiar:

Que cuenta con la protección por defecto + el bloqueo de sitios webs para adultos + búsqueda segura

DNS primario : 176.103.130.132

DNS secundario : 176.103.130.134


A través de Terminal : aquí se utiliza los DNS por defecto


/ip firewall nat

add action=dst-nat chain=dstnat comment="Reenvio BlockADS AdguardDNS " \
dst-port=53 protocol=udp to-addresses=176.103.130.130 to-ports=53

A través de Winbox:









Resultado:

si ingreso a esta dirección : https://ilo134ulih.com/  o https://click.infocenter.support



domingo, 19 de noviembre de 2017

Mikrotik: Detener Google Drive en Layer 7 Protocols.

Mikrotik Detener Google Drive en Layer 7 Protocols.

Detener Google Drive para que no afecte la velocidad de Internet,
Google Drive consume toda la velocidad de nuestra conexión a Internet, pero podemos ajustarlo. Aquí solo un ejemplo. se puede hacer mas variantes.

1.- En Ip Firewall Layer 7 Protocols: Agregar la siguiente regla por New Terminal:

/ip firewall layer7-protocol
add name=block-GDrive regexp=".(api|googleusercontent).com"


2.- En Ip Firewall Rule: 
A continuación en New Terminal agregar las reglas de filtro, como se muestra:

/ip firewall filter
add action=drop chain=forward comment=Block-Up-Down-GDrive \
    layer7-protocol=block-GDrive