正确的上网方式:软路由入门指南

  • A+
所属分类:安全闲碎

前言

对于程序员们来说,一台多功能的路由器是提升生产力的有力武器。

除了某些网站的加速之外,还可以在路由器上运行Frp/Ngrok、组建NAS、挂机BT下载/百度云下载等等。

这些功能,在普通的家用路由器上是无法实现的。要享受它们,就得使用 “软路由”了。

一般来说,“软路由”是特指将x86 PC或服务器通过特定软件实现路由功能。但本文的内容广泛一点。为了便于表达,我们暂且把所有可以运行自定义系统的路由器称为软路由吧。可以自行安装OpenWRT、DD-WRT的设备,我们都称为软路由。

本文来讨论一下软路由的系统、应用程序,还有常见的路由器硬件,尤其是近几年很火的“矿渣”路由器。

Part 1:基础知识

软路由是什么

路由器各位Freebufer应该非常熟悉了。提起这个,您的第一反应可能是TP-Link、腾达、水星等品牌的家用路由器。它们有一个特点:路由器的系统是由厂商基于Vxworks等系统,自行开发的嵌入式系统。一般来说,只能使用原厂的系统,而且功能不多。腾达的路由,要刷个水星的系统,是不可能的。

正确的上网方式:软路由入门指南

经典的TP-Link路由器系统

但是,有这么一类操作系统,由社区开发维护,可以支持多种硬件平台。也就是说,您可以在不同的路由器上,甚至x86 PC上运行它。最令人兴奋的是,这些系统上的应用程序也可以跨平台使用,而且应用程序非常丰富,提供了传统路由器无法企及的功能。

将一台路由器,“刷”上这一类操作系统,就变成了软路由。

常见的软路由系统

著名的软路由系统有OpenWRT、潘多拉、梅林(午餐肉)、DD-WRT、Tomato,还有国内较为著名的iKuai等。

OpenWRT应该是其中的佼佼者了,项目在2004年启动。曾经分支出LEDE,后又合并。它所支持的应用程序是上面这几种系统中最多的。而且硬件支持最为广泛,支持很多小众的芯片,添加新平台的支持也较为简单。

正确的上网方式:软路由入门指南

OpenWRT的Logo

笔者私以为OpenWRT是对开发者最友好,文档和支持最多的系统,因此,本文后面主要围绕着OpenWRT展开。

还值得一提的是iKuai,一个国产的软路由系统。它上面的软件非常少,而且只支持x86平台。但胜在操作简单,几乎不需要任何教程就能上手,如果您只是需要x86软路由强大的性能,不妨考虑一下。

正确的上网方式:软路由入门指南

iKuai固件

为什么要用软路由

软路由最著名的优点当然是前文提到的:可以安装各类自定义软件。

其中最多人使用的,当属科学上网。在国内由于某些原因,github等网站不能正常访问。对于程序员来说,在没有梯子的情况下,凡是涉及服务器在外网的下载、更新,都会令人痛苦不已。OpenWRT有非常强大的科学上网工具,而且全局无感知。在路由器上挂好后,PC、手机都可以随时访问外网,甚至连启动相关软件都不需要。

常见的应用程序还有去广告、远程下载、NAS、私人云盘之类的网络应用。例如在软路由上搭建BT下载服务器、搭建私人云、甚至部署php+mysql来搭建博客。而且,可以通过frp一类的服务将内网的应用转发到外网上,方便远程访问。正确的上网方式:软路由入门指南

OpenWrt的部分应用

事实上,对于熟练的开发者而言,软路由系统其实和Linux一样。很多软件都可以被交叉编译到路由器上。

例如,如果需要捕获APP的网络流量进行分析,一般需要自建代理服务器,然后修改手机的Wi-Fi设置实现截获通讯。但如果您使用的是软路由,OpenWRT系统上自带的TcpDump等一系列程序,可以帮助您直接抓包。

更有趣的是,OpenWRT上甚至还有AirCrack-ng套件和Reaver等用于渗透测试的工具。如果您路由器的网卡支持,甚至可以用路由器破解Wi-Fi网络加密。著名的Wi-Fi攻击工具:Wi-Fi大菠萝,事实上也就是一个特制的OpenWRT路由器。

正确的上网方式:软路由入门指南

OpenWRT上的AirCrack-ng套件

