【Windows】開機自動撥號 PPPOE 斷線後重新連線 網路穩定性

前情提要 開機自動撥接

前情提要 nssm將腳本註冊成服務


若電腦使用PPPOE 有架設網站、當伺服器的需求

會有許多穩定性的問題要考量
ex: 停電、半夜中華電信突然斷網、路由器瞬間掛掉五分鐘...

片刻後,網路回來
但是"PPPOE撥接"就斷了...





為了應對這種情況
就必須要請出 Event Log 事件檢視器 與  Task Scheduler 工作排程器


過程會需要多次拔掉網路線,以模擬實際斷線情形


首先到 事件檢視器 > Windows 記錄 > 應用程式 底下
斷網路線後,找到RasClient事件

代碼 20226 連線中斷,代表網路斷線

代碼 20227 撥號失敗
如果斷的當下馬上接回、瞬間重連的話,是能夠撥號成功的。
但如果過了一兩分鐘網路才接回,則會進到撥號失敗。出現遠端連線無法存取等字樣




開啟 工作排程器 右鍵 建立基本工作



觸發條件
選擇 "當記錄特定的事件時"



記錄檔:應用程式
來源:RasClient
事件識別碼:20226



動作
啟動程式


這裡指定撥號連線的腳本開機自動撥接腳本,或者照下圖直接打上指令也行
連線的帳號、密碼










新增完成之後

勾選 "不論使用者登入與否均執行"



在此觸發程序這欄位 新增一個觸發條件




記錄檔:應用程式
來源:RasClient
事件識別碼:20227 (此處為20227,就是播號失敗)




現在此處有兩個條件了,只要網路斷線或者撥號連線失敗,就會觸發一次PPPOE撥號


然後出於確保這件事,我個人是都會在條件 設置延遲30秒,讓區域網路先連接上,才進行撥號
(我家的網路需要先連線成功、有網路已連線之後,才能進行PPPOE撥號取得固定IP)



20226、20227兩個觸發條件都有加


在條件欄位


在設定欄位
調整 嘗試重新啟動的次數上限(失敗重複執行的次數)
關閉執行時間大於以下值即停止





大功告成!
此時可以再度切斷網路線看看,是否過一小段時間後會重新連回!




(待研究)
如果不想用上面的方法(設定比較麻煩、但電腦耗費資源較低,因為是斷線或連線失敗才觸發)
可以採用寫腳本的方法
每隔一段時間(20秒 or 1分鐘)偵測是否斷線、偵測當下IP為何
如果不是預期狀況,則進行撥號


```
:loop
ping 8.8.8.8 -n 1 -w 1000 >nul
if errorlevel 1 (
    echo 網路斷線,嘗試重新連線...
    rasdial "PPPOE連線名稱" "帳號" "密碼"
) else (
    echo 網路連線正常
)
timeout /t 60 >nul
goto loop
```




沒有留言:

張貼留言