人生就是由众多的细节组成的
正因为是个细节,所以常被人所淡忘

斐讯K2刷高恪固件或老毛子固件用来做中继 自动切换中继信号

整理旧设备找到个2018年的斐讯K2,路由器上面保护膜都还在,想着让它发挥下用途,目标就是做中继使用。

找了下可以刷的固件还蛮多的,比如我喜欢的高恪

方案一:高恪路由

斐讯k2精简包 GOCLOUD-S1A_8M(K2精简升级包)-4.3.1.15256.bin
精简版只包含智能流控功能。 精简包 占用低 稳定 正适合k2这种老机器!比较适合只简单使用的场景, 比如家用。
开启流控的情况下, 只推荐用在50M以内的带宽的场景下。 超出50M的,建议开启SFE快速转发。

不开流控不用设置.开启方法: 【系统管理】【系统设置】【WEB界面参数】 勾选SFE快速转发。

刷入教程:先刷breed, 然后再刷底包, 然后升级到4.3.1.15256

下载链接: https://pan.baidu.com/s/1Lh9Lq50P88iuRDrTDp3zVg 提取码: d4ym

方案二:老毛子Padavan固件

Hiboy 老毛子固件下载地址 https://opt.cn2qq.com/padavan/

问:什么是中继脚本?
答:简单来讲,就是可以设置多个ESSID(主路由AP)。假如第一个连接失败,脚本会去连接第二个。如果第二个失败,会连接第三个,以此类推。
在 无线-无线桥接 下 有个ap_script脚本。在这个脚本里面写下要尝试连接的ESSID(主路由AP)就可以了。不要问我如何使用,脚本里面写着很清楚了,这都不会就别玩路由器了!!!

脚本基本上都是通用的
测试路由器:红米 AC2100, 小米 4A千兆版
有些路由器需要把在无线里的区域代码改成 “Debug ( All Channels)” 才能使用,不然搜不到ESSID(主路由AP)。

修复内容:
无法搜到ESSID(主路由AP)的问题
2.4GHZ和5GHZ中继切换后无法连接的问题
更加稳定,不会ping 一次失败就去搜索,大大提高了蹭网体验!

新功能:
设置不连接低于X的信号。
尝试连接AP的最大时长
尝试联网的最大时长

使用WinSCP覆盖 /etc/storage 即可。

#!/bin/sh

### Custom user script
### Called on Internet status changed
### $1 - Internet status (0/1)
### $2 - elapsed time (s) from previous state
#copyright by hiboy
logger -t "di" "互联网状态:$1, 经过时间: $2s."

# AP中继连接守护功能。【0】 Internet互联网断线后自动搜寻;【1】 当中继信号断开时启动自动搜寻。
apauto=0

# AP连接成功条件,【0】 连上AP即可,不检查是否联网;【1】 连上AP并连上Internet互联网。
apauto2=0

# 【自动切换中继信号】功能 0关闭;填写配置参数启动
ap2g5g="0"
# 【0】 联网断线后自动搜寻,大于【10】时则每隔【N】秒搜寻,直到连上最优先信号。
aptime="360"

# 如搜寻的AP不联网则列入黑名单/tmp/apblack.txt 功能 【0】关闭;【1】启动
# 控制台输入【echo "" > /tmp/apblack.txt】可以清空黑名单
apblack=0

# 中继AP配置填写说明:
# 各参数用【@】分割开,如果有多个信号可中继用【 】空格隔开继续填写即可(从左边的参数开始搜寻)【左边是最优先信号】
# 单个信号例子:ap2g5g="2@4@1@ASUS@1234567890"
# 多个信号例子:ap2g5g="2@4@1@ASUS@1234567890 2@4@1@ASUS_中文@1234567890@34:bd:f9:1f:d2:b1 2@4@1@ASUS3@1234567890@34:bd:f9:1f:d2:b0"
# 参数说明:
# ①2.4Ghz或5Ghz:"2"=【2.4Ghz】"5"=【5Ghz】
# ②无线AP工作模式:"0"=【AP(桥接被禁用)】"1"=【WDS桥接(AP被禁用)】"2"=【WDS中继(网桥 + AP)】"3"=【AP-Client(AP被禁用)】"4"=【AP-Client + AP】
# ③无线AP-Client角色: "0"=【LAN bridge】"1"=【WAN (Wireless ISP)】
# ④中继AP 的 SSID:"ASUS"
# ⑤中继AP 密码:"1234567890"
# ⑥中继AP 的 MAC地址:"20:76:90:20:B0:F0"【可以不填,不限大小写,但有中文的SSID一定要填写】