Part 2:硬件选择

软路由硬件的选择有大学问:不同的芯片性能相差巨大,不同的设计有会有不同的信号。很多时候并不是一分钱一分货,智商税的成分很大。本章我们来分析一下常见的路由器处理器和几种不同型号的路由器。

路由器的Flash、RAM大小是最容易看得到的数据,越大越好,这个没有过多的讨论价值。但是CPU就不一样了:厂商和型号众多,令人应接不暇。

我们先分析一下市面上主流的,有较好OpenWRT固件支持的路由器芯片。

厂商 芯片名 核心(个) 主频(MHz) 说明
联发科 MT7620 1 580 性能较差,且只支持百兆,不够搭建梯子。但二手的核心板、主板量大价优,适合折腾研究。
MT7628 1 580

MT7688 1 580

MT7621 2 880 双核全千兆,中端性能的高性价比之选
博通 BCM47189 1 900 较MT7621稍差
高通 IPQ4018/4019 4 700 矿渣路由器中的最常见四核
英特尔 N270 1核2线程 1600 英特尔的x86处理器。性能较强,且可以自由扩展内存、硬盘。可以运行ESXi甚至Windows系统。但是功耗发热略大。
D525 2核4线程 1800

D2550 2核4线程 1860

J1900 4核4线程 2000-2420

Atheros AR9331 1 400 Wi-Fi大菠萝的芯片,可以刷大菠萝固件
树莓派、香橙派之类的卡片电脑 2-4核,256M-4G内存 价格较低廉,可以做旁路由。但是往往网口性能较差。

以上并不是全部,只是笔者较为熟悉的芯片。

您可能已经发现,笔者较为熟悉的价位大概在50-200元左右。如果您需要一些高阶功能,如Wi-Fi 6、mesh组网等等,笔者太穷,相关的硬件鲜有接触。可能还得您自行查阅相关资料。

接下来我们讲讲现在比较常见的一些路由器。作为图拉丁吧驻Freebuf办公室的贴子,笔者最喜欢的当然是矿渣路由器。也就是前几年区块链很火的时候,那些厂商弄出来割韭菜的产品。

例如竞斗云,美其名曰电竞路由器,其实主要卖点是可以“挖矿”,获得现金收益。暴雷之后1500多元的路由器直接跌倒100元,韭菜们血本无归,最后的鸡毛由我们这些垃圾佬负责接盘。

您可以在闲鱼、转转、贴吧和论坛等地购买这些产品。如果是全新或者挖矿淘汰的,很多成色都非常新。

斐讯K2p

斐讯作为矿渣路由器的祖师爷(那个时候的套路还不是挖矿),当然要第一个介绍。K2P作为玩家最多的路由器之一,固件支持非常完善。硬件设计合理,无线信号好。缺点是价格略贵,而且由于某些原因,咸鱼下架了这个产品。

配置:MT7621AT 双核,128MB DDR3内存,16MB闪存,五千兆网口。

正确的上网方式:软路由入门指南

新路由 3

新3也是MT7621的主力军,存货量大,价格较低。还有个没有什么卵用的512M内存。但是质量一般,2.4G无线信号较差,有漏油的问题,拿到手可能要拆机。

配置:MT7621AT 双核,512MB DDR3内存,32MB闪存,五千兆网口,一个USB3.0正确的上网方式:软路由入门指南

极路由 B70

极路由是Freebuf的老朋友了,较高的可玩性和较低的价格,当年极1S的时候好多大佬发折腾的文章。

金属机身,有两个USB口,无线信号较好。比新3贵,但是我觉得比新3香,起码不用折腾。

配置:MT7621A 双核,256MB DDR3内存,128MB闪存,4千兆网口,一个USB3.0,一个USB2.0

正确的上网方式:软路由入门指南

小娱路由器

这玩意是个奇葩,没有Wi-Fi,只能当路由器,还得自己配一个AP。优点是存货量大,随时可以买到成色好的。而且C1/C5版本有SATA,可以折腾NAS。不过价格略高。

配置:MT7621A 双核,512MB DDR3内存,32MB闪存,5千兆网口,一个USB3.0.正确的上网方式:软路由入门指南

竞斗云2.0

上面几个全是联发科芯片的,再讲下去有厂商奸细的嫌疑。下面来讲个高通4核的。

