路由器 – 技术小站 http://bak.iytc.net/wordpress 随意记录 Thu, 15 Jan 2026 03:33:47 +0000 zh-CN hourly 1 https://wordpress.org/?v=5.0.3 openwrt路由器网络安全防护 http://bak.iytc.net/wordpress/?p=7360 http://bak.iytc.net/wordpress/?p=7360#respond Thu, 15 Jan 2026 01:51:23 +0000 http://iytc.net/wordpress/?p=7360 查看openwrt系统日志时,偶然发现有很多尝试登录ssh的攻击

登录地址都为路由器地址,由于ssh登录只对lan开放,因此外网想登录只能通过frp内网穿透进来,登录的地址就是路由器的地址

 

查看frp服务器的日志,发现了大量的登录请求

可以看出几分钟内就有几次不同ip地址的登录请求

frp使你的路由器暴露在公网,给攻击者有可乘之机

看看下面这些大量的攻击请求

如果攻击频繁,还可能会导致路由器内存溢出,出现莫名其妙的故障,如无线时断时续、死机等现象。

查看这些攻击ip地址

都是一些惯犯

 

防护措施:

一、路由器上防护

尽量不要把ssh暴露在公网,关闭frp中的ssh映射,只留必要的web映射

使用ipv6代替frp进行远程访问,现在运营商一般都支持ipv6,通过动态dns将自己路由器的ipv6地址自动上报

然后要是运营商封闭80端口或有些路由器应用不支持ipv6,可用网络页面中的socat进行映射,将ipv6地址映射到ipv4地址

在远程可以通过动态域名加监听端口的方式来访问路由器的内部端口

 

二、frp服务器上防护

在服务器上安装failban,分析frp的日志,对异常的ssh和web登录进行统计(比如一分钟有多少次请求),然后自动进行禁止访问

简单一点,可以直接将你自己本身常用的公网ip地址段添加到对应端口的通行白名单,这个地址段之外的计算机不能访问此端口

查询本机公网ip地址的方法很简单,在百度输入“ip”进行搜索就会显示你的公网ip(注意不是本机ip,本机ip一般为局域网地址)

在主机上还有一种方法被验证有效,攻击者其实针对的是vps的ssh登录端口,路由器的ssh只是池鱼,因此对主机的ssh端口进行防护,将攻击IP自动拉黑,这样同时也保护了路由器,在宝塔的软件商店先安装fail2ban,然后打开ssh的安全防护即可:

 

 

 

]]>
http://bak.iytc.net/wordpress/?feed=rss2&p=7360 0
HK1 BOX X3刷OpenWrt http://bak.iytc.net/wordpress/?p=6925 http://bak.iytc.net/wordpress/?p=6925#comments Mon, 20 Nov 2023 09:49:45 +0000 http://iytc.net/wordpress/?p=6925 网上淘了一个HDMI接口损坏的HK1 BOX X3,S905X3芯片,¥50,可以刷机当旁路路由器用,性能秒杀N1

 

X3和X4对比

一模两样

去这里下载固件

https://www.right.com.cn/forum/thread-4076037-1-1.html

下载后需解压,我刷的是这个固件

openwrt_s905x3_multi_R23.11.09_k6.1.62-flippy-86+.img

用win32diskimager写入U盘

修改U盘根目录下的uEnv.txt文件:

再把U盘插入盒子的USB接口

找根牙签插进耳机孔按住复位键, 再插入电源 ,大概十秒钟后放开

稍等一段时间,用网线连接计算机和盒子,然后网页访问192.168.1.1即可,用户名root,密码password

将固件写入emmc:

ssh登录盒子,执行如下命令

cd  /root   &&   ./install-to-emmc.sh

会让你选择盒子类型,选HK1 BOX(53),然后还有文件类型选择(ext4)等,刷好后拔出U盘,断电重启即可

]]>
http://bak.iytc.net/wordpress/?feed=rss2&p=6925 2
高性价比带USB3.0的WIFI6路由器RAX3000M http://bak.iytc.net/wordpress/?p=6857 http://bak.iytc.net/wordpress/?p=6857#comments Sat, 11 Nov 2023 02:51:34 +0000 http://iytc.net/wordpress/?p=6857 好久没玩路由器了,在网上逛逛,发现了这款中国移动的WIFI6定制路由器,带512M内存和USB3.0,与newifi3的配置差不多,但无线应该比newifi3强一大截,目前已经可以刷机。咸鱼售价150左右。

