在路由器安裝 OpenWrt 及 WireGuard VPN

最近買了一台空氣清淨機,附有 Wifi 功能,可以隨時透過 App 偵測室內空氣品質。我覺得這點做得滿棒的,但因為數據是直接傳到廠商的伺服器,想把對外的 IP 隱藏起來,興起了想透過路由器設定 VPN 的念頭。

原本相中 PCWRT 家的路由器,但正逢缺貨,作為替代找了一款便宜的迷你型路由器 GL.iNet GL-MT300N,用的是聯發科晶片,可以安裝 OpenWrt 系統。

以下簡要敘述安裝的過程。

  1. OpenWrt 官網 下載預先編譯好的韌體。
  2. 將路由器接上電源、連上 Wifi 後,進入 http://192.168.8.1,上傳並安裝 OpenWrt 韌體檔。
  3. 安裝後,透過 LAN 連線,確定連線並取得 DHCP IP,進入 http://192.168.1.1,預設帳號及密碼皆為 root。
  4. 到 System ➔ Software,點擊 Update lists... 按鈕,等待系統更新 package 列表。Filter 搜尋 wireguard,找到 luci-app-wireguard 並安裝。安裝完到 System ➔ Reboot 重啟系統。
  5. 到 Network ➔ Interfaces 新增 WireGuard 介面,名稱隨意訂,Protocol 選 WireGuard VPN,點建立。
  6. 編輯 WireGuard 介面,透過最下方的 Import configuration 匯入 從 ProtonVPN 網站生成的 WireGuard config 檔。
  7. 編輯 WAN 介面,切換到 Advanced Settings 分頁,取消勾選 Use DNS servers advertised by peer,然後在 Use custom DNS servers 填入 ProtonVPN config 檔所提供的 DNS server 位址。
  8. 到 Network ➔ Firewall 新增 Zone,名稱隨意取,Input 選 rejected、Output 選 accepted、Forward 選 rejected,Masquerading 和 MSS clamping 都勾選;Covered networks 選剛剛建立的 WireGuard 介面;Allow forward from source zones 選 lan 介面。
  9. 如果想要在 VPN 連不上的時候斷開網路,不要改連 WAN,就要設定 Kill Switch。編輯 lan zone,從 Allow forward to destination zones 移除 WAN 介面,只留下 WireGuard 介面。
  10. 至此就設定完成了。可以在連線 LAN 後檢查 WireGuard 介面的 RX 跟 TX 有沒有收到封包,若有代表有成功透過 WireGuard 介面傳輸。

參考資料

Comments