竞斗云的外观,个人认为是这几款中最好的。而且内置IPQ4019四核处理器,性能家用绰绰有余。质量可以但是信号一般,据说有个批次还有暗病。

如果你喜欢折腾,有个好消息就是它有minipcie插槽,虽然是缺少电阻的。补齐后可以安装硬盘、4G网卡等等。

如果你不喜欢折腾,有个坏消息就是,它现在已经不能免拆机刷机了。亲测之前的方法全部失效,一定要拆机通过ttl接口刷机。没有相关经验的话,建议买刷好了的。

配置:IPQ4019四核,512MB DDR2内存,128MB闪存,5千兆网口,1个USB2.0(虽然是蓝色,但是2.0)

正确的上网方式:软路由入门指南

X86架构的软路由

X86架构的软路由,无疑是性能之王,理论上性能无上限。不仅CPU性能强,内存和硬盘可以自己添加。可以同时安装多块硬盘,组建NAS。而且折腾简单,不用考虑bootloader怎么刷的问题。这一类软路由都不带无线,需要搭配AP使用。

低端的X86软路由。D525之类的凌动芯片,可以找到很多小主机。比如银行淘汰的瘦客户端。注意挑选双千兆网口的,单网口或者百兆就没意思了。

高端的,可以用i3、i5做软路由,很多网吧甚至用的双路E5。这些可以不单单做路由器了。装上ESXi虚拟化,可以在一台机子上配置OpenWRT、NAS等等服务,充分利用性能。

正确的上网方式:软路由入门指南

D525小主机

树莓派一类的卡片电脑

树莓派、香橙派等卡片电脑,也是可以刷OpenWRT的。而且CPU性能和内存大小比较优异。笔者之前做项目,往OpenWRT上移植程序的时候,用树莓派4装OpenWRT环境编译程序,比MT7628开发板什么舒服不要太多。

但真要当路由器,它们是不大合适的:绝大多数卡片电脑的网口比较差,很多是单口百兆。用USB网卡也无济于事,因为USB和网口的带宽是共享的。树莓派4的设计好了很多,但除此之外,笔者没有见过适合当路由器的卡片电脑。

如果要使用它们,一般的思路是用单网口做旁路由:装上OpenWRT后,关闭树莓派的DHCP,将它连接到主路由器上。需要使用软路由的设备,把网关设置成树莓派的IP。即可实现通过OpenWRT上网,流量会经过软路由再转发给主路由。当然,也可以关闭主路由的DHCP,开启树莓派的DHCP,可实现默认通过树莓派上网。

如果是搭建NAS、ftp等服务器的话还可以。要用于上网的话,流入流出的流量都挤一个百兆网口,着实有点可怜。

正确的上网方式:软路由入门指南

香橙派Zero

Part3:OpenWRT刷机入门

折腾一台软路由的第一步,当然是把它刷上软路由系统。也就是OpenWRT。

Bootloader

路由器刷系统和电脑装系统不太一样。给电脑装系统的时候,进入主板的BIOS或者UFEI中,调整启动顺序,从带有系统安装镜像的U盘启动即可。

但是路由器的“BIOS”,也就是负责在上电后负责加载和引导系统的程序,称为Bootloader。可不能像计算机的BIOS那样随意设置。为了更方便的刷机,同时为了在系统损坏时可以进入Bootloader重新刷机,我们第一步要将路由器刷上第三方Bootloader,俗称“不死”(因为刷坏了系统也能重新刷)。

常见的Bootloader有Uboot、Breed、OpBoot等等,玩家多的路由器型号,在网上很容易找到定制的Bootloader。正确的上网方式:软路由入门指南

Breed

至于刷入的方法,每台机器各有不同。一言蔽之就是要通过漏洞获得路由器的Root Shell,然后解锁Bootloader区并且刷入。这个漏洞可能是Web管理页面的命令执行,也可能要拆开机器外壳,连接PCB上的UART调试串口。

玩家多的路由器大多有前人栽树,网上可以找到教程或者工具。当然,最简单的方法,还是找淘宝卖家帮忙刷好。这一部分因为每台路由器的方法都不一样,笔者就不在此叙述了。·

OpenWRT固件的类型

刷好了Bootloader,就可以刷入OpenWRT系统了。

