Mostrar Mensajes

Esta sección te permite ver todos los mensajes hechos por este usuario, recuerda que solo puedes ver los mensajes en áreas en donde tu tienes acceso.


Temas - luistec

Páginas: 1
1
Raptorcache 2 - Lan Centers


Este tema está creado para que puedan expresar los sucesos que ocurren en el entorno de Lan Centers junto a Raptorcache, ya que en ocasiones se tienen averías con algunos juegos, ya sea por caché corrupto o descontinuado, y así poder dar solución ya sea temporal o para que se pueda corregir en el desarrollo del sistema.

2
GNU/Linux / Cómo cambiar el password del usuario root de MySQL
« : Diciembre 17, 2015, 10:36:13 am »
Cómo cambiar el password del usuario root de MySQL

En ocasiones no recordamos la contraseña "root" que le pusimos a la base de datos Mysql durante su instalación, no hay problema, solo sigue estás sencillas instrucciones y podrás cambiar a una nueva.

Si en la instalación de Raptorcache en la parte de configuración del password de la base de datos no se puso = raptor, el sistema no funcionará.
Al hacer un test de conexión con la  base de datos por el navegador web les saldrá el siguiente error (en caso de tener un IP distinto del servidor Raptor solo reemplazarlo en la dirección del navegador web)


Para cambiar la contraseña "root" de la base de datos ingresaremos los siguientes comandos por terminal

Código:
  1. service mysql stop
  2. mv /etc/mysql/my.cnf /etc/mysql/my.cnf_backup
Código:
  1. mysqld_safe --skip-grant-tables &
Código:
  1. mysql -u root
Código:
  1. use mysql
Código:
  1. UPDATE user SET password=PASSWORD('raptor') WHERE user='root';
Código:
  1. exit
Código:
  1. mv /etc/mysql/my.cnf_backup /etc/mysql/my.cnf
  2. service mysql restart

El orden de este procedimiento lo podemos ver en la siguiente imagen



Verificamos la conexión con la base de datos por el navegador web



y como podemos ver la conexión es correcta.

3
GNU/Linux / Load Average
« : Diciembre 12, 2015, 10:34:17 am »
Load Average
El load average sería algo así como la carga promedio del equipo, no especificamente la carga del CPU como algunos piensan. El load average es la cantidad de procesos que están encolados, calculados sobre un cierto período de tiempo, por ejemplo

0.29 0.32 0.24

0.29 es en un minuto
0.32 en 5 min
0.24 en 15 min.

Cuando se produce una sobrecarga al L.A es un proceso que se bloqueó esperando algo para continuar ejecutandose, por lo general son procesos a:

Al CPU
El acceso de Lectura/Escritura de un disco
Acceso a Lectura/Escritura de una red

Entonces un proceso bloqueado sería, por ejemplo, un proceso esperando que la cpu pueda procesarlo, u otro que está esperando a que el disco lo deje escribir. Quizás hasta es uno que necesita leer algo de internet pero la red está ocupada.

Entonces un load average elevado nos indica que la CPU no se abasto al uso que le damos, o un disco, una partición o una placa de red, lo que produce que no trabaje adecuadamente el equipo en ese momento.
Usaremos el comando top para ver con más detalle algunos valores para poder ver que puede estar produciendo el L.A. elevado
Código:
  1. top


Al ejecutar el comando podemos visualizar el load average, en la segunda fila se especifican las tareas corriendose en la máquina, incluyendo las activas(running), las dormidas(sleeping), las detenidas(stopped) y las zombies y en la tercera fila, acá nos puede dar indicadores para solucionar el problema que nos muestra los porcentajes de la(s) CPU(s) usada y en qué está siendo usada:

us: procesos iniciados por algún usuario.
sy: procesos iniciados por el sistema.
ni: procesos iniciados con prioridad especial (nice).
id: porcentaje sin usar (idle).
wa: procesos esperando para continuar (waiting).

Si el porcentaje de usuarios (us) o de sistema (sy) está constantemente en 90 y en momentos llegando al 100%, significa que el CPU que tienes está trabajando al máximo para el uso que le estás dando a la máquina.

