昨天早上網路(PPPoE)斷線, 沒有察覺到, 正好整天都不在家, 在外面要連回來查資料才發現, 這個小站死掉還蠻痛苦的(資料都懶得記, 直接寫在上面), 果然有些東西還是得要用腦袋記... XD
但是想想用腦袋記還是太辛苦(頭腦不好 XD), 還是寫隻 Script 做斷線重撥的動作好了. Orz..
找了一些文章, 想拿現成的程式來用, 沒想到都好複雜(動不動就是一整頁的程式), 所以文章看看後, 還是簡單改寫一隻來用就好.
目前測試好像都還正常.(此 Script 主要是給 Debian 使用, 其它系統只要修改 /usr/bin/pon, 改成自己系統所用的撥接程式即可).
重新撥接的程式 及 設定步驟
- 重新撥接的程式如下: (vim /usr/bin/repppoe)
#!/bin/bash
#if !ping -c 3 168.95.1.1 > /dev/null 2>&1
#if !(cat /proc/net/dev | grep ppp0) > /dev/null 2>&1
#if !(cat /proc/net/dev | grep ppp) > /dev/null 2>&1
if !ping -c 3 tw.yahoo.com > /dev/null 2>&1
then
#/usr/bin/poff
#/usr/bin/pon dsl-provider
/usr/bin/pon
fi - chmod +x /usr/bin/repppoe
- 設定 crontab (設 root 的 crontab)
crontab -e # 之後寫入下述
*/5 * * * * /usr/bin/repppoe
這樣子就完成囉~(扣掉註解程式只有 4行, 我以前怎麼那麼懶, 連 4行都懶得寫. XD)
PS:
- 程式裡面 if 註解掉的, 可自行想想有什麼更好的判斷法, 記得 2>&1 不要拿掉(會有收不完的信)
- /usr/bin/poff 是網路不通時, 是否要先斷線再撥. 我想的是, 不通直接再撥就是, 否則不知何時後會突然有幾秒 ping 不到的, 系統就自動斷線了 ~ XD
Pppoe 原本內建也可以做設定, 可以嘗試看看, 修改下述設定:
- vim /etc/ppp/options # 修改下述幾個參數 (主要是 persist、maxfail)
lcp-echo-interval 20 # 30 -> 20
lcp-echo-failure 400 # 4 -> 400
persist # #persist -> 把 # 拿掉
maxfail 0 # #maxfail <n> -> maxfail 0
holdoff 10 # #holdoff <n> -> holdoff 10