Libere aún más potencia de su enrutador doméstico con el kit de modificación DD-WRT

Sep 15, 2025
Hardware
CONTENIDO NO CUBIERTO


Ya le mostramos cómo modificar el enrutador de su hogar con el firmware alternativo DD-WRT para obtener un rendimiento muy mejorado, y hoy le mostraremos cómo llevarlo aún más lejos con el kit de modificación DD-WRT.

Si aún no lo ha hecho, asegúrese de consultar los dos artículos anteriores de la serie:

Suponiendo que esté familiarizado con esos temas, siga leyendo. Tenga en cuenta que esta guía es un poco más técnica, y los principiantes deben tener cuidado al modificar su enrutador.

Visión de conjunto

Esta guía le dará un resumen paso a paso de cómo crear su propio firmware DD-WRT con modificaciones y adiciones usando el " kit de modificación de firmware “.

El kit de modificación de firmware permite realizar modificaciones en el firmware sin compilarlo desde la fuente. Hacer cambios de esta manera, con la ayuda de los scripts proporcionados, se convierte en una simple cuestión de descargar, reemplazar y eliminar algunos archivos.

La razón más predominante para utilizar este método es que últimamente el apoyo de DD-WRT a la Openwrt Los paquetes IPKG se han desplazado hacia enrutadores que tienen discos duros (a través de USB), lo que hace que el mod-kit sea la única forma que funcione de manera consistente para instalar los paquetes IPKG con éxito para los casos en los que un disco duro no está disponible. Además, este método tiene la ventaja adicional de liberarlo de la dependencia de JFFS para la instalación de paquetes, que para enrutadores con solo 4 MB de flash es un problema real.

Imagen de publicenergy

Metas

Si bien las instrucciones para este procedimiento, se detallan en Wiki de DD-WRT y en el sitio del desarrollador , nuestro objetivo es hacer de esta guía un procedimiento de copiar y pegar que cualquiera pueda usar para lograr los siguientes objetivos:

  • Instale el paquete knockd y sus dependencias.
  • Instale el paquete ssmtp con configuraciones generadas basadas en NVRAM.
    • Opcionalmente con soporte para TLS smtp (también conocido como soporte de Gmail).

Una vez que haya seguido este procedimiento, debería ser relativamente sencillo adaptarlo para la instalación de otros paquetes.

Advertencia : Sea ligero ... tenga en cuenta que el uso incorrecto del kit de modificación puede dejarlo con un enrutador que necesita de-brick-ing (como a su vez en un ladrillo inútil ). Sin embargo, si eres un verdadero geek, probablemente te suscribas a la ideología de que el que puede destruir una cosa, controla una cosa y solo los verdaderos geeks hacen eso

Prerrequisitos

  1. El uso de este procedimiento puede ladrillo su enrutador, como en hacer su enrutador inutilizable, No asumimos ninguna responsabilidad por los daños que puedan ser causados ​​directamente o de otra manera debido al uso de los procedimientos a continuación.
  2. Este procedimiento se realizó en sistemas basados ​​en Debian (Lenny, Squeeze y Mint) y las instrucciones a continuación asumen que también está usando uno.
  3. Este procedimiento solo se recomienda para personas que tienen experiencia en actualizar su enrutador con DD-WRT, con todos los requisitos previos, advertencias y limitaciones que se aplican a la configuración de su hardware. un buen lugar para comenzar sería nuestro Convierta su enrutador doméstico en un enrutador súper potente con DD-WRT guía.
  4. Su enrutador debe admitir al menos la versión "mini" de DD-WRT.
  5. Este procedimiento fue creado y probado en enrutadores Linksys WRT54GS / L, si usa enrutadores de otros proveedores, su millaje puede ser muy alto.

Preparar

Instalación de paquetes requeridos

El kit de modificación de firmware tiene algunas dependencias para que se compile y funcione. Para instalarlos / actualizarlos todos a la vez, emita este comando en una terminal:

sudo aptitude install gcc g ++ binutils patch bzip2 flex bison make gettext unzip zlib1g-dev libc6 subversion

Descarga el mod-kit

Cree una subcarpeta y obtenga el kit del SVN oficial:

mkdir firmware_mod_kit
cd firmware_mod_kit
svn checkout http://firmware-mod-kit.googlecode.com/svn/trunk/ firmware-mod-kit-read-only
cd firmware-mod-kit-solo lectura / troncal /

Descarga un firmware para trabajar

