OpenVPN Connect on iOS / Android

OpenVPN 在上個月推出了 OpenVPN Connect for iOS ,連同去年推出的 OpenVPN Connect for Android,算是把產品線補齊了。今天趁過年假期,裝起來測試了一下。

先來張截圖:

設定時要注意的地方:

  • 如果要用帳號密碼認證,Client 的 .ovpn 設定檔除了要加上auth-user-pass以外,還要另外加一行:setenv CLIENT_CERT 0
  • root / intermediate CA、憑證與 Private Key 可以使用以下格式直接放在 .ovpn 檔案內:(Private Key 建議放在 Keychain 內,或是設定 client-cert-not-required

    <ca>
    —–BEGIN CERTIFICATE—–
    DlDCC…
    LMlZ=
    —–END CERTIFICATE—–
    </ca>
    <cert>

    </cert>
    <key>

    </key>

  • 先讀完 FAQ 再進行設定會省下很多時間

優點:

  • 免費的 SSL VPN(Server 是 GPL License)
  • 支援帳號密碼認證,也支援 2 Factor Authentication
  • 可以走 TCP 也可以走 UDP
  • 可以吃 Android / iOS 內建的 Keychain
  • 支援 IPv6

缺點:

  • 需要手動匯入 .ovpn 設定檔。Android 設備可以直接放到 SD Card 或是 Dropbox 裡面,但是 iOS 設備需要用 iTunes 或是 Mail App 匯入(不能用 Gmail App,一定得用內建 Mail App),麻煩不少。
  • Android 版本在通知欄會出現兩個 ICON

利用 Percona Playback warm-up MySQL 資料庫…

Percona Playback 是一套可以將事先記錄下來的 SQL Query Log 在指定的 MySQL Server 上重作一次的工具,目前最新的版本是 0.5,支援讀取 slow query log 或是 tcpdump capture file。Percona 標榜可以完全按照 Query Log 的 Pattern (包含 thread concurrency,query 所花的時間等等)來重作一次 Query,不過測試的結果還是有點落差。

首先先在 Production 的 Server 上面紀錄 Query Log。因為 Percona Playback 0.5 的 Slow Query Reader 是爛的(bug 1035217),所以只能用 tcpdump:
tcpdump -w log.dump dst port 3306 and dst ip 192.168.1.1

記錄到足夠長度的 log 之後,把 log 放到要測試的 MySQL 機器上,開始執行 percona playback。要注意的是,所有的 Log (包含 UPDATE, DELETE, INSERT 等等會修改資料庫內容的 Query)都會被執行,如果要在 Slave 上跑的話,記得要事先濾掉,才不會造成 Master Slave 不同步的狀況。
percona-playback --input-plugin=tcpdump --tcpdump-filelog.dump --tcpdump-mode=fast --mysql-host=127.0.0.1 --mysql-username=root --mysql-schema=mydb

官方文件是使用 --tcpdump-mode=accurate,速度慢很多,使用 --tcpdump-mode=fast 會快不少。