__This setup is working correctly on Ubuntu20-Server __
Assumming All These Commands are ran by Root User
-
Git Clone Kylemanna/docker-openvpn
git clone https://github.com/kylemanna/docker-openvpn.git && cd docker-openvpn -
Build OpenVPN docker image
docker build -t IMAGE_NAME . -
Generate Config for OpenVPN
docker run -v $PWD/etc-openvpn:/etc/openvpn --rm IMAGE_NAME ovpn_genconfig -u udp://$(curl text.wtfismyip.com):3000 -
Initialize PKI (Initialise PKI)
docker run -v $PWD/etc-openvpn:/etc/openvpn --rm -it IMAGE_NAME ovpn_initpki -
Generate a Strong Password When it prompt a password Enter step 5.a password.
65h%3$5^$$^#89like this -
It will prompt for a name
you call (any) -
Disable DNSStubListener
sed -r -i.orig 's/#?DNSStubListener=yes/DNSStubListener=no/g' /etc/systemd/resolved.confconfirm DNSStubListener=no bynano /etc/systemd/resolved.conf -
Replace original resolv.conf
sh -c 'rm /etc/resolv.conf && ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf' -
Restart systemd-resolved
systemctl restart systemd-resolved -
Ensure 53 is not used by Any Process
ss -tlnpw | grep 53 -
Create a docker network
docker network create --driver=bridge --subnet=172.20.0.0/24 --gateway=172.20.0.1 vpn-network -
docker-compose up -d -
docker exec -it openvpn ash -
#apk add nano && nano /etc/openvpn/openvpn.conf -
Comment out these lines
# push "dns-option DNS 8.8.8.8"# push "dns-option DNS 8.8.4.4 -
Add these lines
push "dns-option DNS 172.20.0.2"push "dns-option DNS 1.1.1.1 -
Generate a VPN profile (this will need step.5 password)
docker run -v $PWD/etc-openvpn:/etc/openvpn --rm -it laxzvpn easyrsa build-client-full minlaxz nopass -
Generate ovpn file
docker run -v $PWD/etc-openvpn:/etc/openvpn --rm laxzvpn ovpn_getclient minlaxz > minlaxz.ovpn