使用dd wrt mod kit从家庭路由器释放更多能量

如果您还没有,请务必查看本系列的前两篇文章:...

使用dd wrt mod kit从家庭路由器释放更多能量 We’ve already shown you how to mod your home router with the DD-WRT alternative firmware for greatly improved performance, and today we’re going to show you how to take it even further with the DD-WRT Mod-Kit.

如果您还没有,请务必查看本系列的前两篇文章:

  • 使用DD-WRT将您的家庭路由器变成超级强大的路由器
  • 如何使用DD-WRT增强Wi-Fi网络信号并增加范围

假设你熟悉这些主题,继续阅读。请记住,这本指南是一个多一点技术,初学者应该小心时,修改他们的路由器。

概述

本指南将提供如何使用“固件修改工具包”创建您自己的DD-WRT固件(包括修改和添加的固件)的详细说明。

固件修改工具包使人们能够在不从源代码处编译固件的情况下对固件进行修改。在提供的脚本的帮助下,通过这种方式进行更改,只需下载、替换和删除一些文件。

使用这种方法的最主要原因是因为最近DD-WRT对Openwrt IPKG包的支持已经转向具有硬盘驱动器(通过USB)的路由器,这使得mod kit成为在HD不可用的情况下成功安装IPKG包的唯一一致的工作方式。此外,这种方法还有一个额外的优点,那就是免除了JFFS对包安装的依赖性,对于只有4MB闪存的路由器来说,这是一个真正的问题。

公共能源图片

目标

虽然DD-WRT的wiki和开发人员的网站上详细介绍了此过程的说明,但我们的目标是使此指南成为一个复制和粘贴过程,任何人都可以使用此过程来实现以下目标:

  • 安装knockd包及其依赖项。
  • Install the s**tp package with NVRAM based generated configurati***.
    • 可选支持TLS **tp(也称为Gmail支持)。

一旦您遵循了这个过程,它应该是相对简单的调整它为其他软件包安装。

Warning: Tread lightly… keep in mind that incorrect usage of the modification kit, can leave you with a router that needs de-brick-ing (as in turn it into a useless brick). However if you’re a true geek you probably subscribe to the ideology that, he who can destroy a thing, controls a thing, and only true geeks do that 使用dd wrt mod kit从家庭路由器释放更多能量

先决条件

  1. 使用此程序可能会损坏您的路由器,因为在使您的路由器无法使用时,我们对使用以下程序可能直接或以其他方式造成的任何损坏概不负责。
  2. 这个过程是在基于Debian的系统(Lenny、Squeeze和Mint)上执行的,下面的说明假设您也在使用一个。
  3. 此过程仅推荐给有使用DD-WRT刷新路由器经验的人,包括适用于其硬件设置的所有先决条件、注意事项和限制。一个好的开始将是我们把您的家庭路由器成为一个超级电源路由器与DD-WRT指南。
  4. 您的路由器必须至少支持DD-WRT的“迷你”版本。
  5. 此程序是在Linksys WRT54GS/L路由器上创建和测试的,如果您使用其他供应商的路由器,您的里程数可能会非常低。

设置

安装所需的程序包

固件修改工具包对它的编译和工作有一些依赖性。为了一次安装/更新它们,请在终端中发出以下命令:

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

下载mod kit

创建一个子文件夹,并从官方SVN获取工具包:

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-read-only/trunk/

下载要使用的固件

首先要考虑的是要使用哪个版本?经验法则是:当有疑问时使用“mini”。这是因为只要你的路由器至少支持“迷你”版本,使用它就可以在没有任何臃肿软件的情况下为你提供所有最常用的功能。因此,在大多数情况下,既为程序留有空间,也为其他用途留有一些JFFS空间。

一旦你决定了一个版本,建议使用最新版本的固件,因为他们往往有很多错误修复相比,他们的“稳定”副本。在本文撰写的最新版本是“03-17-11-r16454”,此版本用于后面的命令中。

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

为了更容易跟踪我们使用的版本,请重命名下载的文件以表示其版本号:

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

这当然是可选的,但是下面的命令假定您已经重命名了文件。

正在提取固件

为了能够更改固件中的文件,我们需要将其内容提取到一个临时文件中目录此命令的语法为:./extract_固件.sh固件\映像工作\目录在本例中,这将转换为:

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

注意:第一次运行此命令时,它会在系统上构建mod kit工具。这种情况只发生一次,可能需要一段时间…所以要耐心…

安装软件包

现在固件已经解压,我们可以将包安装到它。在里面一般来说,该过程是以ipk文件的形式从openWRT存储库下载包及其依赖项。下载后,使用提供的脚本将它们安装到提取的固件中。

knockd包

关于如何配置和使用Knockd的详细说明将在以后的文章中详细介绍,因此您可以选择现在跳过这一步,或者为将来做准备,因为Knockd不会占用很多空间。

