找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 5784|回复: 3

PPTP自动拨号自动判断脚本

[复制链接]
发表于 2017-1-29 09:52 | 显示全部楼层 |阅读模式
本帖最后由 键盘人生 于 2017-1-30 06:13 编辑

       这是我自己编写的PPTP自动拨号,自动判断是否断线脚本,在我的路由器上测试成功(RT-AC68U,Merlin380.64_2),如果大家在使用时发现有不对或者不合理的地方欢迎大家帮忙指正出来。
       一、脚本文件说明
       这个脚本共有四个文件组成如下:
       |-----DecideNet.sh------------负责判断是否进行了PPTP拨号,同时判断拨号后线路是否通畅。
       |-----Connv p n.sh------------负责断开PPTP拨号连接,并且重新拨号。
       |-----router.sh-----------------负责在PPTP拨号成功后修改路由表,这样路由器可以根据路由表来转发线路链接。
       |-----v p nc_options.pptp----PPTP拨号配置文件。
       在使用这个功能时,需要打开路由器的脚本功能,并且在路由器的“wan-start”脚本中添加“sh /路径/DecideNet.sh”与“cru a v p n "*/5 * * * * sh /路径/DecideNet.sh"。
       二、DecideNet.sh文件内容
       #!/bin/bash
       #pptp拨号成功后获取的网关地址。
       pptpgateway=xxx.xxx.xxx.xxx;
       #某个需要从pptp这条线路中出去的ip地址。
       pptpip=xxx.xxx.xxx.xxx;
       netstat=$(ping -c2 $pptpgateway|grep transmitted |awk '{print $4}')
       if [ $netstat = 0 ];then
               sh /mnt/udisk/private_sh/Connv p n.sh;
               sh /mnt/udisk/private_sh/router.sh;
       else
               netstat=$(ping -c2 $pptpip|grep transmitted |awk '{print $4}')
               if [ $netstat = 0 ];then
                        sh /mnt/udisk/private_sh/router.sh;
               fi                        
       fi
       三、Connv p n.sh文件内容
       #拷贝pptp配置文件到/tmp/ppp/目录
       cp /路径/v p nc_options.pptp /tmp/ppp/ -r -f
       wait;
       #杀死pptp拨号进程(杀死进程等于断开线路)
       kill -9 $(ps | grep "/usr/sbin/pppd file /tmp/ppp/v p nc_options.pptp" | grep -v grep | cut -c 0-5 | awk '{print $1}')
       wait;
       #根据配置文件重新建立拨号连接
       /usr/sbin/pppd file /tmp/ppp/v p nc_options.pptp
       wait;
       sleep 10;
       四、router.sh文件内容
       #在路由表中删除ppp5的默认路由,这样可以依靠添加路由表来确定连接从哪个线路中走出去。
       route del default ppp5
       #指定从pptp走的IP地址或者网段地址
       route add -net xxx.xxx.xxx.0/24 ppp5
       五、v p nc_options.pptp文件内容
       noauth
       refuse-eap
       #pptp用户名
       user '用户名'
       #pptp密码
       password '密码'
       plugin pptp.so
       #pptp服务器IP地址
       pptp_server 'pptp服务器IP地址'
       v p nc 1
       nomppe-stateful mtu 1400
       persist
       holdoff 10
       maxfail 0
       usepeerdns
       ipcp-accept-remote ipcp-accept-local noipdefault
       ktune
       default-asyncmap nopcomp noaccomp
       novj nobsdcomp nodeflate
       lcp-echo-interval 6
       lcp-echo-failure 10
       lcp-echo-adaptive
       unit 5
       linkname v p n5
       ip-up-script /tmp/ppp/v p nc-ip-up
       ip-down-script /tmp/ppp/v p nc-ip-down
       ip-pre-up-script /tmp/ppp/v p nc-ip-pre-up
       auth-fail-script /tmp/ppp/v p nc-auth-fail
       这个文件也可以自动建立,首先在路由器中配置好pptp客户端信息,然后运行拨号,观察拨号状况,如果拨号成功说明参数配置正确,这时候我们可以到/tmp/ppp/目录中拷贝“v p nc_options.pptp”文件。这就是最后生成的客户端配置文件。
       六、程序运行逻辑
       这个程序首先会定时执行“DecideNet.sh”脚本,根据脚本中的两个IP地址来判断拨号是否成功,线路是否通畅,如果发现线路不通,则断开重播,如果发现线路通畅但是指定IP地址不通,则判断为没有添加路由表,会自动执行添加路由表的脚本。
       最后补充一点,这个程序最开始是在N16、Tomato下运行,后来更换了路由器刷了Merlin后,根据Merlin进行了修改,所以从原则上来说,这个程序可以运行在Tomato与Merlin两种固件下,只是需要根据固件自行设置即可。
我的恩山、我的无线 The best wifi forum is right here.
发表于 2017-1-29 10:07 | 显示全部楼层
感谢啊楼主

点评

还没有写完。稍等。。。  详情 回复 发表于 2017-1-29 10:07
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2017-1-29 10:07 | 显示全部楼层
本帖最后由 键盘人生 于 2017-1-29 12:10 编辑

不客气。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2017-10-21 21:41 | 显示全部楼层
纯支持一下,还以为是自动拨号到设定的IP段,
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-20 15:11

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表