广告位招租 联系qq:165345322

FreeBSD6.1下 PPPOE掉线自动重拨的脚本

时间:2007-09-19 18:22:15   来源:余振中  作者:振兴电子  点击:次  出处:技术无忧
关键字:FreeBSD PPPOE 自动重拨

不管是 Linux 或是 BSD 下所使用的 PPPoE 拨号程式,在遇到很多奇怪的断线情况后不能自动重拨,所以写了这/etc/ppp/ppp.sh 这个脚本。基本方法是:在cron中每隔5分钟运行一次,测试本站域名和163.com是否连通,若都不通说明PPPOE网络掉线,就调用(FB6.1)系统/etc/rc.d/ppp 程序停止、重启PPPOE拨号服务。其他脚本是和该脚本配合的,必须根据自己的实际进行相应的修改。另外要注意的是ppp.conf、ppp.linkup两个文件必须注意书写格式!否则不能正常运行相应的指令。

-------------------------/etc/ppp/ppp.sh-------------------------
#!/bin/sh

checkonline1=`/usr/local/sbin/fping zxdz.6600.org`  #用fping命令测试我的网站
checkonline2=`/usr/local/sbin/fping 220.181.28.42` #用fping命令测试163.com网站

if [ "$checkonline1" = "zxdz.6600.org is alive" ] ; then
   #echo "$checkonline1"
   #echo "The ADSL is connected"
   exit
else
   if [ "$checkonline2" = "220.181.28.42 is alive" ] ; then
      echo "$checkonline2"
      echo "The ADSL is connected"
      exit
   else
      echo "$checkonline1"
      echo "$checkonline2"
      echo "The ADSL is disconnected"
      /etc/rc.d/ppp stop  #FB6.1 使用,调用系统PPP脚本停止ppp拨号服务。
      #/usr/bin/killall ppp #FB6.0版以前使用   
      sleep 10               #等10秒种
      #/usr/sbin/ppp -ddial -unit 0 -nat gykj #FB6.0版以前使用
      /etc/rc.d/ppp start  #FB6.1 使用,调用系统PPP脚本重新开始ppp拨号服务。
   fi
fi


---------------------/etc/ppp/ppp.conf--------------------------
# $FreeBSD: src/etc/ppp/ppp.conf,v 1.10 2004/11/19 17:12:56 obrien Exp $
###############################################
default:                                   #注意格式,顶格,前面没空格
 set device PPPoE:sis0               #指定进行pppoe连接的网卡,前面有一个空格,下同
 set log Phase tun command
 set ifaddr 10.0.0.1/0 10.0.0.2/0
 enable lqr
gykj:                                       #指定的pppoe名,顶格,前面没空格
 set mru 1492                           #前面有一个空格,下同
 set mtu 1492
 set cd 10!
 set redial 15 100
 set reconnect 15 100
 set authname 用户名                 #拨号用户名
 set authkey  密码                     #拨号密码
 set dial
 set login
 enable dns
 add default HISADDR           # Add a (sticky) default route


-------------------/etc/rc.conf和PPP 相关行-----------------------
ppp_enable="YES"             //允许启动时进行PPP拨号
ppp_mode="ddial"              //断线自动重拨
ppp_nat="YES"                 //打开nat功能
ppp_profile="gykj"              //前面在/etc/ppp/ppp.conf中定义的pppoe名


-----------------------/etc/crontab 相关行-----------------------
*/5     *       *       *       *       root    /etc/ppp/ppp.sh
该行指定每5分钟运行一次/etc/ppp/ppp.sh,检查是否吊线,如掉线就重拨。


------------------------/etc/ppp/ppp.linkup----------------------
gykj:                              #注意格式,该行顶格,前面不能有空格
 iface clear                      #该行前面必须且只有一个空格,下同
 !bg /etc/ppp/dyndns.sh    #PPPOE拨号完成后调用/etc/ppp/dyndns.sh动态DNS脚本

etc/ppp/ppp.linkup文件中存放有ppp拨号成功后要继续执行的指令。这里的dyndns.sh是我的动态DNS脚本,当系统PPP拨号成功后,将新的IP地址通知给动态DNS服务器,拨号后即便本机IP地址发生变化,也能将zxdz.6600.org的域名正确解析到本机。


相关文章

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面

300x250广告位招租