当我尝试将 Linksys WRT54GS 路由器上的固件从 dd-wrt 更改为 open-wrt 时,路由器变砖了。为了恢复路由器,我需要能够通过 ftp 传输到路由器。
问题是它不使用 DHCP 寻址,我不能只使用默认 IP 地址 192.168.1.1。我必须使用在它变砖之前设置的 IP 地址。
问题是我忘了那个号码是多少。
是否有某个程序或者脚本可以找出它?
答案1
dd-wrt.com wiki 有一个页面获取路由器 IP。它说使用 arp 命令。从该页面:
如果仍未收到任何响应,则 IP 地址可能已从默认地址更改。断开路由器上的所有其他计算机,并在命令窗口中运行 arp 以找出 IP 地址:
arp -a
即使路由器与您的计算机位于不同的子网,您也应该会收到来自路由器的响应。如果您收到了响应,则输出将为您提供路由器的 IP 地址。一旦您发现了路由器的 IP 地址,请更改计算机的 IP 地址以匹配路由器的子网,如上所述。您现在应该能够 ping 路由器并收到响应。
dd-wrt.com wiki 上也有详细的指南,似乎适合您的情况。从故障闪存中恢复。
它涵盖的第一个路由器是 WRT54G/GL/GS,但在介绍路由器的具体信息之前,它说:
要确定路由器是否已损坏,请仔细按照孔雀线程注释 6 中的步骤进行操作:
孔雀线常见问题:您需要知道的一切!真的!!
我将把 Peacock Thread-FAQ 中的内容粘贴到我的回答中,以防链接将来失效,但整篇文章都有很多有用的信息。看来你应该从这一节开始:
具体来说,以下步骤可以判断您是否有一块砖并且需要 jtag(或使用串行电缆):
它会告诉您要 ping 的标准 IP 地址以及如果不成功的话如何重置。
Peacock Thread-FAQ 的开头是这样的:
我将其命名为孔雀帖,以便于搜索。它包含大量信息,因此您需要仔细阅读。
……
无论帖子发布日期如何,此帖子中的信息都是最新的。此帖子不断修改。
如何重置在帖子的第 1 个注释中,您需要查看论坛中的帖子(我正在与发帖人核实,看他们是否同意除了此处的链接之外的大部分内容)。
祝你好运。
我得到了帖子作者的同意,可以将信息复制到这里,因此如果您使用底部的步骤 6 确认路由器已损坏,则需要按照注释 1 中的说明进行硬重置。
硬重置后,你可以继续使用 WRT54GS 的具体说明,从故障闪存中恢复邮政。
孔雀线常见问题:您需要知道的一切!真的!!
作者: Murrkf
注意 1:进行硬重置之前和之后您更改了 DD-WRT 固件版本。
这并不意味着按下重置按钮就大功告成了。这意味着进行 30-30-30 重置。要进行 30-30-30 重置,您必须在路由器通电的情况下按下重置按钮。在路由器通电的情况下按住该按钮 30 秒。继续按住该按钮,拔下电源线 30 秒。继续按住该按钮,将电源重新插入路由器,并继续按住重置按钮 30 秒。您将按住按钮整整 90 秒而不松开它。
硬重置通常不适用于库存固件!
注意:无论如何操作,WRT54GS v1.1、GS v2 和 GS2.1 型号在硬重置后都可能变砖。请参阅此主题和 Vulcan 帖子中的解决方案: http://www.dd-wrt.com/phpBB2/viewtopic.php?t=45024
注意:WRT320N 的重置按钮有问题。请参阅此帖子,了解如何使用 WPS 按钮擦除 nvram: http://www.dd-wrt.com/phpBB2/viewtopic.php?t=63004
注 2:华硕 RT-N16 重置按钮可将其置于固件恢复模式。请参阅 RT-N16 wiki 了解如何重置此路由器。
完成此操作后,当 DD-WRT 安装完成后,如果您尝试登录 192.168.1.1 的路由器时,dd-wrt webgui 没有要求您更改密码(假设您正在对 dd-wrt 版本进行硬重置,该版本比 2008 年 6 月 14 日 9707 更新,当时引入了自动重新配置密码),则您没有正确完成硬重置。
未能进行硬重置和刷新后未等待是两个最常见的 NOOB 错误,它们会导致他们陷入不必要的 dd-wrt 痛苦之中!这不是一个次要的可选步骤。固件将信息写入 Nvram。此步骤将清除该信息。如果您没有正确清除它,部分旧信息将存在于新固件中,这可能会导致其无法正常运行。不要偷工减料。在升级之前进行此操作非常重要;硬重置不仅适用于升级后。
硬重置不会从您的路由器中删除 dd-wrt!
现在路由器已重置,您可以继续按照 WRT54GS 的具体说明进行操作,网址为从故障闪存中恢复邮政。
路由器正面的 LED 显示屏是确定您拥有的砖块类型及其恢复方法的最佳方式。您至少应该检查一下,以防止不必要地打开路由器。
当 Web 界面不再可用时,请先关闭路由器(拔下电源插孔)并从设备上拔下所有网络电缆。几秒钟后,重新启动 WRT54G。现在注意闪烁的 LED。
- 电源 LED 闪烁非常快。如果它持续闪烁超过 2 分钟,而其他 LED 却没有亮起,则表示存在有缺陷的引导加载程序。但是,如果您可以 ping 192.168.1.1(您的路由器 IP),则可以尝试 TFTP 恢复,否则您可能需要打开路由器并使用下面的 JTAG 恢复方法。
- 电源 LED 闪烁非常快,几秒钟后 DMZ LED 亮起约 5 秒钟。在这种情况下,Bootloader 完好无损,只有内核(固件)有缺陷。在这种情况下,如果您通过 TFTP 重新刷新固件,您仍然可能使用以太网电缆进行恢复(请参阅下面的 TFTP)。
- 电源 LED 闪烁非常快,大约 20 秒后会持续亮起,但 DMZ LED 不会亮起。在这种情况下,Bootloader 和 Kernel(固件)完好无损,只有错误的配置导致路由器被锁定。如果 NVRAM 中存在错误或损坏的值,则可能会发生这种情况。此时只需清除 NVRAM 即可解决问题。
选项一:使用 JTAG 恢复方法
选项二:如果通过 TFTP 重新刷新固件,可能仍可使用以太网电缆恢复
选项三可以通过硬重置来解决。
选项一:使用 TFTP 恢复
请注意,如果您已经安装并运行 DD-WRT,并且您访问此页面是因为想要恢复到路由器固件,则您需要先破解 DD-WRT!
telnet进入路由器,执行:
mtd 擦除 linux (这弄坏了我的 Buffalo WHR-HP-GN!不要使用 mtd 擦除 linux!) 重启
(注意:仅在带有 24preSP2 的 WNDR3300 上测试;YMMV)
在启动过程中,路由器将暂停以通过 tftp 接受临时固件上传。在 Linksys WRT54G 路由器上,您需要刷新包含“W54G”标头的映像(Linksys 和 mini_wrt54g 映像)
如果 ping 192.168.1.1 不起作用,请检查计算机的 IP 地址,并确保它分配了路由器 IP 子网中的 IP 地址。为简单起见,您可以假设“192.168.1.x”是好的。如果您没有好的 IP,DHCP 服务器可能无法正常工作。因此,请手动将您的 IP 设置为 192.168.1.77 之类的地址,并以 192.168.1.1 作为网关,然后尝试再次 ping 路由器。最后,您可能需要使用网络扫描仪扫描您的网络(较小的网络),以确保您的路由器没有分配其他 IP。
通过在命令窗口中运行连续 ping 来打开路由器电源:
ping -t -w 2 192.168.1.1
-w 2 参数强制降低 ping 应答的超时时间,这使得从损坏的路由器获取应答变得更容易。
您应该至少看到来自 192.168.1.1 的几个回复。请多次执行此操作以确保无误。如果确实如此,则您很有可能轻松恢复。如果仍然没有收到回复,则 IP 地址可能不是 192.168.1.1。您应该尝试获取路由器的 IP 地址。特别是如果之前的固件将 boot_wait 变量设置为 on,路由器在启动期间暂停的时间甚至比正常情况下更长,以接受恢复闪存。您需要做的就是在此时间窗口内通过 TFTP 向其提供固件。
准备好您的 PC、固件文件和 TFTP 软件,并在通电后(或开始看到 ping 回复后)尝试打开电源并启动 TFTP 会话的时间。如果您尝试多次(至少 10 次),您可能会毫不费力地拯救路由器!
如果您看到路由器提示“密码无效”,则表示引导加载程序未接受 TFTP 映像,并且固件拒绝 TFTP 上传。您可以在启动路由器时按住重置按钮,强制引导加载程序接受 TFTP 上传。您还可以通过确保 PC 和路由器之间有交换机或集线器来提高成功率,从而在路由器电源循环时保持链路状态。
DrayTek 路由器工具 - OS X/Windows:此程序只需按一下按钮即可运行所有那些烦人的 TFTP 命令。只需从此处下载并安装 DrayTek 路由器工具,然后按照说明操作即可: ftp://ftp.draytek.com/tools/Router_Tools/
- 运行“Draytek 固件升级”,
- 指定您的 *.bin 文件。
- 插入路由器并点击发送,如果收到“无法发送”消息,点击确定并重试发送。只要您的手动 IP 地址与路由器位于同一子网,并且路由器可 ping 通,它最终应该会通过(如果超过一分钟无法发送,请重新启动路由器)。
- 发送成功后,您应该会看到文件发送的进度条。
- 等待大约两分钟,您的路由器就可以访问了。
Windows:Microsoft Windows 包含一个 TFTP 客户端。Windows Vista 需要您在“程序和功能”中启用它。使用 TFTP,有关传输的所有信息都在初始设置期间指定;与标准 FTP 相比,客户端/服务器交互很少。
如果路由器在 ping 时没有响应,或者电源灯闪烁,请先使用 arp -s 命令。
此命令允许将 IP 地址附加到设备的唯一 MAC(或物理地址)。MAC 地址显示在设备底部的标签上,是一个 12 位十六进制数字,看起来像 aabbccddeeff。此数字必须按以下方式输入:aa-bb-cc-dd-ee-ff,其中用破折号分隔数字对。
请注意,首先要安装的固件大小必须小于 3 MB。之后,可以使用路由器的 WEB 界面安装更大的固件。但是,也有一些例外;WRT54GL 的 Linksys 默认固件为 3.2MB,可与 TFTP 配合使用。
在下面的示例中,我们假设您的路由器 IP 地址是 192.168.1.1。
开始之前,请确认:
- 您的 LAN 上没有 IP 地址为 192.168.1.1 的计算机(或设备)。
- 你的电脑在IP段1上有一个地址,即192.168.1.xxx。
- 网线已正确连接到路由器。
要使用 Microsoft Windows 刷新路由器:
- 打开命令提示符。
- 更改为包含用于本次启动的原始 Linksys 固件或要安装的 DD-WRT 固件的目录,其大小必须小于 3 MB(此示例假设固件文件名为 code.bin)。
然后输入以下命令:
arp -s 192.168.1.1 aa-bb-cc-dd-ee-ff ping 192.168.1.1 tftp -i 192.168.1.1 PUT 代码.bin 代码.bin
尽管电源灯闪烁,但 ping 的正确响应意味着路由器仍然处于活动状态。
tftp 程序不会在上传过程中向您提供状态更新,它要么在结束时返回“传输成功”,要么返回失败消息。传输可能需要 15 秒或更长时间,在此期间 LAN 状态 LED 将以与电源 LED 大致相同的速度闪烁。请耐心等待,不要中断,直到完成。
固件上传后,等待约三分钟,直到电源灯停止闪烁。此时,路由器应该可以运行。
操作系统:OS X 包含一个 TFTP 客户端,如下所述,但其成功率会有所不同,尤其是当您收到“无效密码!!!”错误时。不过,MacTechnologies 的 MacTFTP 客户端在第一次尝试时就成功了。只需确保指定密码(通常是默认的“admin”)并等待传输完成即可。
Linux:大多数 Linux 发行版都包含 tftp 客户端,或者在其软件包中提供 tftp 客户端。此示例使用 atftp。
atftp --option "mode octet" --verbose -p -l code.bin 192.168.1.1
对于 OS X 和 Linux 用户,我建议打开终端窗口并输入以下命令。
tftp 192.168.1.1
binary
rexmt 1
timeout 60
trace
完成上述输入后(但不要立即按回车键)
put firmwarefile.bin
插入路由器并立即按回车键。
现在给路由器通电。tftp 客户端将不断重试上传固件,直到路由器响应。希望路由器能短暂唤醒,以便发送固件升级。大约两分钟后,路由器将重置并使用新固件运行。
PUT 完成后,路由器将停止 ping 2 或 3 分钟,同时刷新固件。不要惊慌,这是正常现象。一旦您再次开始接收 ping,则固件已刷新,您应该能够再次访问路由器。您应该在再次配置路由器之前重置为默认值。
Linksys WRT54 GL:
Linksys wrt54 GL 用户请注意,如果使用 dd-wrt 固件通过 tftp 刷新没有结果,则值得尝试来自 www.linksys.com 的原始 Linksys 固件。如果可行,请进行硬重置,然后您可以继续使用 dd-wrt 刷新。为了使用标准固件版本,必须先使用 MINI 版本。
笔记:
- -i 指定二进制传输模式。如果不指定,传输将失败。
- 启动命令然后启动路由器。在完成之前没有任何传输迹象。
- 如果您使用 10Mbps 半双工模式,则通过此命令上传的速度相当慢 ~5.7kB/s,因此上传 ~3 MB 图像大约需要 10 分钟。当您使用 100Mbps 全双工模式时,速度会快得多。传输完成后,等待 2-3 分钟,图像将写入闪存。
- 如果 TFTP 不起作用,请尝试将网络适配器更改为10 Mbps 半双工。
- 只要您正确地遵循了这些步骤,您就会注意到路由器最终将重新启动,在某些情况下,它将需要电源循环(但是,如果您进行电源循环,请至少等待 10 分钟以确保在拔掉插头之前已完成闪存写入)。
- 庆幸你没有浪费 60 美元,而且你的路由器现在又可以正常工作了。
已知 TFTP 问题
发生超时连接请求失败
尝试 ping 您的路由器。如果 ping 成功,请拔掉电源线重新启动路由器,并等待至少 10-20 秒后再重试。如果没有 ping 成功,则表示无法访问路由器。检查您的 IP 和网络配置是否正确。如果重新启动后问题仍未解决,并且您总是收到此错误,则需要继续使用 JTAG 方法。
访问被拒绝连接请求失败
路由器拒绝您的连接;可以通过网络访问路由器。尝试重新启动路由器、修复网络接口或根据某些教程将 IP 地址更改为 192.168.1.9。
服务器错误代码模式不正确
有时,上传 mini DD-WRT 映像(或其他映像)不起作用。如果出现此错误,则路由器无法识别您的 .BIN 固件(确保您确实有 .BIN 固件)。尝试通过 TFTP 传输最新的默认 Linksys 固件。然后,您将能够访问 Web GUI 并再次刷新路由器。
选项二:通过 JTAG 电缆恢复
请在此处阅读 jtag wiki: http://www.dd-wrt.com/wiki/index.php/Category:Jtag
如果路由器不再可 ping 通,您除了使用 JTAG 电缆外别无他法。有关引脚分配,请参阅 OpenWRT wiki。然后下载 HairyDairyMaid Debrick 实用程序。或者...尝试更新的 TJTAG 程序,其中包含较新的路由器型号。
- 按照上面链接的引脚排列焊接 JTAG 电缆。
- 在路由器的 PCB 上焊接一个 12 针接头。
- 要安装 giveio.sys,请将 giveio.sys 和 loaddrv.exe 复制到 {windows}\ system32\drivers 中(通常是 C:\windows\system32\drivers)
- 双击 system32 目录中的 loaddrv.exe。这很重要。
- 将文件名 giveio.sys 附加到实用程序的路径上
- 按下加载按钮和开始按钮,它们都应该确认成功。如果没有发生这种情况,请不要继续,返回并修复此问题。
- 确保在 LPT1 端口上启用了中断 - 进入设备管理器>LPT1>属性>端口设置并选中“使用分配给此端口的任何中断”
- 从命令提示符 cd 到您的 Hairy Dairy 目录并运行 wrt54g.exe 以获取选项列表
- 检查你的电缆,插入并启动路由器并执行 wrt54g -probeonly
- 然后它将检测 CPU 类型。如果没有,请检查您的电缆。
- 最后擦除你的 NVRAM(问题的常见原因)wrt54g
- 擦除:nvram
- 如果这不起作用,请擦除内核(固件):wrt54g -erase:kernel 现在通过 TFTP 重新刷新内核。
- 如果你仍然没有运气,你需要删除你的 CFE,但要确保你的路由器型号有一个可用的 cfe.bin!wrt54g -erase:cfe 之后你必须重新刷新你的 CFE:wrt54g -flash:cfe
部分列表可在此处找到 CFE 收集项目
通过此实用程序使用 JTAG 刷新 KERNEL 或 WHOLEFLASH 将花费很长时间。您最好刷新 CFE 和 NVRAM 文件,然后使用常规 TFTP 方法通过以太网刷新 KERNEL。
注意:如果您的 JTAG 写入程序在闪存擦除步骤期间挂起,请检查您的电源。写入闪存比读取消耗更多的电量,因此边际电源可能支持探测和读取,但在写入时会失败。有一次,我在 14V 直流电源上发现了 32V 交流纹波。我推测边际电源称为原始闪存故障。
如果您没有 CFE.BIN 文件,可以在此处找到它们的存储库。这些文件的 MAC 地址均与您的硬件不匹配。在上传 CFE 之前,请使用 The Bitsum Wiki 提供的 CFE 编辑工具“IMGTOOL_NVRAM”设置 et0macaddr 和 il0macaddr。et0macaddr 是印在外面的地址;il0macaddr 是该地址加一。示例:如果打印机地址为 00:90:4d:83:00:01,则 et0macaddr 为 00:90:4d:83:00:01,il0macaddr 为 00:90:4d:83:00:02。
孔雀线常见问题:您需要知道的一切!真的!!
作者: Murrkf
注6:你的路由器坏了吗?
A bricked router is a router that you can no longer communicate with through
wireless or wired connections. It will give no response. Just because a router
doesn't seem to be fully working, doesn't mean it is bricked. Most of the time
when we refer to a bricked router, we mean that it is not responding to a
wired connection and needs a jtag or serial cable to fix it.
A brick will normally not respond to pings at all. Often, all the lan lights and the
power light are lit when a router is bricked, even those with no cable in the lan
port. If you can get your router to respond to pings, there is hope.
When pinging the router:
If reply has TTL of 100, the bootloader (CFE) is responding. This is the best time
to start the TFTP transfer. In most cases you should be able to flash dd-wrt
firmware if you are getting any ttl=100 responses, as long as you flash at the
start of these ping responses. See note 11 about how to flash. Timing can be tricky.
If reply has TTL of 64, the operating system firmware
(i.e. Linux, dd-wrt) is responding.
The good news here is that there IS operating system firmware on your router.
Routers with boot wait enabled will give you a few ping responses of ttl=100, while
the operating system is loading, prior to changing to ttl=64. This enables you to
flash firmware at bootup with tftp if you wish to.
If there is no operating system firmware (dd-wrt) on the router (flash of firmware
did not take for some reason), you will only get ttl=100 from the bootloader.
If you get "destination host unreachable", you likely have your computer on a
different sub-network than the one you are trying to ping. Check to make sure
that you have your computer set to the same static IP subnet (eg.192.168.1.10)
as the address you are trying to ping.
If you only get "request timeout" responses, and you are pinging properly to the
correct IP of the router from the same subnet,this is not good
(router might be bricked) but we can still try TFTP just in case. Here's what to do:
Try to ping at ALL the IP addresses that your router has ever had. Make sure that
you set the IP on your computer to the same first three octets of the IP you are
trying to ping. Usually, you will set the IP of the computer to 192.168.1.8.
Then, at your command prompt, ping -t 192.168.1.1. Watch and report the results,
if you have a problem.
Be SURE to check your power supply and make sure it is the correct one for your
router. We often see that people have used the wrong power supply and then find
their router doesn't work. Also, power supplies fail, and if the capacitors are weak
the power supply might seem fine when the router is not under load but often the
supply won't work right at reboot, right when you need it to function properly.
If you have another power supply, try both.
具体来说,以下步骤可以判断您是否有一块砖并且需要 jtag(或使用串行电缆):
a. Make sure your computer hardware, especially your lan cable are working properly. Make sure your network adapter is working.
检查你的路由器电源。
b. Disable all virus protection and firewalls on the computer. Also, disable any
wireless cards.
c. Connect one computer to the router with a cable. Have no other connections to
the router except one computer and one cable to that computer.
d. Set your computer IP address to 192.168.1.10 (if that is the same subnet as the
router is supposed to be at).
e. Try to ping the router using the command "ping -t 192.168.1.1" (presuming that
192.168.1.1 is the address your router was set to.) See if there are ANY
responses. (There WILL be A response...you are looking for a ttl= response)
f. If there are no ttl= responses, do a hard reset on your router. Make sure you get
this right. (See note 1.) This should set your router back to dd-wrt defaults. Check
to see what the dd-wrt default is for your router. Usually this is 192.168.1.1. Some
routers are 192.168.10.1 and some are 192.168.1.245. You then need to redo
steps d. and g. using the new ip address. Make sure if the subnet has changed, your
have changed your computer to match the subnet.
h. Start continuous pings to your router again. Note the responses. If they are not
ttl=64, you have a problem. While the pings are continuing, power cycle your
router. (This means unplug it, count to 30, and plug it back in). Watch the lights
and wait until they come back on or for any changes. This could take a minute.
Carefully watch for any ttl= responses during this time.
i. If there are no ttl= responses, do a hard reset on your router, while the pings
continue. Again. watch for any ping responses. If you get none, you likely need to
jtag or use one of the recovery methods listed below in this note. Your router is
bricked.
If you get a few ping responses of ttl=100, or even 1, that is the CFE saying "Send
me a firmware! NOW!" But you have to hit it with a tftp right then, when the ping
responses start. See note 11 (below) and repeat the procedure that got your a
ttl=100 response then try to get the tftp timing right.
Some routers can be bricked even if they do give some ttl=100 responses to pings,
but this is less common. Some routers can be bricked if the lights are not all lit,
but again, this is not common. However, if the lights are all lit, and you cannot
get a ping response, the router is definitely bricked. You can try the alternate
recovery methods below, but if none work and you can't tftp, you must use
serial recovery or jtag to fix it.
(See the Links to the Wiki articles on these, below).
请勿将损坏的路由器短接。
It can cause harm that cannot be fixed. A bricked router can almost always be
fixed with serial or jtag if there is a jtag terminal in the router. However a router
with hardware damage cannot be recovered. Pin shorting often causes hardware
damage.
If someone has sent you to note 6 of the peacock thread, it is because they are
asking you to post the exact message you get from your initial ping attempt, the
message you get during and after a power cycle, and the message you get when
pinging during and after a hard reset. Be sure to post this information in your
thread. You will ALWAYS get a message/response when you try to ping;(see the
first paragraph for note 6, above) be sure to post exactly what those responses
are. Also post what each light in the front of the router is doing, and whether
something is plugged into any LAN port. We also need to know what you did to
brick your router - wrong build? Failed to wait? What? Finally we will need to know
what operating system you are using on your computer to assess the message
you get. POST ALL THIS INFORMATION IF YOU WANT USEFUL ASSISTANCE
Here is a link on how to put your router in management mode, that has saved
some people who thought that their router is bricked:
http://www.dd-wrt.com/phpBB2/viewtopic.php?t=47536
EKO has posted this for the Linksys 610N (Not sure if it works for other Linksys
routers too?)
http://www.dd-wrt.com/phpBB2/viewtopic.php?t=54286
As an alternative to serial or jtag, some recent version routers can be fixed by this
method. It is worth a try before you solder:
http://www.dd-wrt.com/phpBB2/viewtopic.php?t=63444&start=15
If you need to jtag, here is a link to the wiki article on jtag:
http://www.dd-wrt.com/wiki/index.php/JTAG
You can do some router recovery with a serial adapter IF you have a working CFE
on the router. This is the preferred method if you flashed the wrong firmware but
have not deleted the cfe with a jtag cable. See this wiki article on serial recovery:
http://www.dd-wrt.com/wiki/index.php/Serial_Recovery
答案2
使用以下方式扫描您的本地网络nmap。
答案3
答案4
另一种测试方法是访问,无需任何特殊命令,只要你可以访问网络即可http://whatsmyrouterip.com/它将尝试探测路由器的网络。不确定它与砖砌的路由器配合得如何,因为它可能根本不响应 ping/请求...