Debian Linux: ADSL PPPoE 自動重撥 Script

昨天早上網路(PPPoE)斷線, 沒有察覺到, 正好整天都不在家, 在外面要連回來查資料才發現, 這個小站死掉還蠻痛苦的(資料都懶得記, 直接寫在上面), 果然有些東西還是得要用腦袋記... XD

但是想想用腦袋記還是太辛苦(頭腦不好 XD), 還是寫隻 Script 做斷線重撥的動作好了. Orz..

找了一些文章, 想拿現成的程式來用, 沒想到都好複雜(動不動就是一整頁的程式), 所以文章看看後, 還是簡單改寫一隻來用就好.

目前測試好像都還正常.(此 Script 主要是給 Debian 使用, 其它系統只要修改 /usr/bin/pon, 改成自己系統所用的撥接程式即可).

重新撥接的程式 及 設定步驟

  1. 重新撥接的程式如下: (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

  2. chmod +x /usr/bin/repppoe
  3. 設定 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 # 修改下述幾個參數

    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

參考文章


關於 Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
本篇發表於 Programming 並標籤為 。將永久鏈結加入書籤。

Debian Linux: ADSL PPPoE 自動重撥 Script 有 6 則回應

  1. cooper 說道:

    大仔你們好,請問如何設定ADSL自動斷線及重撥的JavaScript
    本人因系統安全需求,需在程式執行到迴圈結束時
    就要自動斷線一次
    待若干時間後
    再自動重撥一次
    再次連線
    謝謝指教

  2. Tsung 說道:

    JavaScript 沒辦法存取到系統資源, 所以沒辦法做這件事耶.
    需要透過 ajax 去 call 其它程式才可以做這些事唷~ 🙂

  3. 夢見草 說道:

    其實在 /etc/ppp/options 此檔內就有許多選項可設定, maxfail 就可設定自動重撥次數

  4. aa 說道:

    感謝您
    就算到了2018年 此篇文章就有幫助

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料