路由器(Router)是一种电讯网络设备,可以决定数据包从来源端到目的端所经过的路由路径,并将路由器输入端的数据包移送至适当的路由器输出端。家用或者小企业场景中常见路由器通常是独立成品设备。
路由器的第三方固件及OpenWrt
Asus、Linksys、Netgear都是可玩性很高的路由器品牌。为丰富路由器功能,各方在路由器固件(Firmware)上也颇费力气,比如华硕路由器就可适配华硕原厂固件(Asuswrt)、华硕官改固件(koolshare)、梅林原版固件(Asuswrt-Merlin)、梅林改版固件,并向Netgear输出移植固件。
独立的第三方路由器固件也有很多,如Tomato、Padavan、DD-WRT、OpenWRT等。OpenWRT是一个激进的路由器固件项目,允许通过使用软件包来定制设备以获得最新功能。
Broadcom在某款802.11g芯片中使用了License类型为GPL的Linux系统,2002年12月该芯片被Linksys集成在了自家的WRT54G无线路由器中;次年,思科收购了Linksys。迫于开源协议压力,2003年3月Linksys公布了WRT54G的源代码,直接导致了第三方路由器固件的涌现。这是第一次外部程序员可以完全控制高规格的商业路由器,并且有办法增强功能或者改进其他路由器。在此基础上,2004年1月OpenWrt初始发行。
这篇文章专门谈到了这款传奇路由器,直到2016年WRT54G依然有数百万美元的销售额。
OpenWrt是一个基于Linux的嵌入式操作系统的开源项目,主要用于嵌入式设备上的路由功能,所有组件都进行了优化,以使其足够小,以适合家用路由器中有限的存储和内存。
OpenWrt使用命令行界面(ash shell)或Web界面(LuCI)进行配置。通过opkg软件包管理系统可以安装大约3500个可选软件包。
OpenWrt可以在各种类型的设备上运行,包括CPE路由器,住宅网关,智能手机,便携式计算机(例如Ben NanoNote)和笔记本电脑。也可以在个人计算机上运行OpenWrt ,后者通常基于x86架构。
2016年5月,OpenWrt分叉为LEDE,2018年1月,OpenWrt和LEDE项目以OpenWrt名称重新合并。
OpenWrt建议选择至少具有8 MB闪存和64 MB RAM的设备。
2021年1月19日发布v19.07.6最新版本。
OpenWrt发行版本https://downloads.openwrt.org/releases/
路由器安装OpenWrt
从支持设备列表中查找路由器型号,进入相应的Device Page。从Installation的Firmware OpenWrt Install URL栏下载适用的最新OpenWrt镜像。OpenWrt提供全新设备推荐。
尝试在Netgear R6100定制OpenWRT:
2、通过Netgear R6100管理面板的刷新固件功能更新为上述固件。
- 网线连接路由器LAN口
- 登录http://192.168.1.1/adv_index.htm
- 管理-固件升级
以上是基于在有自身官方固件的品牌路由器上使用第三方固件(甚至可能需要事先破解),其实也有原生预装OpenWrt的开源路由设备商,比如入门级的有GL.iNet,其迷你路由器GL-MT300N-V2价格低至99元。
软路由安装OpenWrt
我们可以在旧电脑、工控机、开发板、服务器甚至是硬件虚拟机中安装软路由系统,然后通过强大的软件实现更快的网速、更多的设备接入及其他各种各样的功能,而成本比具有同等功能的成品路由器低得多。这套系统称为软路由。
家用软路由的硬件配置类似于NAS需求推荐,较早前凌动N2600、赛扬J1900这样的平台被广泛使用(基于TDP考虑),而现今可以推荐J3455和N4200(在TDP基础上支持虚拟化)。而在系统软件方面,前面介绍过的OpenWRT,以及RouterOS 、PFsense或爱快也都常用。
Friendlyarm Nanopi R2S实际是一个基于RK3328 SoC、带双千兆网口的小型开发板,定位家庭物联网网关,支持官方修改的OpenWrt —— FriendlyWrt。2020年7月28日,OpenWrt官方主线加入了对NanoPi R2S的正式支持。
通常,软路由的WiFi性能非常差,因此在实际使用中通常将其它的硬路由作为AP接入到软路由中。
定制OpenWrt
1、通过System-Software安装中文语言包
- luci-i18n-base-zh-cn
- luci-app-opkg
- luci-i18n-opkg-zh-cn
2、通过System-Software安装OpenVPN
- openvpn-openssl
- luci-app-openvpn
同类服务如OpenConnect:
- luci-app-ocserv ocserv
- luci-proto-openconnect openconnect
以及更多如:
- luci-app-shadowsocks-libev
- luci-compat
还可以同步安装相应程序的国际化语言包中简翻译文件(luci-i18n-xxx-zh-cn)。
为了更精细设置和管理OpenVPN路由器,您可能还需要用到SSH和SCP。
Secure Shell(SSH)是一种加密的网络传输协议,通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接。SSH最常见的用途是远程登录系统,并利用SSH来远程执行命令。
ssh user@host
安全复制协议( SCP ) 是一种在本地主机和远程主机之间或两台远程主机之间安全传输计算机文件的方法,它基于安全外壳协议(SSH) 。“SCP”通常指安全复制协议和程序本身。
SCP程序的语法类似于cp(copy)的语法:
scp LocalSourceFile user@remotehost:directory/TargetFile
WinSCP是一款免费开源的SCP客户端,运行于Windows系统下。WinSCP除了SCP,还支持SFTP、FTP、WebDAV、Amazon S3协议。
路由器复活
变砖是由于严重的配置错误、固件损坏或硬件故障,导致消费电子产品无法继续工作。
如果 Netgear 路由器变砖,可以通过 nmrpflash 强刷固件,nmrpflash 使用 Netgear 的 NMRP 协议 将新固件映像闪存到兼容设备。该工具支持 Linux、macOS、Windows 全平台(在 Windows 上需要数据包捕获和发送库 WinPcap 或 Npcap),且无需额外的 TTL 线,只需一根网线将路由器连接电脑即可。
以下是Netgear R6100的复活过程。
1、用网线连接路由器 LAN 口和计算机;
2、由于是在 Windows 上执行操作,下载并安装 WinPcap 或 Npcap;
3、下载解压并获得 nmrpflash.exe,并与适配Netgear R6100的OpenWRT固件openwrt-19.07.8-ar71xx-nand-r6100-ubi-factory.img放在同一目录,打开 CMD 命令提示符,切换到本目录,运行 nmrpflash -L 列出所有的网卡,会看到类似下面的提示:
x:\> nmrpflash.exe -L
net1 192.168.1.2 c0:de:fa:ce:01:23
net2 0.0.0.0 ca:fe:ba:be:45:67
wifi0 10.0.10.138 de:ad:be:ef:89:ab
确定哪个网络接口对应于连接到 Netgear 路由器的网络接口,如 net2,关闭路由器电源。
如不易确定网络接口,可打开“网络连接”,拔掉连接路由器的网线,把出现动态信息以外的网络连接都禁用后,再通过nmrpflash.exe -L
命令查询。
4、运行以下命令:
x:\> nmrpflash -i net2 -f openwrt-19.07.8-ar71xx-nand-r6100-ubi-factory.img
Waiting for Ethernet connection.
5、打开路由器电源。如果一切顺利,nmrpflash将继续打印消息:
Advertising NMRP server on net2 ... /
Received configuration request from fe:ed:1b:ad:f0:0d
Sending configuration: 10.164.183.252/24
Received upload request: filename 'firmware'.
Uploading openwrt-19.07.8-ar71xx-nand-r6100-ubi-factory.img ... OK (3539077 b)
Waiting for remote to respond.
……
Remote finished. Closing connection.
Reboot your device now.
Press any key to exit
如果出现连接故障提示,可以将本地ip地址设置为192.168.1.2,然后执行以下命令:
x:\>nmrpflash -i net2 -a 192.168.1.1 -f openwrt-19.07.8-ar71xx-nand-r6100-ubi-factory.img
6、重新启动路由器,设备复活。
注:对于以上方法不成功或者不适用 nmrpflash 的路由器型号,可使用通用的USB转TTL串口调试线 + PuTTY 刷新固件。
👍
楼主残忍的关闭了评论