外观小巧

接口够用

参数配置:

这个配置是nand的普通版本,还有emmc的算力版本,固件及刷机方式不同

推荐lean同学的刷机固件:

nand版:

https://www.right.com.cn/forum/thread-8303809-1-1.html

emmc版:

https://www.right.com.cn/forum/thread-8306999-1-1.html

 

散热问题:

路由器上部封闭,散热主要靠底部被动散热,目前室温28度左右,竖着摆放温度为68度(空载运行一晚上),加了一个USB的外部风扇对着底部吹,温度降到44度:

usb风扇8元,路由器放上去即可:

如果嫌风扇噪声大,可以几块钱买个调速模块,在噪声和温度之间寻找平衡

无线信号还是比较强劲,同一位置5G信号强度要好于K3

5G无线连接后USB3.0读取速度:

其他信息:

配置文件的全备份及还原:

用openwrt中的备份和还原只会针对配置文件的修改,如果你安装了新的ipk或修改了其他非etc目录的文件,备份和恢复将不起作用,正确的全备份和恢复是针对/overlay目录进行

备份所有修改数据:

tar zcvf /tmp/backup.tar.gz /overlay/upper

恢复所有用户数据

tar x -zvC / -f /tmp/backup.tar.gz

 

补充:

散热用外置的USB风扇已经差不多了,如果嫌碍眼,可以考虑内置小风扇

先买一个5v供电的侧吹3010(30*30*10mm)风扇,然后拆机

https://www.bilibili.com/video/BV1294y1Y7D5

注意标签下有两颗螺丝。

放些散热片和小风扇,小风扇的供电可以从USB口取,可以内部焊接或把电源线引出,接外面的USB插头,插入USB口即可,不用焊接。

机器倒置摆放更利于散热

空载运行20分钟的温度为50度(室温26度)

 

另此固件支持IPV6,你需要先在光猫开启IPV6桥接,路由器PPPOE拨号,登录光猫(地址)管理地址(我的是192.168.3.1,一般是192.168.1.1,可连接光猫wifi后进行修改,以免和路由器地址冲突,计算机要通过路由器访问光猫,可以为wan口增加一个同网段IP--用命令“ifconfig eth1 192.168.3.2 netmask 255.255.255.0 ”):

http://192.168.3.1:8080/main.html

将INTERNET_B连接的连接模式选“桥接”,IP模式选择“IPV4&IPV6”,路由器固件默认设置即可:

然后用ping命令查看是否成功:

IPV6目前主要的用处是使路由器有公网的IPV6地址,可以不用内网穿透,利用ddns和socat的端口映射来实现路由器的远程访问。

对于内网设备来说,开启IPV6可能会导致一些网站访问问题,你可以禁止内网设备的IPV6地址分配和解析:

禁止IPV6解析

在LAN接口IPV6地址分配

 

散热方案更新:

还是采用USB外置风扇,在USB风扇的负极串接一个50度的温控开关,将其贴在路由器的散热铁片上,超过温度则自动打开风扇,低于温度自动关闭:

实测CPU温度曲线:

CPU温度在53-68之间变化,上升时间(风扇关闭时间)30分钟左右,下降时间(风扇开启时间)6分钟左右。即实现路由器的温控,又延长了风扇寿命并省电。

将统计时间加长,会发现到了晚上温度上升的速率变缓,这是因为晚上气温相对白天较低:

]]>
http://bak.iytc.net/wordpress/?feed=rss2&p=6857 9
京东云无线宝试用、拆机及添加TTL http://bak.iytc.net/wordpress/?p=6019 http://bak.iytc.net/wordpress/?p=6019#comments Mon, 27 Jul 2020 03:10:56 +0000 http://iytc.net/wordpress/?p=6019 一、试用