echo $apauto > /tmp/apauto.lock
baidu='http://passport.baidu.com/passApi/img/small_blank.gif'
aptimes=$1
if [ $((aptimes)) -gt "9" ];then
logger -t "连接AP" "$1秒后,自动搜寻ap"
sleep $1
else
logger -t "连接AP" "10秒后,自动搜寻ap"
sleep 10
fi
if [ ! -f /tmp/apc.lock ] && [ "$1" != "1" ] && [ "$ap2g5g" != "0" ] ; then
touch /tmp/apc.lock
ap=`iwconfig | grep 'apcli0' | grep 'ESSID:""' | wc -l`
ap2=`iwconfig  | grep 'apcli0'`
[ -z "$ap2" ] && ap=1
if [ "$ap" = "1" ] ; then
ap2=`iwconfig | grep 'apclii0' | grep 'ESSID:""'`
[ ! -z "$ap2" ] && ap=`iwconfig | grep 'apclii0' | grep 'ESSID:""' | wc -l`
fi
while [ "$ap" = "1" ] || [ "$2" = "t" ] && [ -f /tmp/apc.lock ]
do
for apc in $ap2g5g
do
radio=$(echo $apc | cut -d '@' -f1)

# ApCli 2.4Ghz
if [ "$radio" = "2" ] ; then
rtwlt_mode_x=`nvram get rt_mode_x`
else
rtwlt_mode_x=`nvram get wl_mode_x`
fi
# [ "$rtwlt_mode_x" = "3" ] || [ "$rtwlt_mode_x" = "4" ] &&
if [ -f /tmp/apc.lock ] ; then
rtwlt_mode_x=$(echo $apc | cut -d '@' -f2)
rtwlt_sta_wisp=$(echo $apc | cut -d '@' -f3)
rtwlt_sta_ssid=$(echo $apc | cut -d '@' -f4)
rtwlt_sta_wpa_psk=$(echo $apc | cut -d '@' -f5)
rtwlt_sta_bssid=$(echo $apc | cut -d '@' -f6 | tr 'A-Z' 'a-z')
if [ "$radio" = "2" ] ; then
ap=`iwconfig | grep 'apcli0' | grep ESSID:"$rtwlt_sta_ssid" | wc -l`
if [ "$ap" = "0" ]; then
ap=`iwconfig |sed -n '/apcli0/,/Rate/{/apcli0/n;/Rate/b;p}' | grep $rtwlt_sta_bssid | tr 'A-Z' 'a-z' | wc -l`
fi
else
ap=`iwconfig | grep 'apclii0' | grep ESSID:"$rtwlt_sta_ssid" | wc -l`
if [ "$ap" = "0" ]; then
ap=`iwconfig |sed -n '/apclii0/,/Rate/{/apclii0/n;/Rate/b;p}' | grep $rtwlt_sta_bssid | tr 'A-Z' 'a-z' | wc -l`
fi
fi

