OpenConnect is an SSL VPN client initially created to support Cisco's AnyConnect SSL VPN.
It has since been ported to support the Juniper SSL VPN (which is now known as Pulse Connect Secure), the Palo Alto Networks GlobalProtect SSL VPN the F5 Big-IP SSL VPN, and the Fortinet FortiGate SSL VPN.
An openconnect VPN server (ocserv), which implements an improved version of the Cisco AnyConnect protocol, has also been written. You can find it on Gitlab at https://gitlab.com/openconnect/ocserv.
If you're looking for the standard vpnc-script, which is invoked by OpenConnect for routing and DNS setup,
you can find it on Gitlab at https://gitlab.com/openconnect/vpnc-scripts.
OpenConnect is released under the GNU Lesser Public License, version 2.1.
Documentation for OpenConnect is built from the www/ directory in this repository, and lives in rendered form at https://www.infradead.org/openconnect.
Commonly-sought documentation:
- Manual
- Getting Started / Building (includes build instructions)
- Packages (including latest development build of the CLI for 64-bit Windows, and for 32-bit Windows)
- Contribute
- Mailing list / Help
- GUIs / Front Ends
- VPN Server / ocserv
- Protocol-specific details
Windows 10/11 only.
Build instructions on MSYS2 UCRT64:
pacman -Syuu
pacman -S --needed \
git \
base-devel unzip \
autoconf automake libtool make jq \
mingw-w64-ucrt-x86_64-gcc \
mingw-w64-ucrt-x86_64-pkgconf \
mingw-w64-ucrt-x86_64-gnutls \
mingw-w64-ucrt-x86_64-libxml2 \
mingw-w64-ucrt-x86_64-zlib \
mingw-w64-ucrt-x86_64-lz4 \
mingw-w64-ucrt-x86_64-gettext \
mingw-w64-ucrt-x86_64-libiconv \
mingw-w64-ucrt-x86_64-p11-kit \
mingw-w64-ucrt-x86_64-nsis
# git submodule update --init --recursive
make distclean
./autogen.sh
CFLAGS="-O3 -s -flto -mtune=native -march=x86-64-v3 -static -fstack-protector-strong -D_FORTIFY_SOURCE=3 -fstack-clash-protection -fcf-protection=full -fno-ident" \
LDFLAGS="-O3 -s -flto -static -Wl,--high-entropy-va -Wl,--nxcompat -Wl,--dynamicbase" \
./configure \
--prefix=/ucrt64 \
--enable-socks5-tun \
--with-gnutls \
--enable-static \
--disable-shared \
--without-libproxy \
--without-stoken \
--without-gssapi \
--with-java=no \
--disable-docs \
--with-external-browser=no \
--disable-nls \
--with-gnutls-tss2=no \
--without-libpskc \
--without-libpcsclite \
--disable-dsa-tests \
--disable-flask-tests \
--without-asan-broken-tests
make -j32Then unzip the installer (as it automatically bundles DLLs for you) and run the openconnect CLI:
./openconnect --socks5-port 10807 vpn2fa.hku.hk --user uid@connect.hku.hk