入手了一台京东云无线宝128GB存储 尊享版(购买链接https://u.jd.com/ugIg3cY

还有32G尊享版(https://u.jd.com/u4IYI11)及64G加速版(https://u.jd.com/uBI2RhN),目前有预存优惠活动。

 

到手后,USB加了一个闲置的320G HDD硬盘,内置和外置都设置为边缘计算。

注意:128G版本可以不插硬盘,缺省运行A插件

网络环境为广东电信200Mbps下行,40Mbps上行,一级路由为K3,无线宝作为二级路由接入,在K3上启动upnp,开启DMZ指向无线宝的IP地址

 

按照说明,缺省运行的为A插件,可以在APP中“意见反馈”页面申请A+B插件,月底推送插件(目前只支持128尊享版切换插件)。

接入网络大概30个小时后,产生第一天的京豆收入64,第二天74

一天的流量大概80G左右,大部分为上传流量

第三天流量120多G,全天流量比较平稳,京豆收入135,折合人民币1.35元

29日推送A+B插件,据说比A插件高很多,要求联通/电信宽带、有公网地址,到时看看效果

 

二、拆机

撕开底座上两个胶条,会有3个螺丝,拧下螺丝

撬开底座,这一步比较困难,我是先用镊子把外壳顶开,再用撬棍撬开:

打开底盖后,再拧下4颗螺丝,并拔下下图中的插头,就可以拔出底板

三、接TTL

找到TTL位置,由于空间有限,我没有用插针,而是直接焊上去:

TTL线可以从上面板引出:

接上TTL模块,可以用普通USB转TTL线(接3根线,不要接电源线),我直接用了TTL蓝牙模块(接4根线,蓝牙模块由TTL供电),注意TTL线供电电压为3.3V

计算机搜索配对蓝牙模块,然后用软件打开蓝牙对应的串口(在设备管理器中找)即可

波特率设置为115200

FLASH分区信息

如果按住复位键进行重启,设备会进入tftp自动升级状态,服务器地址为10.10.10.10,加载文件名HaiRecovery.himg

 

]]>
http://bak.iytc.net/wordpress/?feed=rss2&p=6019 6
可赚京豆的京东云无线宝路由器及其固件分析 http://bak.iytc.net/wordpress/?p=5994 http://bak.iytc.net/wordpress/?p=5994#comments Wed, 22 Jul 2020 08:45:53 +0000 http://iytc.net/wordpress/?p=5994 京东云无线宝路由器

内置芯片方案:MT7621A + MT7603EN + MT7615N,和K2P类似,512MB RAM、32MB ROM ,自带32G/64G/128G emmc内部存储(官方号称寿命17年)。支持802.11ac wave2协议,MU-MIMO技术,双频并发速度最高2100Mbps(300Mbps+1733Mbps),系统固件基于OpenWRT开发。

有三个规格:
轻NAS网盘 远程下载 128GB存储 尊享版
——————————————
京东价: ¥399.00
抢购链接: https://u.jd.com/ugIg3cY

轻NAS网盘 远程下载 32GB存储 尊享版
——————————————
京东价: ¥299.00
抢购链接: https://u.jd.com/u4IYI11

64G加速版
——————————————
京东价: ¥209.00
抢购链接: https://u.jd.com/uBI2RhN

三个版本的区别如下:

根据目前大家反馈的收益情况,一天大概在100积分左右,折换成人民币1元,因此如果按目前收益,回本在一年左右

固件目录结构:

