操作影片
建立 Google 帳號以及於 GCP 建立一個 instance
- GCP 提供了三個月內 300 美元內免費使用的 quota,所以先建立一個 Google 帳號,過程略。
- 前往 GCP console,輸入基本資料以及簽帳卡/信用卡資料告訴 GCP 你不是機器人,除非之後有開啟自動扣款,否則 GCP 不會主動扣款
- 在 GCP console 左邊的選單選項中找到 computer engine,建立一個 vm instance,選擇你要的地區,過程略,詳見操作影片。
參考配置
- 地點:你想要連線的地區,若距離與使用者太遠超過大半個地球將會有很嚴重的延遲
- 機器類型:N1
- 自訂核心數:1
- 自訂記憶體容量:2
- 架構: x86/64
- OS:UBUNTU 20.04
- 硬碟容量: 75 GiB
- HTTPS:
- HTTP traffic: On
- HTTPS traffic: On
- Allow Load Balancer Health checks: On
建立 VPN 伺服器
安裝 docker
- 與主機建立 ssh 連線
- 為 APT 倉庫加入 docker,輸入以下指令
# Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update
- 從 APT 倉庫下載 docker
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- 用 hello-world 容器測試 docker 是否成功安裝,這是 docker 官方提供用來驗證 docker 是否已經妥善安裝的容器,輸入下列指令之後若終端機顯示「Hello from Docker! This message shows that your installation apprars to be working correctly」表示已經成功安裝 docker
sudo docker run --rm hello-world
參考 docker 官方網站
建立 openvpn 容器
- 運行容器
sudo docker run -d --name openvpn-as --cap-add=NET_ADMIN -p 943:943 -p 8443:443 -p 1194:1194/udp -v ~/docker/openvpn-as:/openvpn openvpn/openvpn-as
- 進入容器
sudo docker exec -it openvpn-as /bin/bash
- 使用容器中的 sacli 工具重設密碼,用新密碼取代指令中的
your_password
sacli --user openvpn --new_pass <your_password> SetLocalPassword
- 更新設定
sacli start
- 離開容器
exit
參考 openvpn 官方文件
在 GCP 防火牆開啟 Port 943 8443 1194
- 點擊網路介面名稱(通常是 nic0),在裡面任何一個類別中加入 943 8443 1194,這是一個白名單,將想要開放的 port 寫進清單中就能開啟該 port 的對外服務。其中,943 是管理的網頁登入頁面
進入管理頁面
- 在網址欄位輸入
https://<主機的IP>:943/admin
,會顯示連線不安全的頁面,點開進階並且點擊最下面的繼續前往,進入管理登入頁面 - 帳號:
openvpn
, 密碼:輸入你更改的密碼 - 登入之後在左側選單找到
User Management
,點擊下面的User Permissions
,並增加一位新的使用者。你可以為這個使用者命名,我將其命名為 user,並記得開啟Allow auto login
,最後記得保存設定 - 在剛剛找到的
User Permissions
下方找到User Profiles
,你會找到 user 這個使用者,點擊New Profile
選擇自動登入後產生密鑰文件。這份密鑰文件/設定檔包含了所有的設定,在連線之前我們會對修正該文件當中的設定。 - 使用文件編輯器(如: vscode、notepad++、記事本…),開啟該設定檔
- 找到
push-peer-info
這一行,於是其下方增加兩行dhcp-option DNS 8.8.8.8 dhcp-option DNS 8.8.4.4
- 將文件中所有的 「172.17.0.x」的所有 IP 地址替換成主機 IP。
- 將文件中所有的 「443」替換為「8443」
下載 openvpn
- 在 https://openvpn.net/community-downloads/ 下載符合自己所持有設備架構的安裝檔
- 安裝完成之後將設定檔匯入到程式中就能夠透過 VPN 連線了