Si el porcentaje alto es el de espera (wa), significa que el CPU está tardando mucho tiempo esperando que se ejecuten las operaciones de E/S (Entrada/Salida, o  lectura/escritura) en inglés I/O(input/output), ésto significa que puedes tener un disco duro con errores, una tarjeta de red que no esté funcionando bien, esto también puede ser debido a que alguna aplicación no tienen acceso a la información que necesitan a la velocidad que necesita.

Para saber qué aplicaciones están causando carga, ejecutamos el siguiente comando que lista los procesos corriendo en el sistema:
Código:
  1. ps aux



Nos fijamos en la columna "STAT", que indica el estado del proceso

 R - Running (ejecutandose)
 S - Sleeping (en pausa)
 D - Waiting for something (en espera)

Y buscamos el proceso que esté en D, y empezamos a ver por ahí que aplicación nos está generando el problema o a que aplicación el hardware le es insufuciente.

Esto es un pequeño aporte, si tienen más conocimientos sobre el tema y tienen algo que agregar o corregir bienvenido.

Saludos

4
Forzar a Speedtest para que pase por Raptor
Para hacer este proceso tenemos que bloquear el puerto que utiliza speedtestest  por defecto, con lo que le obligaríamos a usar el puerto 80.
Speedtest usa el puerto 8080 para el contenido de los test de velocidad, pero bloquear todo el puerto 8080 no sería muy conveniente porque hay otras aplicaciones que también usan ese puerto lo que crearía conflicto. Revisando Speedtest también se puede ver que usa el puerto 843 para conectar a TCP lo que usariamos para capturar sus IPs generar un address-list y posteriormente bloquearlos junto con el puerto 8080, lo que sería mas factible. Para eso usamos las siguientess reglas.

Código:
  1. /ip firewall mangle
  2. add action=add-dst-to-address-list address-list=speedtest-843 address-list-timeout=10m chain=prerouting comment="Add speedtest-843 list" disabled=no dst-port=843 in-interface=LAN protocol=tcp
  3. /ip firewall filter
  4. add action=drop chain=forward comment="Drop Speedtest-8080" disabled=no dst-address-list=speedtest-843 dst-port=8080 in-interface=LAN protocol=tcp

También adicionen las siguientes direcciones en el archivo "/etc/raptor/host.lst"
Código: [Seleccionar]
.*speedtest.*
.*medidor.*

Luego reiniciar
Código: [Seleccionar]
service raptor restart && service squid3 restart
Nota. revisar el orden de sus reglas, que no haya reglas superiores y estén bloqueando su tráfico.


5
Bloquear publicidad Youtube - RaptorCache 2
En las antiguas versiones de raptor para bloquear la publicidad de youtube se tenia que hacer un plugin, en la versión 2 de raptorcache trae una directiva para redireccionar contenido con la que podemos bloquear la publicidad de youtube, con tan solo redireccionar el contenido.
Para hacer esto solo necesitamos agregar las siguientes directivas en el "/etc/raptor/raptor.conf"
Código: [Seleccionar]
REDIRECT_1 .*\.(googlesyndication|doubleclick|googleadservices)\.(com|net).*
REDIRECT_1_TO www.i.imgur.com/2djunqK.png

y agregamos en el raptor list sus direcciones para asegurar que pasen por Raptor
Código: [Seleccionar]
http.*\.doubleclick\.net.*
http.*\.googleadservices\.com.*
http.*\.googlesyndication\.com.*

Con estas directivas los contenidos de publicidad de googlesyndication,doubleclick y googleadservices se redireccionarán al contenido www.i.imgur.com/2djunqK.png, que es una imagen pequeña y transparente, lo que hará es no mostrar ese contenido.
Se pueden agregar mas direcciones ya que funciona como un regex, también tener en cuenta que hay publicidad que sale directamente de HTTPS asi que el bloqueo no será 100% eficás, pero si funcional.

Saludos.

6
RaptorCache en General / Youtube HTTP
« : Enero 14, 2015, 10:00:58 pm »
En pruebas de un mod para que Youtube siga saliendo por Http, todo esto con el gran apoyo de joemg




Saludos.