Knockd是一个守护进程,它在链接层侦听通信事件,然后对其执行操作他们。什么这意味着,您可以让运行守护程序的设备甚至不“监听”端口(端口扫描不会将它们视为打开的),并且仍然让它执行您需要的操作,从单个命令一直到完整的脚本。使用这种技术,您可以触发服务器执行任何类型的操作,您需要它远程(通过互联网),而不暴露您的家庭网络。

Knockd只有一个列出的依赖项,因此通过发出以下命令下载包及其依赖项:

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

将“knock daemon”(knockd)ipk安装到固件中:

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

将“数据包捕获”(libpcap)ipk安装到固件中:

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

由于“knockd”可以通过一个备用配置文件调用(如何在以后的文章中解释),因此不需要执行任何其他操作,如果您只想安装它,您可以跳到固件构建部分。

s**tp包

SSMTP包使您的路由器能够发送电子邮件消息,就像我们在如何使用Gmail或SMTP在Linux上为服务器设置电子邮件警报中所展示的那样。当时我们向您保证,我们将展示如何为DD-WRT配置此功能,现在我们将演示交付。这个如果您要在路由器上创建脚本,并且希望通过电子邮件接收有关其操作的反馈,则此功能非常有用。

由于嵌入式系统的限制,这个软件包的设置比普通Linux系统要复杂一些,所以深呼吸…准备好了吗?…. 我们走吧……:)

下载软件包:

wget http://downloads.openwrt.org/backports/rc5/s**tp_2.61-1_mipsel.ipk

将“s**tp”ipk安装到固件中:

./ipkg_install.sh s**tp_2.61-1_mipsel.ipk ./working_dir_mini1/

TLS支持(可选)SSMTP不将任何其他包列为其依赖项,但是如果您希望能够使用需要TLS身份验证的**tp网关(即Gmail),您必须安装openSSL包好吧。注意:这样做有一个巨大的缺点,就是在路由器上大大减少了JFF的空间。也就是说,openSSL包从4MB的总空间(对于一个普通的非“mega”支持路由器)中占用了大约500K的空间,再加上JFFS的开销,您会发现您的左边有一块非常宝贵的免费JFFS空间(WRT54GL上大约60KB)。

由于仍有非TLS需要**tp服务器(通常是您的ISP的),我建议您花一分钟时间考虑是否真的需要使用TLS需要网关。

如果您决定启用TLS支持,尽管它有缺点,请下载openSSL包:

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

将“openSSL”(libopenssl)ipk安装到固件中:

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

配置SSMTP包有一个限制,即不能用备用配置调用它文件。因为固件在路由器上时是只读的,这意味着开箱即用,我们只能将配置硬编码到固件。但是, 如果我们不想经历所有的固件修改步骤,只是为了更改电子邮件设置,该怎么办?(例如密码更改)。

为此,Jeremy(固件mod kit的创建者)和我自己都得出了这样的结论(如果我可以谦虚地补充一句的话,那就是独立地),唯一明智的方法是:

  1. 使s**tp包指向etc下的只读位置的配置文件位置,指向运行时可写入的tmp目录。
  2. 创建一个脚本,在启动时根据NVRAM变量动态生成配置。

要做到这一点,还需要一些额外的步骤…

符号链接s**tp配置目录如上所述,我们需要在路由器上设置/etc/s**tp位置,指向/tmp目录作为运行时路由器上唯一可写的位置。为此,请删除ipk安装程序创建的s**tp目录:

rm -rf ./working_dir_mini1/rootfs/etc/s**tp/

创建指向路由器根文件系统上的/etc/s**tp的新符号链接,以指向/tmp/etc/s**tp作为绝对路径:

ln -s /tmp/etc/s**tp/ ./working_dir_mini1/rootfs/etc/s**tp

注意:尽管这现在看起来不合逻辑,因为我们将包的配置目录指向固件修改工具包工作目录之外的位置,但我向您保证,从运行时路由器的角度来看,这看起来完全正常。

一个初始化脚本虽然完全可以不将这个脚本注入固件并在以后作为启动脚本运行,但我觉得把它放在这里是合适的,如果只是作为将来的一个示例的话使用。最初杰里米后来根据某人的要求**了剧本,我对其进行了调整和扩充,使其与DD-WRT和syslog报告更加兼容。

创建新的初始化(启动)脚本:

vi ./working_dir_mini1/rootfs/etc/init.d/S80s**tp

注意:您可以使用另一个编辑器,我使用vi是因为它与路由器上的可用内容一致…请将此作为其内容:

