Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Browse files

Cleaned up and updated INSTALL

- Changed "Supported platforms" to reflect current support status of the
  mentioned operatingsystems
- Removed mentions of the obsolete Python and domake-win buildsystems
- Added mention of official Debian/RPM packages
- Added links to the Wiki
- Added mention of the new openvpn-build cross-compile environment
- Added PolarSSL to and removed pthreads from the "Optional" section
- Added mention of test framework
- Removed some very old (pre-2005) nuggets of (obsolete) information
- Other minor cleanups
- Some reorganization

Signed-off-by: Samuli Seppänen <>
Acked-by: Gert Doering <>
Signed-off-by: Gert Doering <>
  • Loading branch information...
commit 607a678d371c56d368319b0a7a1bb147008d5822 1 parent 7e0d16a
@mattock mattock authored cron2 committed
Showing with 62 additions and 97 deletions.
  1. +62 −97 INSTALL
@@ -12,36 +12,53 @@ QUICK START:
./configure && make && make-install
- Windows MinGW, using MSYS bash shell:
- ./domake-win (see comments in the script for more info)
+ Cross-compile for Windows on Unix
- Windows Visual Studio:
- python win\
+ See INSTALL-win32.txt
To download OpenVPN, go to:
-For step-by-step installation instructions with real-world
-examples see:
+OpenVPN releases are also available as Debian/RPM packages:
+To download easy-rsa go to:
+To download tap-windows driver source code go to:
+To get the cross-compilation environment go to:
+For step-by-step instructions with real-world examples see:
For examples see:
+Also see the man page for more information, usage examples, and information on
+firewall configuration.
- (1) Linux 2.2+
+ (1) Linux (kernel 2.6+)
(2) Solaris
- (3) OpenBSD 3.0+ (Comes with OpenSSL and TUN devices by default)
- (4) Mac OS X Darwin
- (5) FreeBSD
- (6) NetBSD
+ (3) OpenBSD 5.1+
+ (4) Mac OS X Darwin 10.5+
+ (5) FreeBSD 7.4+
+ (6) NetBSD 5.0+
(7) Windows (WinXP and higher)
@@ -55,14 +72,15 @@ REQUIRES:
TUN/TAP Driver Configuration section below for more info.
OPTIONAL (but recommended):
- (1) OpenSSL library, necessary for encryption, version 0.9.5 or higher
+ (1) OpenSSL library, necessary for encryption, version 0.9.8 or higher
required, available from
- (2) LZO real-time compression library, required for link compression,
+ (2) PolarSSL library, an alternative for encryption, version 1.1 or higher
+ required, available from
+ (3) LZO real-time compression library, required for link compression,
available from
OpenBSD users can use ports or packages to install lzo, but remember
to add CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
directives to "configure", since gcc will not find them otherwise.
- (3) Pthread library.
OPTIONAL (for developers only):
(1) Autoconf 2.59 or higher + Automake 1.9 or higher
@@ -74,15 +92,18 @@ OPTIONAL (for developers only):
- git clone
+ Clone the repository:
+ git clone
+ git clone git://
Check out stable version:
- git checkout -b 2.2 remotes/origin/release/2.2
+ git checkout -b 2.2 remotes/origin/release/2.2
Check out master (unstable) branch:
- git checkout master
+ git checkout master
+TESTS (after BUILD):
make check (Run all tests below)
@@ -126,6 +147,9 @@ Test SSL/TLS negotiations (runs for 2 minutes):
./openvpn --config sample/sample-config-files/loopback-client (In one window)
./openvpn --config sample/sample-config-files/loopback-server (Simultaneously in another window)
+For more thorough client-server tests you can configure your own, private test
+environment. See tests/t_client.rc-sample for details.
OPTIONS for ./configure:
@@ -205,7 +229,7 @@ ENVIRONMENT for ./configure:
You can build a binary RPM directly from the OpenVPN tarball file:
@@ -224,7 +248,7 @@ startup or shutdown, based on OpenVPN .conf files in /etc/openvpn.
See the comments in openvpn.init for more information.
Installing the RPM will also configure the TUN/TAP device node
-for linux 2.4.
+for linux 2.6.
Note that the current openvpn.spec file, which instructs the rpm tool
how to build a package, will build OpenVPN with all options enabled,
@@ -236,56 +260,15 @@ you edit the openvpn.spec file.
TUN/TAP Driver Configuration:
-* Linux 2.4 or higher (with integrated TUN/TAP driver):
- (1) make device node: mknod /dev/net/tun c 10 200
- (2a) add to /etc/modules.conf: alias char-major-10-200 tun
- (2b) load driver: modprobe tun
- (3) enable routing: echo 1 > /proc/sys/net/ipv4/ip_forward
- Note that either of steps (2a) or (2b) is sufficient. While (2a)
- only needs to be done once per install, (2b) needs to be done once
- per reboot. If you install from RPM (see above) and use the
- openvpn.init script, these steps are taken care of for you.
-* Linux 2.2 or Solaris:
+* Linux 2.6 or higher (with integrated TUN/TAP driver):
- You should obtain
- version 1.1 of the TUN/TAP driver from
- and follow the installation instructions.
+ (1) load driver: modprobe tun
+ (2) enable routing: echo 1 > /proc/sys/net/ipv4/ip_forward
- If you use OpenVPN on Linux 2.2 or 2.4 or Solaris, you may be
- suffering from a bug which causes connections to hang under heavy load.
- The symptoms are very similar to the MTU problems discussed frequently
- in the OpenVPN mailing lists. But it turns out that this bug is not caused by
- MTU problems. It's a bug in the tun/tap driver. A patch is provided here:
+ Note that (1) needs to be done once per reboot. If you install from RPM (see
+ above) and use the openvpn.init script, these steps are taken care of for you.
-* Solaris
- For 64 bit, I used the tun-1.1.tar.gz source and compiled it.
- Of course there is a but :)
- In the tun-1-1\solaris\Makefile I changed a line so it compiles with 64 bit
- CFLAGS = $(DEFS) -m64 -O2 -Wall -D_KERNEL -I.
- I just added -m64 and it worked.
- The tun driver works fine as said previously, however we noticed there is a
- minor problem when creating multiple tunnels on Solaris.
- Mr Tycho Fruru changed the code in tun.c file where he locked the tun device
- number to -1. This way it is impossible to specify the name of the tun device
- but it is still possible to have multiple devices.
- The modification will increment automatically meaning starting from tun0 --->
- tunX I know you are not responsible for the tun coding but if you think the
- modification can be useful for you feel free to use it.
-* FreeBSD 4.1.1+:
+* FreeBSD:
FreeBSD ships with the TUN/TAP driver, and the device nodes for tap0,
tap1, tap2, tap3, tun0, tun1, tun2 and tun3 are made by default.
@@ -303,41 +286,23 @@ TUN/TAP Driver Configuration:
* OpenBSD:
- OpenBSD ships with tun0 and tun1 installed by default on pre-3.5 systems,
- while 3.5 and later have dynamically created tun* devices so you only need
+ OpenBSD has dynamically created tun* devices so you only need
to create an empty /etc/hostname.tun0 (tun1, tun2 and so on) for each tun
you plan to use to create the device(s) at boot.
-* Mac OS X:
- 2005.02.13: Angelo Laub has developed a GUI for OS X:
- 2004.10.26: Mattias Nissler has developed a new TUN/TAP driver for
- Christoph Pfisterer's old TUN driver can be obtained at
- -- note that it
- is no longer being maintained.
+* Solaris:
-* Solaris9 Sparc/64
+ You need a TUN/TAP kernel driver for OpenVPN to work:
- The kernel module for solaris
- can be generated by adding the -m64 switch to a modern
- gcc compiler (I'm using 3.2) The resulting kernel driver
- needs to be manually copied to /kernel/drv/sparcv9/ and then a
- reconfiguration reboot. (boot -r).
-* Windows XP/2003/Vista
+* Windows XP/2003/Vista/7:
- See domake-win for building instructions.
- See INSTALL-win32.txt for usage info.
+ OpenVPN on Windows needs a TUN/TAP kernel driver to work. OpenVPN installers
+ include this driver, so installing it separately is not usually required.
+ The driver source code is available here:
- See the man page for more information, usage examples, and
- information on firewall configuration.
Please sign in to comment.
Something went wrong with that request. Please try again.