web管理的前端采用d2-admin(https://github.com/d2-projects/d2-admin),后端采用nginx+lua


前端代码在www目录,js代码占了绝大部分:

后端配置文件/etc/nginx/nginx.conf及/etc/nginx/conf.d目录:

后端调用url路径为/api/*,配置如下:



主页面:

固件中的lua文件在/usr/lib/lua目录,不是以源码格式提供,而是进行了编译:

Lua有一种预编译机制,能够把文本代码预编译成Bytecode/Opcode 提高解析、执行速度,降低内存占用

反编译参考:
https://blog.ihipop.info/2018/05/5110.html
https://github.com/HandsomeYingyan/luadec-openwrt
编译过程:

#安装依赖
sudo apt install libncurses-dev libreadline-dev
#获得luadec源码
git clone https://github.com/viruscamp/luadec
cd luadec
git submodule update --init lua-5.1
#打补丁
ref=master
patch_dir=patches.$ref
mkdir $patch_dir && cd $patch_dir
#如下命令需要grep支持pcre正则,如果不支持,请自己手动处理把。 
patchs=$(curl -sSL -H 'Accept: application/vnd.github.v3+json' 'https://api.github.com/repos/openwrt/openwrt/contents/package/utils/lua/patches?ref='"$ref" |grep -oP 'name\"\s*:\s*\".*\.patch' |grep -oP '\d+.*\.patch')
#下载补丁文件
for p in $patchs;do  
wget 'https://github.com/openwrt-mirror/openwrt/raw/'"$ref"'/package/utils/lua/patches/'${p}  -O $p; 
done
cd ../lua-5.1
#打上补丁
#----------------------------------
打补丁后需修改lua-5.1/src/Makefile
#USE_READLINE=1
 +PKG_VERSION = 5.1.5
 
  -CFLAGS= -O2 -Wall $(MYCFLAGS)
  +CFLAGS= -fPIC -O2 -Wall $(MYCFLAGS)
#---------------------------------
for i in ../${patch_dir}/*.patch; do patch -p1 <$i ; done
make linux
export LD_LIBRARY_PATH=`pwd`/src/
cd ../luadec
make LUAVER=5.1

按上述方法编译出来的luadec【点此下载】可以反汇编其他openwrt固件(dreambox)的汇编文件,但是反汇编此固件失败,提示:
./luadec: guide.lua: bad code in precompiled chunk

。。。未完待续

]]>
http://bak.iytc.net/wordpress/?feed=rss2&p=5994 1
3元解决斐讯N1盒子的开关机问题 http://bak.iytc.net/wordpress/?p=5855 http://bak.iytc.net/wordpress/?p=5855#comments Wed, 25 Mar 2020 10:17:41 +0000 http://iytc.net/wordpress/?p=5855 N1刷了当电视盒子用,用山寨小米遥控可以控制
N1

小米遥控

但在使用中发现一些问题,比如有时关机后遥控器无法开机、有时关机变成重启

为彻底解决此问题,用了一个5V的继电器,通过电视机的USB插口来控制N1的电源,当电视机开机时,USB上电,继电器导通,自动接通N1电源,电视机关机时,USB断电,自动断开N1电源

拼多多或淘宝上3元一个包邮的5V继电器

步骤:
1、找一根废弃的USB线剪断,里面的红色线接继电器模块的DC+,黑色线接继电器模块的DC-

2、将N1的电源线拨开,将红色线剪断,然后两头分别接继电器模块的NO和COM

3、将继电器模块的DC+和IN口用一根电线短接

4、USB线插入电视机USB接口,N1电源线插入N1电源接口

搞定!

实现效果:
电视开机,N1自动开机,电视关机,N1自动关机。

另外,这样改造后,可以完全用手机充当遥控器而不需要蓝牙遥控器,只需在手机上安装悟空遥控器然后推送给N1安装即可

]]>
http://bak.iytc.net/wordpress/?feed=rss2&p=5855 5
路由器WEB安全实战-漏洞注入 http://bak.iytc.net/wordpress/?p=5188 http://bak.iytc.net/wordpress/?p=5188#comments Mon, 08 Apr 2019 07:49:37 +0000 http://iytc.net/wordpress/?p=5188 一、常用的WEB服务端注入
一般来说,WEB注入的对象是网站,常用的是SQL注入和代码注入。其本质是把用户输入的数据当做代码来执行,主要原因是设计时忽略了数据检查或违背了数据与代码分离原则,其发生的两个条件:
1、用户可以控制数据输入;
2、用户输入的数据可以拼接代码,把数据当做代码执行了。

【SQL注入】
$username = $_POST['username'];
$sql = "select * from usertable where username="."'".$username."'"

正常情况下用户输入 ‘Tom’ ,sql为
"select * from usertable where username='Tom'";
但如果用户输入 “Tom' ; drop table usertable--”,sql如下:
"select * from usertable where username='Tom';drop table usertable--";
如果我们的服务端代码,数据库权限没做任何处理,那么结果就是导致数据库表单被删除。
防御SQL注入的手段有:输入数据合法性检测、使用预编译语句、使用安全函数

【代码注入】
代码注入与命令注入都是由一些不安全函数或方法引起的如:eval()、system()
$var = 'varname';
$k = $_GET['tag'];
eval("/$var = $k;");

攻击者可以通过下面Payload实施代码注入:
/index.php?tag=1;phpinfo()
又比如 system()这个函数,可以通过代码注入导致命令注入
$error =system('cat '.$_GET['page_id'],$return_var);
echo $error;

攻击者通过index.php?page_id=loquesea;ls利用system函数执行自己想要的系统命令。

防御对抗代码注入,命令注入,需要禁用一些像eval(),system()等可以执行系统命令的函数,必须要用就需要对用户输入的数据进行严密的检查。

二、路由器WEB注入
路由器WEB注入与上面的代码注入原理类似,要进行注入,首先要找到注入点,我们需要先找到这些不安全的函数调用

基于openwrt路由器的WEB服务一般用lua语言进行控制,不安全的函数有luci.sys.call、luci.util.exec、os.execute等,通过这些函数,lua语言可以直接调用系统执行任何命令

我们首先需要搜索所有调用这些函数的点

然后需要对这些调用点进行逐个分析,先排除那些没有参数传入的点,对有参数传入的查看是否有完备的检查
比如上面红框处的Parent_ctrl_plt.lua 有一个luci.sys.call(cmd)的带参数的调用,我们看看它的源码:

cmd的参数来源于字符拼接,传入的拼接参数是源MAC地址,而且源码中没有对源MAC地址进行合法性检测,因此可以利用此漏洞来执行任何代码
漏洞利用参考:
https://www.right.com.cn/forum/thread-318971-1-1.html

修复此漏洞的方法,就是对源MAC地址做合法性检测

怎么样,寻找WEB漏洞就是这么简单!

颤抖吧,码农们!你们就是薄冰上的行者,稍有不慎就会跌入深渊,一起共勉吧!

]]>
http://bak.iytc.net/wordpress/?feed=rss2&p=5188 13
路由器DDNS动态域名解析教程 http://bak.iytc.net/wordpress/?p=5030 http://bak.iytc.net/wordpress/?p=5030#comments Tue, 15 Jan 2019 12:22:58 +0000 http://iytc.net/wordpress/?p=5030 【路由器实现远程访问的方法】
1、如果你的路由器有公网IP,可以用ddns来实现远程访问
2、如果你的路由器没有公网IP,可以用frp进行内网穿透来实现远程访问

判断是否是公网IP的方法:
1)查看路由器状态页面,记录下路由器获得的IP地址

2)访问百度,搜索"ip",会显示你的ip地址

比较上面两个ip地址,如果一致,则表示是公网IP,如果不一致,则是私网IP

【ddns使用】
我们以“公云”为例来介绍ddns使用过程
1、申请ddns账号
访问网站:
http://www.pubyun.com/
点击首页的注册,填入相关信息:

注册后,进入邮箱点击链接激活账号,并验证手机

2、创建动态域名
登陆注册的公云账号,创建一个动态域名

3、路由器设置
进入路由器,设置ddns

再打开远程管理

然后你就可以通过动态域名加端口号来访问和管理你的路由器
比如上例中可通过如下网址来远程访问路由器
14

【frp使用】
如果你的路由器没有公网IP,可以用frp进行内网穿透来实现远程访问
frp的使用方法可以参考:
14

]]>
http://bak.iytc.net/wordpress/?feed=rss2&p=5030 21
斐讯官改悟空M1及WIFI插座DC1控制说明 http://bak.iytc.net/wordpress/?p=4925 http://bak.iytc.net/wordpress/?p=4925#comments Fri, 21 Dec 2018 23:36:38 +0000 http://www.iytc.net/wordpress/?p=4925 由于斐讯服务器陆续关闭,通过APP已经无法控制斐讯的智能设备,比如M1和DC1,因此在最新斐讯官改中集成了这些智能设备的控制,本文对其使用进行说明

1、首次启用注意事项
在启用前,先确保你的M1或DC1正确连接上了WIFI(通过手机APP来配置)
在终端管理中应该可以看到设备:

首次启用先打开官改WEB页面的控制开关,然后复位(断电复位)一次M1或DC1即可。

首次启用时会自动对官方服务器地址进行重定向,具体修改内容是在hosts文件中自动添加记录,将官方服务器地址定向到路由器

需注意事项:
1)由于智能设备会缓存dns,因此在首次启用后需重启一次M1或DC1

2)官改路由器必须为主路由器,如果不是,需在你的主路由器上手动添加hosts记录,将官方服务器地址定向到官改路由器的IP地址
192.168.2.1 Smartplugconnect.phicomm.com
192.168.2.1 aircat.phicomm.com
192.168.2.1改为你的官改路由器的IP

如果需要恢复原来的官方服务器,只需在官改高级设置的hosts设置中删除对应记录并保存即可

2、使用说明
你可以在web上查看设备信息或进行设置,信息内容3秒定时更新
M1可设置的内容是屏幕亮度,设置后点“保存”按钮生效

DC1可设置的内容是各个开关的状态,当web控制界面上“重置开关”按钮(下图红框)关闭时,web只实时显示开关状态,点击“保存”按钮不会改变开关状态;当“重置开关”按钮打开时,web暂停刷新开关状态,点击“保存”按钮后会根据设置来改变开关状态

3、定时任务
可以通过系统的定时任务来控制智能设备,比如定时开关M1的显示屏、定制控制DC1的开关打开和关闭
注:必须启用过一次web控制开关(完成服务器重定向)后才能使用定时控制命令,但不要求web控制处于启用状态,在关闭状态同样可以使用定时控制

M1控制命令:
setm1 num
num可以为1、2、3
1:息屏 2:微亮 3、正常
比如23点息屏,7点亮屏
0 23 * * * setm1 1
0 7 * * * setm1 3

DC1控制命令:
setdc1 num
num代表各开关状态,用4位数字表示,1代表打开,0代表关闭(前面如果为0可省略),从左到右分别是开关3、开关2、开关1、总开关,比如1011表示开关2关闭,其他开关打开,11表示总开关和开关1打开,开关2和开关3关闭
比如23点关闭开关2,7点打开开关2
0 23 * * * setdc1 1011
0 7 * * * setdc1 1111

注:当前版本只支持控制一台M1和DC1,不支持多台控制
通过路由器的ddns(公网地址)或frp(私网地址)你可以远程访问路由器,从而实现远程控制智能设备。

]]>
http://bak.iytc.net/wordpress/?feed=rss2&p=4925 138
windows 10下免虚拟机安装Ubuntu及Openwrt编译环境 http://bak.iytc.net/wordpress/?p=4885 http://bak.iytc.net/wordpress/?p=4885#comments Thu, 13 Dec 2018 03:27:30 +0000 http://iytc.net/wordpress/?p=4885 1、首先打开开发人员模式

2、开启windows的子功能

3、重启电脑

4、 在Microsoft Store中搜索Ubuntu,并安装

5、安装完后,就可以直接打开Ubuntu了
默认是一个终端,先设置用户名和密码

Ubuntu默认把磁盘挂载到/mnt目录下,可以直接cd /mnt/d进入d盘,进而操作文件。

Win­dows 文件系统对大小写不敏感会导致linux编译问题,需用管理员打开cmd,设置指定目录大小写敏感:
fsutil.exe file setCaseSensitiveInfo enable
需要注意的是,这个操作不会对此目录中已有的文件生效,只有新写入的文件才会继承这个属性。

【安装openwrt编译环境】
1、安装依赖库
sudo apt-get install build-essential subversion libncurses5-dev zlib1g-dev gawk gcc-multilib flex git-core gettext libssl-dev unzip python

2、下载openwrt源码
比如安装在D盘:
cd /mnt/d
git clone https://github.com/openwrt/openwrt
cd openwrt/
切换到18.06.1发布分支,方便以后可以用官方源来安装插件
git checkout openwrt-18.06
git checkout 70255e3d624cd393612069aae0a859d1acbbeeae

3、配置
make menuconfig
选择要编译的设备和模块

4、编译
编译前建议先关掉win10自带的windows defender的实时保护,可加快编译速度
第一次编译建议单核编译,便于问题定位(-j1)
make V=99 -j1
编译完成,固件在/mnt/d/openwrt/bin/targets目录

如果用SDK编译,可能会出现如下错误:
.xargs.bin: loadlocale.c:129: _nl_intern_locale_data: Assertion `cnt < (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))' failed. 需要执行如下命令: export LC_ALL=C

]]>
http://bak.iytc.net/wordpress/?feed=rss2&p=4885 1