#!/bin/sh # # title: s**tp_nvram.sh # author: Jeremy Collake and Aviad Raviv # site: http://www.bitsum.com, http://tl80.cn # # script to build config file from nvram vars. # will work for any config file that uses # var=value type pairs. # # uses prefixes for nvram variables. # # i.e. # s**tp_hostname=something # translates to s**tp.conf # hostname=something # logger_func() { logger -s -p local0.notice -t SSMTP_init $1 }

logger_func "###########Started the SSMTP init run###########" logger_func "Creating the etc directory in /tmp" [ ! -d /etc/s**tp/ ] && mkdir -p /tmp/etc/s**tp/ CONFIG_FILE=/etc/s**tp/s**tp.conf NVRAM_PREFIX=s**tp_ PACKAGE_NAME=`echo $NVRAM_PREFIX | sed 's/_/ /'`

logger_func "Generating $CONFIG_FILE for package $PACKAGE_NAME" #echo $0: generating $CONFIG_FILE for package $PACKAGE_NAME echo "#!/bin/sh" > $CONFIG_FILE echo "#" >> $CONFIG_FILE echo "# auto generated based on nvram by $0" >> $CONFIG_FILE echo "#" >> $CONFIG_FILE

if [ -z "`nvram show | grep s**tp`" ] then logger_func "It appears that you have not set the NVRAM variables required to generate the conf file" logger_func "**C***ider** using these commands in you startup script:" logger_func "nvram set s**[email protected]" logger_func "nvram set s**tp_mailhub=**tp.gmail.com:587" logger_func "nvram set s**[email protected]" logger_func "nvram set s**tp_UseSTARTTLS=YES" logger_func "nvram set s**tp_AuthUser=username" logger_func "nvram set s**tp_AuthPass=password" logger_func "nvram set s**tp_FromLineOverride=YES" logger_func "create the NVRAM variables and re-run the init script or reboot for the settings to take affect." exit 0 fi

########################################################### # # main loop # SED_COMMAND="s/$NVRAM_PREFIX/ /" CONFIG_VARS=`nvram show | grep $NVRAM_PREFIX | sed "$SED_COMMAND"` for i in $CONFIG_VARS; do echo $i >> $CONFIG_FILE done

########################################################### # # sanity check # if [ ! -f "$CONFIG_FILE" ]; then # echo "$0: ERROR - could not create $CONFIG_FILE. Perhaps there is no symink /etc/XXXX -> /tmp/etc/XXXX ?" logger_func "ERROR - could not create $CONFIG_FILE. Perhaps there is no symink /etc/XXXX -> /tmp/etc/XXXX ?" fi logger_func "###########Finished the SSMTP init run###########"

使其可执行:

chmod +x ./working_dir_mini1/rootfs/etc/init.d/S80s**tp

注意脚本中的NVRAM等待变量,在路由器上安装了修改后的固件后,我们有责任给它们一些可以使用的东西。

生成修改的固件

现在一切都准备好了,是时候把修改过的固件重新打包成一个压缩的二进制文件了,我们可以把它闪存到服务器上路由器“生成.sh“脚本语法为:./build_固件.sh输出目录工作目录

为此,我们使用提供的脚本,因此发出:

./build_firmware.sh output_mini1 ./working_dir_mini1/

一旦“构建”操作完成,将有几个固件映像等待在“输出”目录中使用。

现在可以刷新名为“custom\u image\u 00001”的文件-通用.bin“你的路由器,因为你通常会DD-WRT固件。

注意:不要忘记在固件闪存之前、期间和之后立即恢复到“出厂默认值”。

闪光后步骤

因为我们让SSMTP包寻找NVRAM变量以生成SSMTP配置文件,所以现在需要为它提供缺少的信息。我们将通过使用web GUI的“运行命令”功能来实现这一点。

转到web GUI->“管理”->“命令”->在文本框中粘贴以下内容:

nvram set s**[email protected] nvram set s**tp_mailhub=**tp.gmail.com:587 nvram set s**[email protected] nvram set s**tp_UseSTARTTLS=YES nvram set s**tp_AuthUser=your-gmail-user-name(without the @gmail.com) nvram set s**tp_AuthPass=you-gmail-password nvram set s**tp_FromLineOverride=YES nvram commit

用实际信息替换等号(=)后的文本,然后点击“运行命令”。注意:如果使用常规的非TLS **tp服务器,则要使用的端口是25,而不是587。

既然SSMTP信息已经准备好使用,那么您将需要调用init脚本。因此,您可以重新启动路由器,或将其粘贴到“命令”文本框中:

/etc/init.d/S80s**tp

然后点击“运行命令”又来了。那个此命令的输出应如下所示:

使用dd wrt mod kit从家庭路由器释放更多能量

测试您是否可以再次发送电子邮件将此粘贴到“命令”文本框中,使用您的电子邮件地址发送以下命令:

echo "testing crucible emailing 123 qwe" | s**tp -vvv [email protected]