OpenWRT的固件可以在网上下载,也可以选择自行编译。在网上搜索一下,应该可以找到大佬们自编译的镜像,一般都内置了相当丰富的应用。

如果比较冷门的路由器型号,可能会找不到,这个时候就要考虑自行编译或者使用官方镜像了。不过官方镜像的话,内置的软件非常少,web界面都需要手工安装,要通过telnet才能管理。不用担心,安装软件和编译固件后文都有教学。

OpenWRT固件的名字可能像是这样:

asus_rt-ac58u-squashfs-sysupgrade.bin

其中的asus_rt-ac58u代表固件适用的硬件型号,即华硕的ac58u路由器。

squashfs代表固件区的文件系统,请注意这里仅仅是固件区的,所以即使是squashfs的镜像,也是可以保存对系统的更改的。Squashfs因为高压缩率和可减少Flash芯片擦写的优点,是最为常见的文件系统。

sysupgrade代表更新包。OpenWRT常见的包类型有sysupgrade和factory。后者比前者更加完整,包含了Flash中的固件区和后面的内容,前者只有固件区内容。因此前者刷机的时候可以选择不刷新系统配置。但在比较底层的途径刷机,如TTL刷机时,就只能用factory包了。

刷写系统

在Bootloader和OpenWRT的Web界面都可以刷机。这一步不需要敲什么命令,一般都是连上路由器,打开对应的页面,上传固件即可。

在OpenWRT的Web界面-系统-备份/升级,可以上传sysupgrade包更新固件。

正确的上网方式:软路由入门指南

通过Bootloader刷机,一般要在关机状态下,按住路由器的reset按钮,然后插电开机,数十秒后松开,连上电脑后访问http://192.168.1.1/。即可上传固件刷机了。

Part4:常用设置与软件管理

将电脑或者手机连接到路由器,在浏览器中访问http://192.168.1.1,不出意外的话,OpenWRT低调沉稳而不失霸气的管理页面已经展现在了你的面前。

使用默认用户名root,默认密码password,登录管理页面,就可以看到OpenWRT的所有菜单了。

系统状态

在状态页面,可以查看到系统的配置、信息、占用率和已连接的DHCP客户端。正确的上网方式:软路由入门指南

在状态-实时信息页面,可以看到更详细的CPU占用率等数据。纵轴是占用率,每个CPU线程的最大值为1。例如笔者这里是4核的路由器,最大值应该是4,图中平均占用率在1.7左右,也就是不到50%。如果15分钟负载超过了路由器的核心数,那说明这台路由器难以支撑现在的网络需求。特别是开启了梯子,对性能要求会比较大,如果经常负载过高,就要考虑换更好的路由器了。

正确的上网方式:软路由入门指南

网络设置

在网络菜单下,可以调整各项网络设置。

一般来说,家用路由器需要进入网络-接口-WAN的配置下,配置PPPoE拨号。正确的上网方式:软路由入门指南

再进入网络-无线,修改Wi-Fi的SSID和密码。其分别在接口配置的ESSID一栏和无线安全选项卡中。

正确的上网方式:软路由入门指南

OpenWRT的功能非常丰富,对于新手来说可能要研究一下。一旦您上手了,OpenWRT可以满足您对网络的所有需求!

Web界面管理软件

在OpenWRT的Web管理界面,系统-软件包页面中,您可以配置系统的软件包。卸载已安装的软件包,或者安装新的。

在使用在线软件包之前,需要更新软件包列表才可正常搜索。如果您的网络环境不佳,使用官方软件源可能会很慢,可以在 配置 页面的发行版软件源处更换国内的镜像源。

例如,使用北京外国语大学的镜像,则将原配置文件中的” http://downloads.openwrt.org/”,修改为” https://mirrors.bfsu.edu.cn/openwrt/”。修改后如图所示:

正确的上网方式:软路由入门指南

接下来回到 动作 页面,点击 更新软件包 按钮,即可更新软件包列表。稍作等待后,您就可以在过滤器中搜索并安装需要的软件包了。

正确的上网方式:软路由入门指南

SSH中管理软件

通过Web界面管理软件,虽然简单,但是只能使用官方软件源的包。如果您要安装一些第三方软件,或者是自己编译的软件,就要用SSH手动安装了。