Lo primero que debe considerar es qué versión desea utilizar.
Una regla general es: en caso de duda, utilice "mini". Esto se debe a que, siempre que su enrutador admita al menos la versión "mini", su uso le brinda todas las funciones más utilizadas sin ningún tipo de software de relleno. dejando así espacio para los procedimientos e incluso algo de espacio JFFS para otros usos en la mayoría de los casos.

Una vez que haya decidido una versión, se recomienda utilizar la última revisión del firmware disponible, ya que tienden a tener muchas correcciones de errores en comparación con sus contrapartes "estables".
En el momento de escribir este artículo, la última era “03-17-11-r16454” y esta revisión se utiliza en los comandos que siguen.

wget http://www.dd-wrt.com/dd-wrtv2/downloads/others/eko/BrainSlayer-V24-preSP2/2011/03-17-11-r16454/broadcom/dd-wrt.v24_mini_generic.bin

Para facilitar el seguimiento de la versión que estamos usando, cambie el nombre del archivo descargado para representar su número de versión:

mv dd-wrt.v24_mini_generic.bin dd-wrt.v24_mini_generic-03-17-11-r16454.bin

Por supuesto, esto es opcional, pero los comandos siguientes asumen que ha cambiado el nombre del archivo.

Extrayendo el firmware

Para poder cambiar archivos dentro del firmware, necesitamos extraer su contenido en un directorio temporal.
La sintaxis de este comando es:
./extract_firmware.sh FIRMWARE_IMAGE WORKING_DIRECTORY
En nuestro caso, esto se traduciría en:

./extract_firmware.sh dd-wrt.v24_mini_generic-03-17-11-r16454.bin ./working_dir_mini1

Nota: La primera vez que ejecuta este comando, crea las herramientas del kit de modificación en su sistema. esto sucede solo una vez y puede llevar un poco de tiempo ... así que tenga paciencia ...

Instalación de paquetes

Ahora que se extrajo el firmware, podemos instalarle los paquetes.
En general, el procedimiento consiste en descargar el paquete y sus dependencias en forma de archivo ipk del repositorio openWRT . Una vez descargados, instálelos en el firmware extraído utilizando el script proporcionado.

El paquete golpeado

Las instrucciones detalladas sobre cómo configurar y usar Knockd se detallarán en un artículo futuro, por lo que puede optar por omitir este paso por ahora o hacerlo como preparación para el futuro, ya que Knockd no ocupa mucho espacio de todos modos.

Knockd es un demonio que escucha los eventos de comunicación en la capa de enlace en busca de secuencias y luego actúa sobre ellos.
Lo que esto significa es que puede hacer que el dispositivo que ejecuta el demonio ni siquiera "escuche" en los puertos (un escaneo de puertos no los verá como abiertos) y aún así hacer que haga algo que necesita, desde un solo comando, todos los Dirigirte a un guión completo. Usando esta técnica Puede activar el servidor para que realice cualquier tipo de operación que necesite de forma remota (a través de Internet) sin exponer su red doméstica.

Knockd tiene solo una dependencia listada, así que descargue el paquete y su dependencia emitiendo:

wget http://downloads.openwrt.org/backports/rc5/knockd_0.5-1_mipsel.ipk
wget http://downloads.openwrt.org/whiterussian/packages/libpcap_0.9.4-1_mipsel.ipk

Instale el "knock daemon" (knockd) ipk en el firmware:

./ipkg_install.sh knockd_0.5-1_mipsel.ipk ./working_dir_mini1/

Instale la "captura de paquetes" (libpcap) ipk en el firmware:

./ipkg_install.sh libpcap_0.9.4-1_mipsel.ipk ./working_dir_mini1/

Como "knockd" puede invocarse con un archivo de configuración alternativo (cómo se explicará en un artículo futuro), no es necesario realizar ninguna otra operación y puede pasar a la sección de creación de firmware, si es todo lo que desea instalar.

El paquete SSMTP

El paquete SSMTP permite que su enrutador envíe mensajes de correo electrónico como mostramos en nuestro Cómo configurar alertas de correo electrónico en Linux usando Gmail o SMTP para servidores. En ese entonces le prometimos que le mostraremos cómo configurar esto para DD-WRT y ahora lo entregaremos.
Esto es principalmente útil si va a crear scripts en el enrutador y le gustaría recibir comentarios sobre su funcionamiento por correo electrónico.

La configuración de este paquete es un poco más compleja que en los sistemas Linux normales debido a la limitación impuesta por un sistema integrado, así que respire hondo ... ¿listo? .... vamonos… :)

