OpenVPN 架設
使用 docker 架設 OpenVPN
環境
Server
Client
安裝
安裝 docker
1
| curl -sSL https://get.docker.com | sh
|
安裝 docker-compose
1
| apt install docker-compose -y
|
設定
建立 config 資料夾
初始化
1
| docker run -v $PWD/openvpn-config:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u udp://<your host ip or domain>
|
建立 CA
1
| docker run -v $PWD/openvpn-config:/etc/openvpn --rm -it kylemanna/openvpn ovpn_initpki
|
過程中會要求輸入密碼,請自行記錄,這個密碼會在產生 Client Certificate 時使用到
Server 啟動
透過 docker-compose 啟動
先建立 docker-compose.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| version: '3' services: openvpn-service: image: kylemanna/openvpn container_name: openvpn-service cap_add: - NET_ADMIN restart: always logging: driver: "json-file" options: max-size: "1m" max-file: "3" ports: - "1194:1194/udp" networks: - openvpn-service volumes: - ./openvpn-config:/etc/openvpn
networks: openvpn-service: driver: bridge
|
啟動
產生 Client Certificate
這個步驟是為了產生 Client Certificate,讓 Client 可以透過 OpenVPN 連線
1
| docker run -v $PWD/openvpn-config:/etc/openvpn --rm -it kylemanna/openvpn easyrsa build-client-full [client name] nopass
|
匯出 Client Certificate
1
| docker run -v $PWD/openvpn-config:/etc/openvpn --rm kylemanna/openvpn ovpn_getclient [client name] > [client name].ovpn
|
下載 Client Certificate
1
| scp [user]@[host]:[path] ./
|
Client 連線
在本地端電腦,下載並安裝完成 OpenVPN Client,以進行 VPN 連線。
把下載的 Client Certificate 匯入 OpenVPN
測試
參考資料