if [ "$ap" = "1" ]; then
logger -t "连接AP" "当前是$rtwlt_sta_ssid ,停止搜寻"
rm -f /tmp/apc.lock
if [ $((aptimes)) -ge "9" ];then
/etc/storage/inet_state_script.sh $aptime "t" &
sleep 2
logger -t "连接AP" "直到连上最优先信号$(echo $ap2g5g | cut -d ' ' -f1 | cut -d '@' -f4)"
fi
exit
else
logger -t "连接AP" "自动搜寻$rtwlt_sta_ssid"
fi
iwpriv ra0 set SiteSurvey=1
sleep 2
if [ ! -z "$rtwlt_sta_bssid" ] ; then
logger -t "连接AP" "自动搜寻$rtwlt_sta_ssid:$rtwlt_sta_bssid"
site_survey=$(iwpriv ra0 get_site_survey | sed -n "/$rtwlt_sta_bssid/p" | tr 'A-Z' 'a-z')
else
site_survey=$(iwpriv ra0 get_site_survey | sed -n "/$rtwlt_sta_ssid/p" | tr 'A-Z' 'a-z')
fi
if [ -z "$site_survey" ] ; then
logger -t "连接AP" "没找到$rtwlt_sta_ssid ,如果含中文请填写正确的MAC地址"
ap3=1
fi
if [ ! -z "$site_survey" ] ; then
Ch=${site_survey:0:4}
SSID=${site_survey:4:33}
BSSID=${site_survey:37:20}
Security=${site_survey:57:23}
Siganl=${site_survey:80:9}
WMode=${site_survey:89:7}
ap3=0
fi
if [ "$apblack" = "1" ] ; then
apblacktxt=$(grep "【SSID:$rtwlt_sta_bssid" /tmp/apblack.txt)
if [ ! -z $apblacktxt ]; then
logger -t "连接AP" "当前是黑名单$rtwlt_sta_ssid ,跳过黑名单继续搜寻"
ap3=1
else
apblacktxt=$(grep "【SSID:$rtwlt_sta_ssid" /tmp/apblack.txt)
if [ ! -z $apblacktxt ]; then
logger -t "连接AP" "当前是黑名单$rtwlt_sta_ssid ,跳过黑名单继续搜寻"
ap3=1
fi
fi
fi
if [ "$ap3" != "1" ]; then
if [ "$radio" = "2" ] ; then
nvram set rt_channel=$Ch
iwpriv apcli0 set Channel=$Ch
else
nvram set wl_channel=$Ch
iwpriv apclii0 set Channel=$Ch
fi
if [[ $(expr $Security : ".*none*") -gt "1" ]] ; then
rtwlt_sta_auth_mode="open"
rtwlt_sta_wpa_mode="0"
fi
if [[ $(expr $Security : ".*1psk*") -gt "1" ]] ; then
rtwlt_sta_auth_mode="psk"
rtwlt_sta_wpa_mode="1"
fi
if [[ $(expr $Security : ".*2psk*") -gt "1" ]] ; then
rtwlt_sta_auth_mode="psk"
rtwlt_sta_wpa_mode="2"
fi
if [[ $(expr $Security : ".*tkip*") -gt "1" ]] ; then
rtwlt_sta_crypto="tkip"
fi
if [[ $(expr $Security : ".*aes*") -gt "1" ]] ; then
rtwlt_sta_crypto="aes"
fi
if [ "$radio" = "2" ] ; then
nvram set rt_mode_x=$rtwlt_mode_x
nvram set rt_sta_wisp=$rtwlt_sta_wisp
nvram set rt_sta_ssid=$rtwlt_sta_ssid
nvram set rt_sta_auth_mode=$rtwlt_sta_auth_mode
nvram set rt_sta_wpa_mode=$rtwlt_sta_wpa_mode
nvram set rt_sta_crypto=$rtwlt_sta_crypto
nvram set rt_sta_wpa_psk=$rtwlt_sta_wpa_psk
else
nvram set wl_mode_x=$rtwlt_mode_x
nvram set wl_sta_wisp=$rtwlt_sta_wisp
nvram set wl_sta_ssid=$rtwlt_sta_ssid
nvram set wl_sta_auth_mode=$rtwlt_sta_auth_mode
nvram set wl_sta_wpa_mode=$rtwlt_sta_wpa_mode
nvram set wl_sta_crypto=$rtwlt_sta_crypto
nvram set wl_sta_wpa_psk=$rtwlt_sta_wpa_psk
fi
logger -t "连接AP" "$rtwlt_mode_x $rtwlt_sta_wisp $rtwlt_sta_ssid $rtwlt_sta_auth_mode $rtwlt_sta_wpa_mode $rtwlt_sta_crypto $rtwlt_sta_wpa_psk"
nvram commit
#restart_wan
#sleep 10
radio2_restart
sleep 4
if [ "$radio" = "2" ] ; then
#iwpriv apcli0 set ApCliEnable=0
iwpriv apcli0 set ApCliAutoConnect=1
else
#iwpriv apclii0 set ApCliEnable=0
iwpriv apclii0 set ApCliAutoConnect=1
fi
sleep 10
logger -t "连接AP" "【Ch:$Ch】【SSID:$SSID】【BSSID:$BSSID】"
logger -t "连接AP" "【Security:$Security】【Siganl(%):$Siganl】【WMode:$WMode】"
if [ "$radio" = "2" ] ; then
ap=`iwconfig | grep 'apcli0' | grep 'ESSID:""' | wc -l`
else
ap=`iwconfig | grep 'apclii0' | grep 'ESSID:""' | wc -l`
fi
if [ "$ap" = "0" ] && [ "$apauto2" = "1" ] ; then
/tmp/sh_download.sh /tmp/small_blank.gif $baidu
if [ ! -s /tmp/small_blank.gif ]; then
ap=1
logger -t "连接AP" "$ap 已连接上$rtwlt_sta_ssid ,但未联网,跳过继续搜寻"
else
logger -t "连接AP" "$ap 已连接上$rtwlt_sta_ssid ,成功联网"
ap=0
fi
fi
if [ "$ap" = "1" ] ; then
logger -t "连接AP" "$ap 无法连接$rtwlt_sta_ssid"
else
logger -t "连接AP" "$ap 已连接上$rtwlt_sta_ssid"
if [ "$apblack" = "1" ] ; then
/tmp/sh_download.sh /tmp/small_blank.gif $baidu
if [ ! -s /tmp/small_blank.gif ]; then
apblacktxt="$ap AP不联网列入黑名单:【Ch:$Ch】【SSID:$SSID】【BSSID:$BSSID】【Security:$Security】【Siganl(%):$Siganl】【WMode:$WMode】"
logger -t "连接AP" "$apblacktxt"
echo $apblacktxt >> /tmp/apblack.txt
rm -f /tmp/apc.lock
/etc/storage/inet_state_script.sh 0 "t" &
sleep 2
logger -t "连接AP" "跳过黑名单继续搜寻,直到连上最优先信号$(echo $ap2g5g | cut -d ' ' -f1 | cut -d '@' -f4)"
exit
fi
fi
if [ "$rtwlt_sta_ssid" = $(echo $ap2g5g | cut -d ' ' -f1 | cut -d '@' -f4) ] ; then
logger -t "连接AP" "当前是$rtwlt_sta_ssid,停止搜寻"
rm -f /tmp/apc.lock
logger -t "连接AP" "当前连上最优先信号$rtwlt_sta_ssid"
exit
else
rm -f /tmp/apc.lock
if [ $((aptime)) -ge "9" ];then
/etc/storage/inet_state_script.sh $aptime "t" &
sleep 2
logger -t "连接AP" "直到连上最优先信号$(echo $ap2g5g | cut -d ' ' -f1 | cut -d '@' -f4)"
fi
exit
fi
fi
fi
sleep 10
fi
ap=`iwconfig | grep 'apcli0' | grep 'ESSID:""' | wc -l`
ap2=`iwconfig  | grep 'apcli0'`
[ -z "$ap2" ] && ap=1
if [ "$ap" = "1" ] ; then
ap2=`iwconfig | grep 'apclii0' | grep 'ESSID:""'`
[ ! -z "$ap2" ] && ap=`iwconfig | grep 'apclii0' | grep 'ESSID:""' | wc -l`
fi
done
sleep 60
done       
# ApCli 5Ghz
rm -f /tmp/apc.lock
fi
logger -t "连接AP" "脚本完成"

 

自动切换中继脚本

赞(0) 打赏
未经允许不得转载:毛桃博客 » 斐讯K2刷高恪固件或老毛子固件用来做中继

评论 抢沙发

评论前必须登录!

 

实践是学习的最佳途径

支持快讯、专题、百度收录推送、人机验证、多级分类筛选器,适用于垂直站点、科技博客、个人站,扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、文章图片弹窗、自动缩略图等...

了解更多看平潭

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册