然后点击“运行命令”又来了。因为我们使用-vvv选项来增加详细性,此命令的输出应该如下所示:

使用dd wrt mod kit从家庭路由器释放更多能量

如果一切顺利,你应该在几秒钟内收到测试邮件。

我们希望你可以利用这些信息,推动你的家庭路由器的限制,甚至进一步,你认为可能的,你现在真正控制你的家庭路由器,和DD-WRT…

 


Linux extends life, Linux expands c***ciousness… Linux is vital for packet travel 使用dd wrt mod kit从家庭路由器释放更多能量

  • 发表于 2021-04-13 00:19
  • 阅读 ( 208 )
  • 分类:互联网

你可能感兴趣的文章

路由器的六大备选固件

这可能会让人吃惊,但你的路由器上运行着操作系统和软件。这称为固件,是为特定硬件设计的软件。 ...

  • 发布于 2021-03-19 01:06
  • 阅读 ( 250 )

如何设置自己的家庭vpn服务器

...您的需求选择最佳的VPN服务 选项一:获取具有vpn功能的路由器 您可以购买一个预构建的VPN解决方案,而不是自己尝试这样做。高端家庭路由器通常带有内置的VPN服务器,只需寻找一个无线路由器,广告VPN服务器的支持。然后,...

  • 发布于 2021-04-06 22:08
  • 阅读 ( 254 )

如何监视网络上各个设备的带宽和数据使用情况

...你的带宽和数据使用的完整图像。你最好的是一个自定义路由器固件-但有选择,即使你不想使用其中之一。 监视路由器上的带宽和数据使用情况 相关:如何在路由器上使用自定义固件,以及为什么您可能希望 最准确的监控方...

  • 发布于 2021-04-08 06:09
  • 阅读 ( 272 )

将您的家庭路由器连接到vpn以绕过审查、过滤等

...是仅仅认为通过一个安全的隧道观看互联网看起来更好,路由器级别的VPN连接可以解决所有这些问题,然后解决一些问题。 什么是vpn?我为什么要这么做? 有无数的原因,你可能想使用VPN路由你的互联网流量到一个地方以外的...

  • 发布于 2021-04-09 09:58
  • 阅读 ( 239 )

如何设置静态dhcp,使您的计算机的ip地址不会更改

...口转发使得从任何地方访问这些计算机变得容易。通过在路由器上配置静态DHCP,您可以将两者结合起来。 dhcp和端口转发的问题 DHCP很棒。你把路由器配置成自动分配IP地址,你网络上的计算机就可以正常工作了。端口转发很有...

  • 发布于 2021-04-09 19:09
  • 阅读 ( 168 )

如何在路由器上使用自定义固件,以及为什么要这样做

路由器基本上是小型计算机。默认情况下,它们运行**商提供的操作系统或固件,以路由网络流量并为您提供各种设置和功能。但是你可以经常更换这个固件。 大多数人不需要第三方自定义路由器固件。是的,自定义固件可以...

  • 发布于 2021-04-11 09:34
  • 阅读 ( 161 )

如何在无线网络上启用来宾访问点

...局域网。请继续阅读,我们将向您展示如何为双ssid设置路由器,并为您的客人创建一个单独的(安全的)访问点。 我为什么要这么做? 想要将家庭网络设置为具有双接入点(AP)有几个非常实际的原因。 对于大多数人来说,...

  • 发布于 2021-04-11 21:43
  • 阅读 ( 154 )

如何进入你的人际网络(dd wrt)

你有没有想过用你的路由器来“敲宿舍门”这样一种特殊的方式,只在你的路由器被发现的时候才“开门”呢?howtogeek解释了如何在DD-WRT上安装敲打守护进程。 Bfick和Aviad Raviv的图片 如果您还没有,请确定并查看本系列中以前...

  • 发布于 2021-04-12 13:00
  • 阅读 ( 168 )

如何在路由器上安装传输bitorrent客户端(dd wrt)

...请确定并查看本系列以前的文章: 使用DD-WRT将您的家庭路由器变成超级强大的路由器 如何在家庭路由器上安装附加软件(DD-WRT) 如何在DD-WRT上用Pixelserv删除广告 假设你熟悉这些主题,继续阅读。请记住,这本指南是一个多一...

  • 发布于 2021-04-12 15:31
  • 阅读 ( 164 )

如何在家庭路由器上安装附加软件(dd wrt)

你有没有想过在你的路由器上直接安装电子邮件、BitTorrent甚至MySQL之类的附加功能?也许现在你可以。How To Geek潜入如何在DD-WRT上安装Opkg软件。 让·斯佩克特和阿维德·拉维夫合影 如果您还没有,请确定并查看本系列以前的文...

  • 发布于 2021-04-12 16:52
  • 阅读 ( 176 )
myce9625
myce9625

0 篇文章

相关推荐