7
Hace tiempo ya habia posteado joemg el codigo de google, si quieren que haga cache a sus demas servicios solo es cuestion de modificar el codigo.
Por ejemplo.
Código:
  1. #include <iostream>
  2. #include <cstring>
  3. #include <vector>
  4. #include "../utils.cpp"
  5.  
  6. // use this line to compile
  7. // g++ -I. -fPIC -shared -g -o google.com.so google.com.cpp
  8. // regex
  9. // http.*\.google\.com.*(\.kmz|\.exe|\.msi|\.msp|\.cab)
  10.  
  11. string get_filename(string url) {
  12.       vector<string> resultado;
  13.                 if (url.find("?") != string::npos) {
  14.          stringexplode(url, "?", &resultado);
  15.          stringexplode(resultado.at(resultado.size()-2), "/", &resultado);
  16.          return resultado.at(resultado.size()-1);          
  17.       } else {
  18.          stringexplode(url, "/", &resultado);
  19.          return resultado.at(resultado.size()-1);
  20.       }
  21. }
  22.  
  23. extern "C" resposta getmatch(const string url) {
  24.     resposta r;  
  25.  
  26.   if ( (url.find(".google.com/") != string::npos) and (url.find(".kmz") != string::npos)
  27.      ) {
  28.       r.file = get_filename(url);
  29.       if (!r.file.empty()) {
  30.          r.match = true;
  31.          r.domain = "google_earth";      
  32.       } else {
  33.          r.match = false;
  34.       }
  35.    }
  36.    
  37.    else if ( (url.find(".google.com/") != string::npos) and ((url.find(".exe") != string::npos) or (url.find(".msi") != string::npos) or
  38.                                                              (url.find(".cab") != string::npos) or (url.find(".msp") != string::npos))
  39.    ) {      
  40.        r.file = get_filename(url);
  41.       if (!r.file.empty()) {
  42.          r.match = true;
  43.          r.domain = "google_updates";
  44.       } else {
  45.          r.match = false;
  46.       }
  47.    }
  48.    
  49.    else if ( (url.find(".google.com/") != string::npos) and (url.find("chrome") != string::npos)
  50.      ) {
  51.       r.file = get_filename(url);
  52.       if (!r.file.empty()) {
  53.          r.match = true;
  54.          r.domain = "google_updates";      
  55.       } else {
  56.          r.match = false;
  57.       }
  58.    }
  59.    
  60.    else
  61.    {
  62.       r.match = false;
  63.    }
  64.    return r;
  65. }

Saludos.

8
Tal vez muchos ya habran visto este video, pero lo posteo para aquellos que no lo han visto todavia, en el video se expone informacion referente a los radioenlaces, ya que en ocasiones tenemos problemas en los enlaces y se nos escapa algo.



Saludos.


9
Instalación Servidor de Videos Clipbucket


Esta instalación preferentemente se debe de realizar en un servidor independiente para este trabajo.

Para la instalación procedemos a instalar las dependencias
Código: [Seleccionar]
echo "#http://www.deb-multimedia.org/debian-m
#deb ftp://linorg.usp.br/debian-marillat/ stable main
deb http://ftp.br.debian.org/debian-multimedia stable main" >> /etc/apt/sources.list

Al ingresar los siguientes comandos ingresarlos linea por linea para evitar fallos.
Código: [Seleccionar]
apt-get update
apt-get -f upgrade
apt-get install apache2
apt-get install libapache2-mod-php5 lynx unzip make php5-dev php-pear apache2-prefork-dev php5-dev build-essential unzip zlib1g-dev checkinstall
apt-get install flvtool2 mencoder libogg-dev libvorbis-dev php5-curl curl php5-cli php5-gd
apt-get install mysql-server mysql-client php5-mysql
apt-get install php5-cgi
apt-get -f upgrade
apt-get install ffmpeg php5-ffmpeg
wget http://www.joemg.host56.com/gpac/gpac-0.4.5.tar.gz
wget http://www.joemg.host56.com/gpac/gpac_extra_libs-0.4.5.tar.gz
tar -zxf gpac-0.4.5.tar.gz
tar -zxf gpac_extra_libs-0.4.5.tar.gz
cd gpac_extra_libs
cp -r * ../gpac/extra_lib
cd ../gpac
chmod +x configure
./configure --disable-opengl --use-js=no --use-ft=no --use-jpeg=no --use-png=no --use-faad=no --use-mad=no --use-xvid=no --use-ffmpeg=no --use-ogg=no --use-vorbis=no --use-theora=no --use-openjpeg=no
make lib
make apps
make install-lib
make install
cp bin/gcc/libgpac.so /usr/lib
ln -s /usr/bin/flvtool2  /usr/local/bin/flvtool2
ln -s /usr/bin/ffmpeg /usr/local/bin/ffmpeg

