/docker-openvpn-proxy

Docker container running openvpn client and clash proxy server

Primary LanguageDockerfileApache License 2.0Apache-2.0

docker-publish clash-version alpine openvpn-version license platform

🗺 Overview

The Computer can be a Mac mini, Intel nuc, router, or any x86/arm64 device

  graph LR;
  		subgraph R[Computer]
  		p[program] --http-proxy--> container
  		subgraph docker
  		container
  		end
      end
      PC --http-proxy--> container
      Phone --http-proxy--> container
      container --> OpenVPN((OpenVPN Network))
Loading

✨ Features

  • One port supports http and socks proxy protocol, by clash
  • Advanced routing configuration, by clash
  • Supports both x86 and arm64 architectures, by docker buildx
  • The docker stop signal is received correctly

🧙‍♂️ Quickstart

docker run --device=/dev/net/tun \
    --cap-add=NET_ADMIN \
    -v "path/to/config.ovpn:/app/ovpn.d/config.ovpn" \
    -p 7890:7890 \
    -d ghcr.io/hurui/docker-openvpn-proxy

If the openvpn service needs to set up an internal dns server, you need to add the --dns=ip parameter of docker run.

Suppose the ip of the dns service is 10.0.0.1, It is best to set up another public dns.

docker run --dns=10.0.0.1 --dns=1.1.1.1 ...

Override clash config file. More documents

docker run -v "path/to/config.yaml:/app/clash.d/config.yaml" ...

Credits