Descarga el paquete:

wget http://downloads.openwrt.org/backports/rc5/ssmtp_2.61-1_mipsel.ipk

Instale el ipk "ssmtp" en el firmware:

./ipkg_install.sh ssmtp_2.61-1_mipsel.ipk ./working_dir_mini1/

Soporte TLS (opcional)
SSMTP no enumera ningún otro paquete como sus dependencias, sin embargo, si desea poder usar una puerta de enlace smtp que requiera autenticación TLS (es decir, Gmail ), también debe instalar el paquete openSSL.
Nota : Hay un ENORME retirarse para hacer esto en forma de espacio considerablemente reducido en el enrutador para JFFS más adelante. Es decir, el paquete openSSL ocupa alrededor de 500K de espacio de su total de 4MB (para un enrutador normal que no sea compatible con "mega"), combinado con la sobrecarga de JFFS y descubrirá que le quedan, pero muy pocos, bloques de espacio JFFS libre (alrededor de 60 KB en WRT54GL).

Como todavía hay servidores smtp que no requieren TLS (generalmente el de su ISP), le sugiero que se tome un minuto para pensar si realmente necesita usar la puerta de enlace que requiere TLS.

Si ha decidido habilitar la compatibilidad con TLS a pesar de su desventaja, descargue el paquete openSSL:

wget http://downloads.openwrt.org/whiterussian/packages/libopenssl_0.9.8d-1_mipsel.ipk

Instale el ipk "openSSL" (libopenssl) en el firmware:

./ipkg_install.sh libopenssl_0.9.8d-1_mipsel.ipk ./working_dir_mini1/

Configuraciones
Existe una limitación con el paquete SSMTP, que no es posible invocarlo con un archivo de configuración alternativo.
Debido a que el firmware es de solo lectura cuando está en el enrutador, eso significa que, de fábrica, solo podemos codificar la configuración en el firmware.
Sin embargo, ¿qué sucede si no queremos seguir todos los pasos de modificación del firmware, solo para cambiar la configuración del correo electrónico? (por ejemplo, un cambio de contraseña).

Con ese fin, tanto Jeremy (el creador del kit de modificación de firmware) como yo llegamos a la conclusión (independientemente si puedo agregar humildemente) que la única forma sensata de hacer esto sería:

  1. Haga que la ubicación de los archivos de configuración a la que apunta el paquete ssmtp a la ubicación de solo lectura en etc, apunte al directorio tmp en el que se puede escribir en tiempo de ejecución.
  2. Cree un script que genere dinámicamente las configuraciones basadas en las variables NVRAM al inicio.

Para lograrlo, se requieren algunos pasos adicionales ...

Enlace simbólico al directorio de configuración ssmtp
Como se explicó anteriormente, necesitamos hacer / etc / ssmtp ubicación en el enrutador, apunte al / tmp directorio ya que es el único lugar de escritura que tenemos en el enrutador en tiempo de ejecución. Para hacer esto, elimine el directorio ssmtp que fue creado por el instalador de ipk:

rm -rf ./working_dir_mini1/rootfs/etc/ssmtp/

Cree un nuevo enlace simbólico que apunte a / etc / ssmtp en el sistema de archivos raíz del enrutador, para apuntar a / tmp / etc / ssmtp como una ruta absoluta:

ln -s / tmp / etc / ssmtp / ./working_dir_mini1/rootfs/etc/ssmtp

Nota : Aunque esto parece ilógico en este momento, porque estamos apuntando el directorio de configuración del paquete a una ubicación fuera del directorio de trabajo del kit de modificación de firmware, le aseguro que esto se ve totalmente bien desde el punto de vista del enrutador en tiempo de ejecución.

Un script de inicio
Si bien es completamente posible no inyectar este script en el firmware y ejecutarlo como un script de inicio más adelante, creo que es apropiado ponerlo aquí, aunque solo sea como un ejemplo para uso futuro.
Originalmente, Jeremy creó el guión adaptado a la solicitud de alguien, luego lo ajusté y lo aumenté para que fuera más compatible con DD-WRT y los informes de syslog.

Cree el nuevo script init (inicio):

vi ./working_dir_mini1/rootfs/etc/init.d/S80ssmtp

Nota: Puede usar otro editor, yo uso vi porque es consistente con lo que está disponible en el enrutador ...
Haga de este su contenido:

