2020
03-28

Padavan固件AP/Route模式自动切换脚本,AP模式和Router模式区别介绍

Padavan固件AP/Route模式自动切换脚本

AP模式和Router模式区别是什么

  在TP-Link、水星(Mercury)、迅捷(Fast)等品牌的迷你无线路由器上,有AP模式、Router模式、中继和桥接等几个上网模式,那么AP模式与Router模式的区别是什么?

AP(接入点)模式

  在AP模式下,需要把迷你无线路由器接入到已经可以上网的路由器或者交换机上面,然后迷你无线路由器可以提供无线WiFi,一般的迷你无线路由器出厂时默认都是AP模式。

  也就是说,要使用AP模式,用户的网络中必须有一台路由器与宽带运行商之间建立了连接,否则是无法使用AP模式的。

  适用场所:办公室、宾馆、酒店等场所,一般都提供了一根网线给用户上网,这根网线插在电脑上就可以上网的,但是不能使用无线wifi。如果根网线插在迷你路由器上,把迷你路由器设置为AP模式,就可以提供无线网络了。

Router(无线路由)模式

  在Router(无线路由)模式下,迷你无线路由器和普通的无线路由器一样,需要把迷你无线路由器与猫(光猫)或者宽带运营商提供的入户网线连接起来,然后需要设置“宽带帐号”和“宽带密码”来拨号上网。

  也就是说,在Router模式下,迷你无线路由器是直接与光猫、ADSL Modem、入户网线进行连接的,然后需要用户设置“宽带帐号”和“宽带密码”才能上网,和普通的无线路由器没有区别。

  适用环境:用户自己办理了宽带业务,知道“宽带帐号”和“宽带密码”的情况下使用。

环境和需求

一个 EXSI上的 openwrt  x86 作主路由,两个 k2p 刷了无灯的Padavan 作5g覆盖,主要应用都装在openwrt上了,这方案唯一的缺点就是软路由的功耗比较高,家用很多时间比如上班和睡觉时间不需要路由器上的哪些功能。为了省电想着怎么在某些时段让x86 休眠,一个k2p从ap模式自动侦测并切换至route模式进行拨号,当x86运行时又自动切换回ap模式,这样既可以省电又能保持一直联网。

AP/Route模式自动切换方法和步骤

1、建一个实现ap/route切换脚本并保存

ssh登陆 k2p 后

[PHICOMM_K2P /home/root]# vi /etc/storage/sw_mode.sh 
#!/bin/sh                                                                            
                                                                                     
### set Route mode                                                                   
func_route()                                                                         
{                                                                                    
    nvram set rstats_dev_24=WAN                                                      
    nvram set wan0_ifname_t=ppp0                                                     
    nvram set wan0_proto_t=PPPoE                                                     
    nvram set wan_route_x=IP_Routed                                                  
    nvram set sw_mode=1                                                              
    nvram set wan0_route_x=IP_Routed                                                 
    nvram set wan0_viflast=                                                          
    nvram set dhcp_enable_x=1                                                        
    nvram set ether_link_wan=0                                                       
    nvram commit                                                                     
    return 0                                                                         
}                                                                                    
                                                                                     
### set AP mode                                                                      
func_ap()                                                                            
{                                                                                    
    nvram set rstats_dev_24=LAN                                                      
    nvram set wan0_ifname_t=                                                         
    nvram unset wan0_proto_t                                                         
    nvram set wan_route_x=IP_Bridged                                                 
    nvram set sw_mode=3                                                              
    nvram set wan0_route_x=IP_Bridged                                                
    nvram unset wan0_viflast                                                         
    nvram set dhcp_enable_x=0                                                        
    nvram set ether_link_wan=15                                                      
    nvram commit                                                                     
    return 0                                                                         
}                                                                                    
                                                                                     
### set Lan IP                                                                       
func_lanip()                                                                         
{                                                                                    
    nvram set lan_ipaddr=$1                                                          
    #nvram set lan_ipaddr_t=$1                                                       
    nvram set lan_gateway=$1                                                         
    #nvram set lan_gateway_t=$1                                                      
    nvram commit                                                                     
}                                      
                                                                               
#                                        
if [ `nvram get sw_mode` == 1 ] ; then                                         
    func_ap                                                                    
    func_lanip 192.168.11.3
  elif [ `nvram get sw_mode` == 3 ] ; then                                     
    func_route                                                                 
    func_lanip 192.168.11.1
  fi

其中 192.168.11.3 / 1 地址是ap / route模式 访问k2p的lan 地址,修改成自己局域网地址

保存后

[PHICOMM_K2P /home/root]# chmod +x /etc/storage/sw_mode.sh

现在执行这个脚本再reboot就可以实现手动切换ap/route了

2、实现自动检测x86路由的状态变化并执行切换

web登陆k2p

在【自定义设置】 中的 ”网络检测“ 里设置

网络检测器检测模式:持续监测

远程服务器地址和端口 1: 192.168.11.9:80(x86路由的地址和端口,其它的远程服务器地址和端口 2-6 都清空)

互联网地址检测设置 和 网络状态发生变化时执行的事件 里的参数默认不修改

在网络访问状态改变时运行脚本:(在最末尾加上)

if [[ $1 == 0 && `nvram get sw_mode` == 3 ]] || [[ $1 == 1 && `nvram get sw_mode` == 1 ]] ; then
   logger -t "di" "switch route/ap mode."
   ./etc/storage/sw_mode.sh && reboot
fi

点击 ‘应用本页面设置’ 进行保存。 现在已经实现了k2p自动检测x86路由器是否现在来进行ap/route 模式的切换。

3、x86路由器的定时自动唤醒

在 k2p 的 【系统设置】内的  ‘服务’ 中 ‘    计划任务 (Crontab)’  在脚本最后加上

25 19 * * 1-5  /usr/sbin/ether-wake -b -i br0 20:25:64:08:53:B2

cron定时格式可百度按自己时间要求修改,mac修改为x86路由实际mac。

如无特殊说明,解压密码均为:aisoa.cn

您可能感兴趣的文章

支付宝打赏支付宝打赏微信打赏微信打赏