OpenWRT内置了OPKG软件管理器,和我们熟悉的apt、yum有点像,它也可以安装、卸载软件包。OPKG的软件安装包,是.ipk格式的。

这里我们以luci-app-commands_git-20.194.72626-2aaac38_all.ipk为例,演示通过SSH安装软件包。

首先需要使用SCP将安装包上传到路由器上。SSH的用户名和密码与Web界面相同,默认为root:password。在Linux上可以直接使用SCP命令,在Windows上可以使用WinSCP。

正确的上网方式:软路由入门指南

登录后将安装包上传到路由器上,接下来使用Putty或者其它SSH软件登录。通过以下命令安装:“opkg install 软件包路径”:

正确的上网方式:软路由入门指南

如图所示,就成功安装了一个软件包。

OPKG对比起常用的包管理器,比较“简洁”,对依赖的处理不是很好,如果出现缺少依赖文件,则可能需要您一个个的手动安装。如果出现包或者文件的冲突,则可能需要添加“-nodeps”参数强制安装。

Part5:常用软件介绍

OpenWRT的软件包非常之多。本章介绍一些笔者常用的软件。

如果软件包的名字有luci的前缀,这说明它们是依赖在OpenWRT的Web界面下的(luci就是OpenWRT的Web管理界面)。换句话说,就是有图形界面,比较方便使用。

luci-app-filetransfer

用于在Web页面上传并安装ipk软件包,可以省去使用SSH的麻烦。同时提供了从路由器上下载文件的功能。

不过要是安装过程稍微复杂一点的话,还是得老老实实用SSH。

luci-app-ssr-plus

某神奇软件,可以实现全内网无感知科学上网。它不仅支持原生酸酸乳,还可以支持v2和trojan等新技术。可以配置多种白名单、黑名单,自动更新网站列表。比常见的客户端高到不知道哪里去了,一个软件满足你的所有需求!

luci-app-aria2

著名的下载工具,安装了它之后就可以在OpenWRT上挂着下载任务了,而不需要把电脑开机挂着下载。不过当然得有U盘或者硬盘,才能使用它。

luci-app-frpc

内网穿透工具,可以转发内网的远程桌面、FTP、Web服务等到外网。现在很多家用宽带已经没有公网IP了,在公网的服务器上搭建frp,然后在内网通过frpc进行外网穿透是很好的解决方法。OpenWRT还支持Ngrok,如果有公网IP也可以使用DDNS。笔者使用frp转发远程桌面,很香。

luci-app-unblockmusic

网易云音乐辅助工具,可以用QQ音乐等的链接替换无版权歌曲,实现无视版权限制。

luci-app-samba

samba共享工具,可以共享路由器上的目录。配合U盘可以实现共享文件。比如放点电影电视剧,手机上用es文件浏览器之类的工具可以直接在线播放。

luci-app-vsftpd

ftp服务器,同上,也是文件共享工具。

luci-app-vlmcsd

KMS服务器,用于激活Windows和Office。

Web服务器套件

OpenWRT上可以安装nginx、php、mysql等组件,但是对路由器的性能要求会比较高。如果使用的是比较高级的设备,可以在上面配置这三个软件包,并部署Web服务。

例如部署KodExplorer,就可以构建一个私人云平台了。在线管理文件、处理简单的工作都很方便。

附加章节:OpenWRT的编译

在文章的最后,我们增加一章,简述一下OpenWRT的编译。

一般来说,用编译好的固件是最方便的。不过,当遇到一些比较小众的硬件平台,或者需要自己添加一些应用程序的时候,就只能自己编译了。而且自己编译的固件,可以自己选择需要的软件包,只添加想要的功能,节约空间和性能。同时也可以保证软件包最新。

手动编译固件是高级玩家的必备技能,而且OpenWRT的编译机制已经相当成熟了,编译并不复杂。一般来说,只要网络没有问题,都能一次成功。本章我们来简述一下编译OpenWRT的流程。

构建编译环境

编译OpenWrt需要在Linux环境中进行,物理主机或虚拟机中均可。不推荐使用Windows的Linux子系统进行编译。

笔者采用的是在VirtualBox上安装Ubuntu操作系统。

首先我们去Ubuntu的官网下载桌面版的Ubuntu。笔者使用的版本是18.04,一般而言系统版本不会影响编译。

