[小菜一碟] 使用 OpenVPN 的 CLI(Command-line interface)來連線 Surfshark VPN

Surfshark VPN(沒有業配)在 Windows 的介面中沒有 CLI 可以用,或許有,但我找不到,這樣就變成說我後續要使用 CLI 接一些自動化的工作很麻煩,幸好,像這麼大的 VPN 服務提供商都有支援使用 OpenVPN 來連線。

使用 OpenVPN GUI 連線 Surfshark VPN

關於使用 OpenVPN GUI 來連線 Surfshark VPN 的步驟,在 Surfshark 的官網有很詳細的說明,因為使用 GUI 不是我要的,所以我就不贅述,不過在過程中下載下來的 .ovpn 檔,以及 UsernamePassword 後續我們會用到。

使用 OpenVPN Command 連線 Surfshark VPN

openvpn-gui.exe 有一個 --command 指令,我們可以使用 --help 來查看說明。

"C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --help

匯入 .ovpn 檔案

首先,我們將從 Surfshark 下載回來的 .ovpn 檔,用 --command import [config file] 這個指令,匯入到 OpenVPN。

"C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --command import "{ovpn 檔案路徑}"

要得知有沒有匯入成功?可以檢查 %USERPROFILE%\OpenVPN\config 這個路徑裡面,有沒有存在以 .ovpn 檔名建立的資料夾來判斷。

設定 Username/Password

此時已經可以連線了,但是如果我們在這個時候進行連線,則會跳出要我們輸入使用者名稱密碼的提示視窗。

要自動帶入使用者名稱和密碼,有兩種方式:

一、將使用者名稱和密碼儲存到一個 .txt 檔案中,儲存的方式為「第一行是使用者名稱」,「第二行是密碼」,然後將這個 .txt 檔案的路徑帶到 .ovpn 檔案中的 auth-user-pass 參數後面,這邊要注意的是路徑中 \ 要改用 \\

二、在 .ovpn 檔案中使用 <auth-user-pass></auth-user-pass> 標籤設定使用者名稱和密碼。

執行連線 VPN 指令

一切就緒後,我們執行下面的指令進行連線。

"C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --command connect [config name]

連線成功之後,可以看到視窗右下角的圖示變成綠色的。

除此之外還有一些方便我們執行連線和斷線的指令:

  • --command reconnect [config name]:重新連線
  • --command disconnect [config name]:中斷連線
  • --command disconnect_all:中斷所有連線

※ 最後,如果覺得連線過程中跳出來的提示視窗很礙眼的話,我們可以在 OpenVPN 的設定中將它們關掉。

參考資料

相關資源

C# 指南
ASP.NET 教學
ASP.NET MVC 指引
Azure SQL Database 教學
SQL Server 教學
Xamarin.Forms 教學