OpenVPN 架設

OpenVPN 架設

OpenVPN

使用 docker 架設 OpenVPN

環境

Server

Debian
Linode

  • Debian 10
  • Docker 20.10.8

Client

Windows

  • Windows 10
  • OpenVPN 2.5.1

安裝

安裝 docker

1
curl -sSL https://get.docker.com | sh

安裝 docker-compose

1
apt install docker-compose -y

設定

建立 config 資料夾

1
mkdir openvpn-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
vim 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

啟動

1
docker-compose up -d

產生 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

照片

測試

測試照片1

測試照片2

參考資料


OpenVPN 架設
https://hibana2077.github.io/post/OpenVPN-架設.html
Author
hibana2077
Posted on
December 30, 2023
Licensed under