# 透過 Docker 快速建立 openvpn 伺服器
TIP
本文章使用 DigitalOcean Ubuntu 16.04 x64 作為範例。
自從最近中華電信 499 之亂以後,家裡中華電信的光世代寬頻要連線到某些國外的網站 (BoardGameArena, 天命 2) 就非常地不穩定,於是我一時興起,自己架設了一個基於 OpenVPN 協定的 VPN 來使用,網路真的是穩定很多。
這次我選用的是在 Docker Hub 上面的 kylemanna/openvpn
這個 image,該 image 的原始英文教學在此 (opens new window)。
# 安裝
# 安裝 docker
curl -sSL get.docker.com | sh
# 將目前使用者新增到 docker 群組內,需要重新登入才會生效
sudo usermod -aG docker $USER
# 安裝 docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/$(curl -sL https://api.github.com/repos/docker/compose/releases/latest | grep tag_name | cut -d'"' -f 4)/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# 設定 docker-compose
mkdir ~/ovpn
cd ~/ovpn
nano docker-compose.yml # or vim
version: '2'
services:
ovpn:
image: kylemanna/openvpn
volumes:
- ./data:/etc/openvpn
ports:
- '1194:1194/udp'
cap_add:
- NET_ADMIN
restart: always
# Quick Start
該 image 的 Readme 檔案連結在此 (opens new window)。
# 請把後面的 udp 改成自己的網址
docker-compose run --rm ovpn ovpn_genconfig -u udp://open.taichunmin.idv.tw
# 需要輸入密碼以及一些設定值
docker-compose run --rm ovpn ovpn_initpki
# 啟動 ovpn 伺服器
docker-compose up -d
# 請將這個變數的內容改成自己想要的
export CLIENTNAME="taichunmin"
# 建立一個 client 的憑證 (不須密碼)
docker-compose run --rm ovpn easyrsa build-client-full "$CLIENTNAME" nopass
# 將 client 的憑證匯出
docker-compose run --rm ovpn ovpn_getclient "$CLIENTNAME" > "$CLIENTNAME.ovpn"
# 下載 taichunmin.ovpn
- Windows 放於:
C:\Users\taich\OpenVPN\config
# 在 client 安裝 OpenVPN Client
這裡都是按照這篇 DigitalOcean 上的教學文章 (opens new window)來安裝的。
# Windows
於 下載頁面 (opens new window) 下載安裝檔即可。