#! / bin / sh
#
# title: ssmtp_nvram.sh
# autor: Jeremy Collake y Aviad Raviv
# sitio: http://www.bitsum.com, http://howtogeek.com
#
# script para construir un archivo de configuración desde nvram vars.
# funcionará para cualquier archivo de configuración que use
# var = pares de tipos de valor.
#
# usa prefijos para variables nvram.
#
# и.е.
# ssmtp hostname = algo
# se traduce en ssmtp.conf
# nombre de host = algo
#
logger_func ()
{
registrador -s -p local0.notice -t SSMTP_init $ 1
}

logger_func "########### Comenzó la ejecución de inicio SSMTP ###########"
logger_func "Creando el directorio etc en / tmp"
[ ! -d /etc/ssmtp/ ] && mkdir -p / tmp / etc / ssmtp /
CONFIG_FILE = / etc / ssmtp / ssmtp.conf
NVRAM_PREFIX = ssmtp_
PACKAGE_NAME = ʻecho $ NVRAM_PREFIX | sed 's / _ / /' `

logger_func "Generando $ CONFIG_FILE para el paquete $ PACKAGE_NAME"
#echo $ 0: generando $ CONFIG_FILE para el paquete $ PACKAGE_NAME
echo "#! / bin / sh"> $ CONFIG_FILE
echo "#" >> $ CONFIG_FILE
echo "# generado automáticamente basado en nvram por $ 0" >> $ CONFIG_FILE
echo "#" >> $ CONFIG_FILE

si [ -z "`nvram show | grep ssmtp`" ]
luego
logger_func "Parece que no ha configurado las variables NVRAM necesarias para generar el archivo conf"
logger_func "** Considere ** usar estos comandos en su secuencia de comandos de inicio:"
logger_func "nvram set [email protected]"
logger_func "nvram set ssmtp_mailhub = smtp.gmail.com: 587"
logger_func "nvram set [email protected]"
logger_func "nvram set ssmtp_UseSTARTTLS = YES"
logger_func "nvram set ssmtp_AuthUser = username"
logger_func "nvram set ssmtp_AuthPass = contraseña"
logger_func "nvram set ssmtp_FromLineOverride = YES"
logger_func "crea las variables NVRAM y vuelve a ejecutar el script de inicio o reinicia para que la configuración surta efecto".
salir 0
ser

###########################################################
#
# bucle principal
#
SED_COMMAND = "s / $ NVRAM_PREFIX / /"
CONFIG_VARS = `nvram show | grep $ NVRAM_PREFIX | sed "$ SED_COMMAND" `
para i en $ CONFIG_VARS; hacer
echo $ i >> $ CONFIG_FILE
hecho

###########################################################
#
# prueba de cordura
#
si [ ! -f "$CONFIG_FILE" ]; luego
# echo "$ 0: ERROR - no se pudo crear $ CONFIG_FILE. ¿Quizás no hay symink / etc / XXXX -> / tmp / etc / XXXX?"
logger_func "ERROR - no se pudo crear $ CONFIG_FILE. ¿Quizás no hay symink / etc / XXXX -> / tmp / etc / XXXX?"
ser
logger_func "########### Finalizó la ejecución de inicio SSMTP ###########"

Hazlo ejecutable:

chmod + x ./working_dir_mini1/rootfs/etc/init.d/S80ssmtp

Tome nota de las variables de espera de NVRAM en el script, es nuestra responsabilidad darles algo con lo que trabajar después de haber instalado nuestro firmware modificado en el enrutador.

Construya el firmware modificado

Ahora que todo está en su lugar, es hora de volver a empaquetar el firmware modificado en un binario comprimido que podamos flashear en el enrutador.
La sintaxis del script "build.sh" es:
./build_firmware.sh OUTPUT_DIR WORKING_DIRECTORY

Para hacer esto usamos el script provisto, entonces emita:

./build_firmware.sh output_mini1 ./working_dir_mini1/

Una vez que se realiza la operación de "compilación", habrá varias imágenes de firmware esperando ser utilizadas en el directorio de "salida".

Ahora puede actualizar el archivo llamado "custom_image_00001-generic.bin" en su enrutador como normalmente utilizaría un firmware DD-WRT .

Nota : No olvide restaurar los "valores predeterminados de fábrica" ​​antes, durante y justo después de la actualización del firmware.

Pasos posteriores al flash

Debido a que hicimos que el paquete SSMTP buscara variables NVRAM para generar el archivo de configuración ssmtp, ahora necesitamos proporcionarle la información que falta.
Lo lograremos usando la función "Ejecutar comandos" de la GUI web.

Vaya a la GUI web -> "administración" -> "comandos" -> pegue en el cuadro de texto lo siguiente:

nvram set [email protected]
nvram set ssmtp_mailhub = smtp.gmail.com: 587
nvram set [email protected]
nvram set ssmtp_UseSTARTTLS = YES
nvram set ssmtp_AuthUser = your-gmail-user-name (sin @ gmail.com)
nvram set ssmtp_AuthPass = you-gmail-password
nvram set ssmtp_FromLineOverride = YES
nvram commit

Reemplace el texto después del signo igual (=), con su información real, y luego presione "Ejecutar comandos".
Nota : si usa un servidor smtp regular, sin TLS, el puerto a usar es 25 en lugar de 587.

Ahora que la información SSMTP está lista para su uso, deberá invocar el script de inicio. Así que puede reiniciar el enrutador o pegarlo en el cuadro de texto "comandos":

/etc/init.d/S80ssmtp

Luego presione "Ejecutar comandos" nuevamente.
La salida de este comando debería verse así:

Prueba que puedes enviar correo electrónico
Vuelva a pegar esto en el cuadro de texto "comandos" el siguiente comando con su dirección de correo electrónico:

echo "crisol de pruebas enviando correo electrónico 123 qwe" | ssmtp -vvv [email protected]

Luego presione "Ejecutar comandos" nuevamente.
Debido a que usamos la opción -vvv para verbosidad adicional, la salida de este comando debería verse así:

Si todo salió bien, debería recibir el correo electrónico de prueba en segundos.

Esperamos que pueda utilizar esta información para ampliar los límites de su enrutador doméstico aún más de lo que pensaba posible y ahora controla verdaderamente el enrutador de tu hogar y DD-WRT


Linux extiende la vida, Linux expande la conciencia ... Linux es vital para los viajes de paquetes

.entrada-contenido .entry-footer

How To Install Dd-wrt On A Linksys WRT54GL Router

How To Install DD-WRT On A Wireless Router - Techneek TV

DD-WRT Install (Supercharge) TP Link TL-WDR 4300 N750 Dual Band Router


Hardware - Artículos más populares

¿Vale la pena AppleCare +?

Hardware Feb 12, 2025

Cada vez que compra un iPhone (o un iPad, o una Mac, o incluso un nuevo HomePod), Apple le preguntará si desea agregar AppleCare + a su compra. Pero ¿vale la pena? ..


Qué hacer cuando falla su disco duro

Hardware Feb 6, 2025

Como cualquier pieza de hardware, los discos duros pueden fallar. Los discos duros mecánicos, en particular, tienen partes móviles que pueden (y eventualmente dejarán) de funcion..


¿Cuánto mejores son los enfriadores de CPU del mercado de accesorios que los enfriadores de stock de Intel?

Hardware Aug 11, 2025

Construir una PC para juegos es una propuesta costosa, incluso en el lado del "valor" de las cosas; estamos hablando de al menos $ 500 para una nueva máquina. Los penny-pinchers a ..


¿Qué es la velocidad de obturación?

Hardware Mar 28, 2025

En fotografía, la velocidad de obturación, también llamada tiempo de exposición, es el tiempo que el sensor digital (o la película en una cámara más antigua) está expuesto a..


Cómo evitar que su Nest Cam capture sonido

Hardware Feb 7, 2025

La Nest Cam puede capturar audio siempre que esté grabando un video para que pueda escuchar lo que está sucediendo. Sin embargo, si no necesita audio, puede desactivarlo para ahor..


Cómo cargar el iPhone 7 y escuchar música al mismo tiempo

Hardware Sep 20, 2025

CONTENIDO NO CUBIERTO Ha habido mucho ruido La eliminación de Apple del conector para auriculares en su última versión del iPhone. Eso significa que solo tiene u..


¿Cuándo se puede trasladar una licencia de Windows a una nueva PC?

Hardware Jul 3, 2025

¿Puede transferir su licencia de Windows entre PC? Depende, la respuesta no es tan simple. Microsoft hace que estas cosas sean confusas a propósito. Activación d..


Cómo utilizar Sonos como alarma o temporizador para dormir

Hardware May 11, 2025

CONTENIDO NO CUBIERTO Sonos es genial porque puede configurar y controlar los altavoces desde cualquier habitación de su vivienda. Si te gusta despertarte o quedarte dormido con ..


Categorías