Skip to content

OpenVPN

The CA placeholder is not a valid certificate and must be replaced. The server determines password and client-certificate requirements; supply valid authentication. Both forms can coexist, with cert and key supplied as a pair. Only dev: tun is supported, not TAP. Certificate and static-key fields take content rather than paths. Map the relevant .ovpn fields to YAML rather than pasting an entire .ovpn file into proxies.

Node example

Merge this node into the configuration’s proxies list. Replace example addresses, identities, and credentials. If you rename Node, update group references too.

yaml
proxies:
  - name: Node
    type: openvpn
    server: proxy.example.com
    port: 1194
    proto: udp
    username: YOUR_USERNAME
    password: YOUR_PASSWORD
    ca: |
      -----BEGIN CERTIFICATE-----
      REPLACE_WITH_CA_CERTIFICATE_BODY
      -----END CERTIFICATE-----

Protocol fields

FieldHow to configure it
protoudp or tcp, matching the .ovpn transport.
caCopy the complete certificate from the .ovpn <ca> block into a YAML block string.
username / passwordCredentials for auth-user-pass authentication.
cert / keyComplete <cert> and <key> content when the server requires client certificates.
tls-auth / key-directionStatic TLS authentication key and direction, when required.
tls-crypt / tls-crypt-v2Use the matching control-channel key from the source config; avoid mixing modes.
cipher / data-ciphers / authData cipher, negotiated cipher list, and authentication digest from the service.
ping / ping-restart / handshake-timeoutPing, restart, and handshake timeouts in seconds.

Groups and rules · Common fields · TLS · Transports

Reference: mihomo.