地址:https://ubuntu.com/download/desktop

同时我们还需要VirtualBox虚拟机,可以在此处下载:

https://www.virtualbox.org/wiki/Downloads

安装完VirtualBox后,配置一个新的虚拟机。请按照您机器的配置调整虚拟机的CPU、内存大小。

请注意,编译OpenWrt所需的硬盘空间较大,考虑到扩容虚拟机硬盘镜像较为复杂,推荐在创建虚拟机时就配置大于100G的硬盘空间。

正确的上网方式:软路由入门指南

安装Ubuntu的过程并不复杂,并且网上有大量的详细教程,这里就不再赘述。

Ubuntu完成后修改软件源为国内的服务器以加快软件包的下载速度。

在应用菜单中运行“Software & Updates”,修改其中的“Download From”到CN的服务器。笔者这里选择了阿里云的镜像服务器。

正确的上网方式:软路由入门指南

接下来我们打开终端,使用 “sudo apt-get update” 命令更新软件列表。sudo的密码为Ubuntu安装时填写的密码。

编译过程所需的各项软件,可以通过以下命令一键安装:

sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3.5 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler g++-multilib linux-libc-dev:i386

到此为止,我们配置好了编译OpenWrt所需要的系统环境。

配置OpenWrt源码

我们开始下载OpenWrt源码。新建一个目录,并修改它的权限为777:

cd ~
mkdir openwrt
sudo chmod 777 openwrt
cd openwrt

接下来要下载OpenWRT的源码,这里强烈推荐使用国人lean修改的版本。软件丰富,且更新及时。

git clone https://github.com/coolsnowwolf/lede.git
cd openwrt

OpenWrt包含了称之为feeds的一系列第三方软件包,我们还需要更新它们,更新feeds的命令如下:

./scripts/feeds update -a
./scripts/feeds install -a

配置编译参数

这一切结束后,我们可以开始编译了。

我们先要运行 make menuconfig命令调整编译的参数。首先是目标的硬件架构。OpenWRT支持非常之多的硬件架构,我们以X86为例。

操作方法如下:

输入 make menuconfig 进入编译选项。通过上下左右和回车键可以在菜单中跳转。

选择Target System -> x86

选择Subtarget -> x64 64bit

正确的上网方式:软路由入门指南

选择软件

在菜单中有非常多的软件可供安装,LuCI-Applications菜单下的软件是最为常用的,它们都有Web界面,易于使用。

我们进入这个菜单下,按空格键可以调整软件的状态,m代表编译但不加入固件,*代表编译且加入固件。每选定一个软件,OpenWRT会自动添加所有依赖文件。第一次编译时不推荐添加太多软件,可能会产生依赖文件的冲突。

作为演示,我们这里添加SSR-Plus软件,同时还添加v2和trojan的支持。

正确的上网方式:软路由入门指南

最后保存并退出配置菜单。

开始编译

到现在为止,我们已经完成了所有配置,可以开始编译了。

由于OpenWrt项目中部分的软件包的下载服务器在国外,受网络环境的限制,可能会造成下载速度很慢,或者下载失败的情况,最好用路由器挂上全局科学上网。如果不能挂全局,就要手动设置curl、git、wget的代理设置了,ubuntu的全局代理其实没用。(所以有软路由是真的香)

编译的命令是:

make V=s

输入这个命令之后,OpenWrt就会开始自动编译了,不出意外的话,小睡一会,就可以得到系统镜像了。

顺带一提,通过增加编译时的线程数,可以加快编译的速度,命令如下:

make V=s -j4

其中的4代表使用4线程,读者可以依据自己电脑的配置进行调整。

不过,第一次编译时,不推荐使用多线程,可能会导致依赖文件的编译顺序出错,造成编译失败。

结果

编译结束后,在 /bin/targets/目标硬件架构/ 目录下可以找到编译生成的系统镜像。在该目录下的packages文件夹可以找到所有软件的安装包。

正确的上网方式:软路由入门指南

正确的上网方式:软路由入门指南

精彩推荐





正确的上网方式:软路由入门指南
正确的上网方式:软路由入门指南正确的上网方式:软路由入门指南

正确的上网方式:软路由入门指南正确的上网方式:软路由入门指南正确的上网方式:软路由入门指南

正确的上网方式:软路由入门指南

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: