Problem:
"generate openvpn client-config" renders a fixed template. Apart from values derived from the server interface (port, protocol, ciphers, TLS key), every directive in the client file is hard-coded:
- remote falls back to the placeholder x.x.x.x when the server listens on all addresses (no local-host)
- verb 3 is fixed
- client-only directives such as explicit-exit-notify, disable-dco or auth-user-pass cannot be added
So every generated .ovpn file has to be edited by hand before it is handed to an end user. That defeats the purpose of the command and can't be automated.
Proposal:
Add a client-config node under interfaces openvpn <vtunX> server. It holds settings that are used only by the op-mode generator and never by the running server. The design follows the existing server-side model: typed nodes for common directives, plus a raw openvpn-option escape hatch.
Examples:
set interfaces openvpn vtun0 server client-config verb 4 set interfaces openvpn vtun0 server client-config explicit-exit-notify 2 set interfaces openvpn vtun0 server client-config disable-dco set interfaces openvpn vtun0 server client-config openvpn-option 'connect-retry 5 30'
Raw openvpn-option (multi): free-form lines appended to the client file. If an option's keyword matches a directive the template already emits (e.g. verb), the template line is dropped, so the file has no conflicting duplicates.
Compatibility:
With no client-config configured, the generated file is identical to the current output. No migration script is needed.