Skip to content

分類: Linux

利用排程工作(Cron job)來自動重啟掉線的路由器

本人居住於唐樓,很早以前便開始使用SIM卡上網取代昂貴8M網上爬。以前一直是使用Asus RT-AC51U加上華為E3372H-153的LTE Dongle來上網的,後來為了更高速的網速體驗,更換了Asus 4G-AC53U直接插SIM卡免煩方案。這樣可以把原先 LTE Dongle + Router的理論上限速度從100Mbps提高到300Mbps。

除了更換了上述方案外,我還更換了網絡供應商 (ISP),速度比以往提升了10多20Mbps。雖然速度提升了不少,但卻常常遇到斷線的問題,尤其繁忙時間更甚。(OS: 可能是這個ISP知道我是用作家居寬頻使用然後故意把我斷線) 斷線後前往路由器主頁觀看,狀態都是“連線中斷”、“沒有偵測到SIM卡”、“您ISP提供的DHCP功能發生錯誤”等等。

遇到以上問題, 正常來說直接等待Router再次連上SIM卡就好 ,但我卻發現我的Asus 4G-AC53U並不會自己重連,而是一直保持斷線狀態。經過Google幫助後,還是搞不清楚道是路由器的問題還是ISP的問題。最後只能亡羊補牢,嘗試設置斷線後自動重新連接,不用每次都手動重啟路由器。

在某個關於 Asuswrt-Merlin 的外國論壇上看到了Asus路由器的某些4G模組相關指令,嘗試自行編寫shell script來重啟interface,但無奈不是每次斷線都能重啟interface就能解決,還有其他原因會導致斷線。把心一橫,不行就直接重啟路由器算了。以下shell script是watchdog script的一種,監視著router如果不能連接google的話就會嘗試重啟interface,如果重啟之後10秒後依然不能連接到google的話就會重啟路由器。

SSH免密碼登入遠端主機

有多種系統維護的狀況,都是使用 shell script 方式到遠端去處理,而中間傳輸的過程需要加密,所以就必須使用 SSH 來連線,問題在於 shell script 執行時並不會有管理者去輸入密碼,那麼怎麼認證呢?怎麼免密碼到遠端主機去做事??

你需要幾個步驟

  • 設定 Firewall 
  • 建立 Public / Private key
  • 複製 Public Key 到遠端主機去

Step 1:設定防火牆 iptables

限制SFTP用戶只能到自己家目錄

Add the following to the end of the /etc/ssh/sshd_config file:

Subsystem sftp internal-sftp

# This section must be placed at the very end of sshd_config
Match Group sftponly
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no

This means that all users in the ‘sftponly’ group will be chroot’d to their home directory, where they only will be able to run internal SFTP processes.

Now you can create the group sftponly by running the following command:

Ubuntu上的防火牆(ufw)

早期在 Linux 上設定防火牆多事透過 iptables 這隻程式在下規則,不過說真的,對於新手或是要求很基本的使用者來說,iptables 有些功能其實用不到,例如 nat, forward等等的, 而且語法有點複雜,我自己也是常常要邊翻 man page 、筆記邊操作,後來有了令一套全名叫作 Uncomplicated Firewall 的 ufw,意思就是簡單的、不複雜的防火牆,相對於 iptables 來說,ufw 是真的簡單很多了!ufw其實只是一個 iptables 的前端設定程式,最後的規則都還是會走 iptables ,而且比較複雜的功能還是要直接透過 iptables 才有辦法做到!如果想看 ufw 設定完的 iptables 結果只要用這個命令就可以看到了:iptables -L -n

今天來講一下 ufw 的基本使用方式,Ubuntu 14.04 有內建 ufw,Debian要自行安裝,透過 apt-get 就可以了:
$ sudo apt-get install ufw

接下來示範的操作都在 Ubuntu 14.04 上面進行,不同的系統可以會略有出入。