Luego procedemos a crear la base de datos

Código: [Seleccionar]
mysql -uroot -pTU_PASSWORD_MYSQL

mysql> create database clipbucket;

mysql> exit

Luego descargamos el Clipbucket
http://sourceforge.net/projects/clipbucket/
Lo descomprimimos y lo copiamos en la carpeta "/var/www/"

o tambien lo podemos hacer por terminal
Código: [Seleccionar]
cd /root
wget http://ufpr.dl.sourceforge.net/project/clipbucket/ClipBucket%20v2/clipbucket-2.6-r738-security-fixed.zip
unzip clipbucket-2.6-r738-security-fixed.zip
mv upload /var/www/
mv /var/www/upload /var/www/clipbucket

Luego le damos permisos a los archivos y reiniciamos el apache
Código: [Seleccionar]
cd /var/www/clipbucket/
chmod 777 cache
chmod 777 cache/comments
chmod 777 cache/userfeeds
chmod 777 files
chmod 777 files/conversion_queue
chmod 777 files/logs
chmod 777 files/mass_uploads
chmod 777 files/original
chmod 777 files/photos
chmod 777 files/temp
chmod 777 files/temp/install.me
chmod 777 files/thumbs
chmod 777 files/videos
chmod 777 images
chmod 777 images/avatars
chmod 777 images/backgrounds
chmod 777 images/category_thumbs
chmod 777 images/collection_thumbs
chmod 777 images/groups_thumbs
chmod 777 includes
chmod 777 includes/langs/en.lang
a2enmod rewrite
/etc/init.d/apache2 restart

Luego procedemos a instalar el clipbucket, para eso ingresamos por el navegador web con la siguiente dirección
http://IP_DEL_SERVIDOR/clipbucket/

Luego procedemos a seguir los pasos como se muestran en las siguientes imagenes
1


2


3


4


5


6


7


8


9


No olvidar borrar o cambiar de nombre la carpeta "/var/www/clipbucket/cb_install"

También es necesario poner las siguientes reglas en el crontab
Código: [Seleccionar]
# Clipbucket
*/1 * * * * root php -q /var/www/clipbucket/actions/video_convert.php
*/1 * * * * root php -q /var/www/clipbucket/actions/verify_converted_videos.php
0 0,12,13 * * * root php -q /var/www/clipbucket/actions/update_cb_stats.php

Luego ingresamos a la página del servidor de video
http://IP_DEL_SERVIDOR/clipbucket/

Para ingresar al panel de administración
http://IP_DEL_SERVIDOR/clipbucket/admin_area/

En el panel de administración fijarse que los modulos esten activos, esto en la opcion "Tool Box - Servers Module Info"


En caso uno este inactivo verificar la configuracion en "Website Configurations - Uploading and Conversion Settings"


Para subir archivos desde el panel de administracion lo pueden hacer subiendo los video a la carpeta "/var/www/clipbucket/files/mass_uploads/" y luego desde el panel ir a la opción "Videos - Upload videos"


En caso tengan problemas al subir los videos y les muestre este mensaje en los videos


Cambiar el archivo "/var/www/clipbucket/includes/classes/conversion/ffmpeg.class.php" por el que esta adjunto, también revisar la configuración de subida y conversión en "Website Configurations - Uploading and Conversion Settings"


Luego de hacer el cambio y al volver a subir el video debe de reproducir correctamente


Hay muchas configuraciones que se le puede hacer a este servidor, también se puede cambiar el tema, para mejorar el rendimiento se puede modificar algunos valores de "/etc/php5/apache2/php.ini" ahí adjunto una configuración, espero que les sea de ayuda.

