🔐 OpenVPN transport
OpenVPN transport brings up an OpenVPN profile for the duration of a scan.
Use it only for authorized workflows and local profiles you control.
System backend requirement
OpenDoor does not bundle or install a VPN client. The OpenVPN transport starts the system OpenVPN CLI for the duration of the scan.
Cross-platform behavior:
| OS | Requirement | Notes |
|---|---|---|
| macOS | OpenVPN CLI installed and reachable from PATH, or passed with --transport-bin |
Common Homebrew paths are checked automatically: /opt/homebrew/sbin/openvpn, /usr/local/sbin/openvpn |
| Linux | openvpn package installed, or binary passed with --transport-bin |
The process usually needs privileges to create TUN/TAP routes |
| Windows | OpenVPN Community client with openvpn.exe, or binary passed with --transport-bin |
Run the terminal as Administrator when the profile needs route/TAP changes |
If you use OpenVPN Connect, OpenVPN GUI, Tunnelblick, a corporate VPN agent, or another OS-level VPN app, start the VPN outside OpenDoor and run OpenDoor with the default direct transport. In that mode OpenDoor uses the already active system route.
Explicit executable path
Use --transport-bin when the executable is installed but not visible in PATH:
opendoor \
--host https://example.com \
--transport openvpn \
--transport-profile ./profile.ovpn \
--transport-bin /opt/homebrew/sbin/openvpn
Windows example:
opendoor `
--host https://example.com `
--transport openvpn `
--transport-profile .\profile.ovpn `
--transport-bin "C:\Program Files\OpenVPN\bin\openvpn.exe"
Basic usage
opendoor \
--host https://example.com \
--transport openvpn \
--transport-profile ./profile.ovpn
Username/password auth
For OpenVPN profiles that require auth-user-pass, provide an auth file:
opendoor \
--host https://example.com \
--transport openvpn \
--transport-profile ./profile.ovpn \
--openvpn-auth ./auth.txt
Example auth.txt format:
username
password
Do not commit auth.txt.
Transport timeout
opendoor \
--host https://example.com \
--transport openvpn \
--transport-profile ./profile.ovpn \
--transport-timeout 60
Healthcheck
opendoor \
--host https://example.com \
--transport openvpn \
--transport-profile ./profile.ovpn \
--transport-healthcheck-url https://ifconfig.me
Multiple OpenVPN profiles
Create vpn-profiles.txt:
./vpn/profile-1.ovpn
./vpn/profile-2.ovpn
./vpn/profile-3.ovpn
Run:
opendoor \
--hostlist targets.txt \
--transport openvpn \
--transport-profiles vpn-profiles.txt \
--transport-rotate per-target
Example profile
Use placeholder examples only.
data/openvpn-profiles/example.ovpn
Never commit real OpenVPN profiles, private keys, or auth files.