在 Asuswrt-Merlin 使用 OpenVPN server

文章目錄

Asuswrt-Merlin 提供的 VPN 方案

Asuswrt-Merlin 提供兩種 VPN server 工具, PPTPOpenVPN. PPTP 看起來已經被淘汰, 連 iOS 10 以上都不支援 PPTP 了. 因此目前看來是只能用 OpenVPN.

註1: Asuswrt 官方原版似乎有提供 PPTP, OpenVPN, IPSec VPN 這三種 VPN server, 可參考 https://www.asus.com/tw/support/FAQ/1044190/, 不過我已經刷 Asuswrt-Merlin 了, 就不測試了.

測試環境

  • Asus RC-AC66U B1
  • Asuswrt-Merlin 386.5 (這個版本的 OpenVPN 是 2.5.5)

OpenVPN server 安裝

  1. Asuswrt-Merlin 已經內建就裝好了 OpenVPN (server 和 client 都有), 不用另外安裝. 如果你要查詢 OpenVPN 版本, 可參考這裡 https://www.asuswrt-merlin.net/changelog. 以我測試的 Asuswrt-Merlin 386.5_2 版本來看, 他用的 OpenVPN 版本是 2.5.6 (第 3 列)
    1386.5_2 (25-March-2022)
    2- UPDATED: openssl to 1.1.1n.
    3- UPDATED: openvpn to 2.5.6.
    4- CHANGED: Added Wireguard module + userspace tool to
    5            GT-AXE11000.
    6......
    

OpenVPN server 設定

1. OpenVPN server 一般設定

  1. 首先進入 VPN 伺服器, 他可以建立兩個 OpenVPN server, 預設是 Server 1, 把它開啟. 我的需求是只有要透過 VPN 來連內網的電腦, 沒有要再連出去 Internet, 所以設定 "LAN only". 另外, 如果需要使用者輸入帳號密碼, 請在最後面新增一個 username.

2. OpenVPN server 進階設定

  1. 再來是進階設定, 先在下拉式選單這裡選 "進階設定"

  2. 進階設定內容如下, 如果希望 user 在 login 的時候要輸入帳號密碼, 那 "Username/Password Authentication 就需要選 "是".

  3. 設定好後, 請再回到一般設定, 然後把設定值輸出到成一個 .opvn 檔案.

  4. 要注意的是, Asuswrt-Merlin 產生的 client1.ovpn 裡面給的是 IP, 如果你用的不是固定 IP, 而是使用 DDNS 之類的, 請記得修改裡面 remote 後面的 IP. 下面是 DDNS 的設定

  5. 以這個例子來講, 請注意這邊要自己修改 remote 後面的 test12345.asuscomm.com, 不然他預設給的是 IP, 這樣一旦 IP 跑掉, 就連不上了.

     1# Config generated by Asuswrt-Merlin 386.5, requires OpenVPN 2.4.0 or newer.
     2
     3client
     4dev tun
     5proto udp
     6remote test12345.asuscomm.com 1194
     7resolv-retry infinite
     8nobind
     9float
    10ncp-ciphers AES-128-GCM:AES-256-GCM:AES-128-CBC:AES-256-CBC
    11comp-lzo adaptive
    12keepalive 15 60
    13remote-cert-tls server
    

OpenVPN Client for Windows

  1. 下載 OpenVPN client, 裝好後選 import 匯入設定檔, 把上面的檔案輸入進去, 就可以使用了. OpenVPN client for Windows, 目前有兩個版本, 兩個用起來差不多.
    1. OpenVPN Connect for Windows, 可在 這裡 下載
    2. OpenVPN GUI, 可在 這裡 下載

OpenVPN Client for Android

  1. 從這裡下載: https://play.google.com/store/apps/details?id=net.openvpn.openvpn

  2. 連線成功後, 會出現這樣的通知, 可以直接在通知的地方暫停或斷線, 還滿方便的.

  3. App 本身也會顯示使用的網路狀況, 可看出連線時間還有進出的流量等等資訊.

OpenVPN Client for iOS, MacOS, Linux

  1. 可在這裡下載其他平台的 client.

Asuswrt-Merlin OpenVPN Server 上的連線狀況

  1. 從這裡可以看出他有幾個 client, 實際和VPN的IP, 從甚麼時候連的, 使用的資料量等等.

Asuswrt-Merlin OpenVPN 還不足的地方

感覺這還是比較陽春的 VPN server, 想到幾個不足的地方, 不過個人使用綽綽有餘了.

  1. 沒有 timeout 機制, 連上來了就不會斷線.
  2. 沒法限制 client 個數, 可能可以用 DHCP IP 數量來卡. (Synology 的 OpenVPN 可以卡 client 個數)
  3. 管理介面沒法把人踢掉

Asuswrt-Merlin OpenVPN 的好處

  1. 個人簡易使用還滿方便的, 不用為了做一個 VPN 還找找一台機器.
  2. 他沒有 OpenVPN 2 個連線的限制 (參考這裡)

延伸閱讀 (for OpenVPN)

  1. 如果你要自己在 Linux(Ubuntu) 上安裝 OpenVPN server, 可參考 OpenVPN server 簡易安裝使用 (Ubuntu)
  2. 用果有興趣使用 Prometheus 來監控 OpenVPN server, 可參考 用 Prometheus 來監控 OpenVPN server
  3. 這是一篇 Open Source VPN 方案的簡單比較和測速: Open Source VPN 之不嚴謹比較

Posts in this Series