最近我這台刷了DD-WRT,作為主路由器使用的TL-WR740N無線路由器(以下簡稱DD-WRT)偶爾會發生因為跑BT而導致當機斷線的問題。雖然每次只要重新開機就可以回復,但是每次都要手動重開機還是有點麻煩,所以我打算讓DD-WRT「在斷線的時候自動重開機」,省去手動重開的麻煩。

至於要怎麼讓DD-WRT在斷線時自動重開機?除了今天要分享的這個方法以外,我還有嘗試過用SSH的方式遙控。具體就是使用另一台24小時運作的Linux主機,這裡我使用網站伺服器,透過指令檢查連線狀況;當斷線時就自動透過SSH連線到DD-WRT,執行reboot指令重開。
不過我最近發現,其實在DD-WRT中就可以實作斷線重開的機制,不必透過別台主機遙控。這個就是這篇文章要分享的方法。
此方法是參考自這篇文章:DDWRT VPN: How to Enable Connection Watchdog / Keep Alive | (torguard.net)
具體步驟如下:
- 登入DD-WRT-打開瀏覽器,輸入你的DD-WRT路由器管理介面的IP位址,預設為192.168.1.1;然後輸入所設定的帳號密碼即可登入。
登入之後的畫面如下:
- 點選上面的”Administration(系統管理)”→”Keep Alive(保持連線)”標籤,切換到以下畫面
- 找到上圖的WDS/Connection Watchdog(WDS/連接看門狗),將其設為Enable(啟用),然後在IP Addresses(IP位址)輸入任意一個外網的IP(例如Google的DNS,我是使用8.8.8.8)。
Interval(更新)則是檢查間隔時間,單位為秒,看你想要讓它多久檢查一次就設定多少秒。這裡是設定360秒,即6分鐘。 - 完成之後先後點選Save與Apply Settings就可以了(我個人是這樣操作的,也可以直接點Apply Settings就可以了)
這樣子DD-WRT就會每隔6分鐘自動檢查是否能連線到Google DNS(或是其他所指定的IP位址);如果不通的話就會自動重開機,直到正常連線為止。
題外話:
- 這裡我的DD-WRT是設定成英文,因為設成中文的話會有少數地方的文字顯示成亂碼(我用的是較舊的版本)。我知道新版本已經解決了亂碼的問題,但是不知為何新版本就是無法在我的這台TL-WR740N上正常運作,所以就留在舊版本了。那為了避免中文顯示亂碼,所以就一直用英文。
- 此方法理論上大部分的上網方式都可以使用,例如透過固定IP、浮動IP,抑或是PPPoE(可能需要在路由器中設定硬撥)等方式。