PD. Para la instalación se utilizo debian 6.0.7 y gracias al apoyo de joemg ya que en un inicio no me funcionaba por el archivo ffmpeg.class.php.

[archivo adjunto borrado por el administrador]

10
Plugins de Antivirus / Plugin Avast
« : Marzo 01, 2013, 09:14:25 pm »
Código:
  1. #include <iostream>
  2. #include <cstring>
  3. #include <string>
  4. #include <vector>
  5. #include "../utils.cpp"
  6.  
  7. using namespace std;
  8.  
  9. // use this line to compile
  10. // g++ -I. -fPIC -shared -g -o avast.com.so avast.com.cpp
  11. // Regex
  12. // http.*\.avast\.com.*(\.def|\.vpu|\.vpaa|\.stamp|\.vpx)
  13.  
  14. bool in_array(const string &needle, const vector< string > &haystack) {
  15.  
  16.         int max = haystack.size();
  17.         if (max == 0) return false;
  18.         for (int iii = 0; iii < max; iii++) {
  19.                    if (regex_match(haystack[iii], needle) != "") {
  20.                            return true;
  21.                 }
  22.         }
  23.         return false;
  24. }
  25.  
  26. string get_filename(string url) {
  27.                 vector<string> resultado;
  28.                 if (url.find("?") != string::npos) {
  29.                         stringexplode(url, "?", &resultado);
  30.                         stringexplode(resultado.at(resultado.size()-2), "/", &resultado);
  31.                         return resultado.at(resultado.size()-1);          
  32.                 } else {
  33.                         stringexplode(url, "/", &resultado);
  34.                         return resultado.at(resultado.size()-1);
  35.                 }
  36. }
  37.  
  38. extern "C" resposta getmatch(const string url) {
  39.         resposta r;
  40.                
  41.         vector<string> black_list;
  42.         black_list.push_back ("servers.def.vpx");
  43.         black_list.push_back ("prod-ais.vpx");
  44.                
  45.         if ((url.find(".avast.com/") != string::npos) and (in_array(url, black_list) == false)
  46.                 ) {
  47.                 r.file = get_filename(url);
  48.                 if (!r.file.empty()) {
  49.                         r.match = true;
  50.                         r.domain = "avast";
  51.                 } else {
  52.                         r.match = false;
  53.                 }
  54.         } else {
  55.                 r.match = false;
  56.         }
  57.         return r;
  58. }

11
Plugins para ThunderCache 3.1.2 / Plugin blogspot
« : Febrero 19, 2013, 01:29:43 pm »
Código:
  1. #include <iostream>
  2. #include <cstring>
  3. #include <vector>
  4. #include "../utils.cpp"
  5. // Regex
  6. // http.*\.blogspot\.com.*(\.mp4|\.flv|\.swf|\.jpg)
  7. // use this line to compile
  8. // g++ -I. -fPIC -shared -g -o blogspot.com.so blogspot.com.cpp
  9.  
  10. string get_filename(string url) {
  11.                 vector<string> resultado;
  12.                 if (url.find("?") != string::npos) {
  13.                         stringexplode(url, "?", &resultado);
  14.                         stringexplode(resultado.at(resultado.size()-2), "/", &resultado);
  15.                         return resultado.at(resultado.size()-4) + "_" + resultado.at(resultado.size()-3) + "_" + resultado.at(resultado.size()-2) + "_" +resultado.at(resultado.size()-1);          
  16.                 } else {
  17.                         stringexplode(url, "/", &resultado);
  18.                         return resultado.at(resultado.size()-4) + "_" + resultado.at(resultado.size()-3) + "_" + resultado.at(resultado.size()-2) + "_" +resultado.at(resultado.size()-1); ;
  19.                 }
  20. }
  21.  
  22. extern "C" resposta getmatch(const string url) {
  23.     resposta r;  
  24.  
  25.    if ( (url.find("bp.blogspot.com") != string::npos)
  26.    ) {
  27.      
  28.        r.file = get_filename(url);
  29.       if (!r.file.empty()) {
  30.          r.match = true;
  31.          r.domain = "blogspot";
  32.       } else {
  33.          r.match = false;
  34.       }
  35.    } else {
  36.       r.match = false;
  37.    }
  38.    return r;
  39. }
  40.  

Al actualizar el plugin no olvidar borrar el antiguo cache y base datos de ese dominio.

12
Plugins para ThunderCache 3.1.2 / Plugin Mozilla
« : Noviembre 25, 2012, 01:03:14 am »
Si bien es cierto que los programas de mozilla se descargan de varios servidores distintos ahora e estado viendo que las descargas y actualizaciónes lo hace de un solo servidor principal por eso publico este código de fuente.

Código: [Seleccionar]
#include <iostream>
#include <cstring>
#include <vector>
#include "../utils.cpp"

// use this line to compile
// g++ -I. -fPIC -shared -g -o mozilla.net.so mozilla.net.cpp  
// Regex
// http.*\.mozilla\.net.*(\.exe|\.mar)

string get_filename(string url) {
vector<string> resultado;
if (url.find("?") != string::npos) {
stringexplode(url, "?", &resultado);
stringexplode(resultado.at(resultado.size()-2), "/", &resultado);
return resultado.at(resultado.size()-1);          
} else {
stringexplode(url, "/", &resultado);
return resultado.at(resultado.size()-1);
}
}

extern "C" resposta getmatch(const string url) {
    resposta r;


if ( (url.find(".mozilla.net/") != string::npos)  
) {

   r.file = get_filename(url);
if (!r.file.empty()) {
r.match = true;
r.domain = "mozilla";
} else {
r.match = false;
}
} else {
r.match = false;
}
return r;
}

Si las descargas se hacen de otros servidores publicar las url.

Saludos.

13
Plugins de música & videos / Plugin tu.tv
« : Noviembre 24, 2012, 09:54:59 pm »
Código de fuente del plugin para la página de videos http://tu.tv

Código: [Seleccionar]
#include <iostream>
#include <cstring>
#include <vector>
#include "../utils.cpp"

// use this line to compile
// g++ -I. -fPIC -shared -g -o hvm200.tu.tv.so hvm200.tu.tv.cpp
// Regex
// http.*\.tu\.tv.*(\.flv|\.mp4)

string get_filename(string url) {
vector<string> resultado;
if (url.find("?") != string::npos) {
stringexplode(url, "?", &resultado);
stringexplode(resultado.at(resultado.size()-2), "/", &resultado);
return resultado.at(resultado.size()-1);           
} else {
stringexplode(url, "/", &resultado);
return resultado.at(resultado.size()-1);
}
}

extern "C" resposta getmatch(const string url) {
    resposta r;

if ( (url.find("hvm200.tu.tv/") != string::npos) and
    ( (url.find(".flv") != string::npos) or (url.find(".mp4") == string::npos) )
) {

    r.file = get_filename(url);
if (!r.file.empty()) {
r.match = true;
r.domain = "tutv";
} else {
r.match = false;
}
} else {
r.match = false;
}
return r;
}

Código: [Seleccionar]
#include <iostream>
#include <cstring>
#include <vector>
#include "../utils.cpp"

// use this line to compile
// g++ -I. -fPIC -shared -g -o hv2m90.tu.tv.so hv2m90.tu.tv.cpp
// Regex
// http.*\.tu\.tv.*(\.flv|\.mp4)

string get_filename(string url) {
vector<string> resultado;
if (url.find("?") != string::npos) {
stringexplode(url, "?", &resultado);
stringexplode(resultado.at(resultado.size()-2), "/", &resultado);
return resultado.at(resultado.size()-1);           
} else {
stringexplode(url, "/", &resultado);
return resultado.at(resultado.size()-1);
}
}

extern "C" resposta getmatch(const string url) {
    resposta r;

if ( (url.find("hv2m90.tu.tv/") != string::npos) and
    ( (url.find(".flv") != string::npos) or (url.find(".mp4") == string::npos) )
) {

    r.file = get_filename(url);
if (!r.file.empty()) {
r.match = true;
r.domain = "tutv";
} else {
r.match = false;
}
} else {
r.match = false;
}
return r;
}

Si hay videos que no hagan caché publicar sus url.

Saludos.


Páginas: 1