源代码

使用OpenVPN的开发版本

得到OpenVPN快照

巴黎人官方网站-官网首页提供了几种不同类型的开发构建和快照:

  • Windows安装程序从每次提交构建
  • FreeBSD openvpn-devel港口. 也可以作为独立源快照在其他平台上使用.

请注意,这些快照要么完全未经测试,要么只进行了非常简短的测试. 所以不能保证它们能正常工作. 也就是说,大多数情况下,它们可能工作得很好.

使用git获取源文件

第二种选择是使用Git获取源代码. 这种方法是首选的,因为它允许您轻松地使用最新的代码. 请点击这里查看说明.

OpenVPN 2的源代码(服务器和客户端库)

可以获得OpenVPN 2的源代码 在这里.

OpenVPN 3的源代码(客户端库)

OpenVPN 3的源代码可用 在这里.

OpenVPN 2 GUI for Windows源码

源代码OpenVPN 2 GUI for Windows是可用的 在这里.

Android OpenVPN源码

源代码OpenVPN的Android由Arne Schwabe是可用的 在这里.

OpenVPN 3 Linux客户端源码

已获取OpenVPN 3 Linux客户端源代码 在这里 而且 在这里.

OpenVPN连接 v3源码

OpenVPN连接 v3 GUI软件由OpenVPN公司. OpenVPN访问服务器和OpenVPN云不是开源的. 但是,它可以免费下载并用于连接OpenVPN服务器. 它使用上面列出的开源OpenVPN 3客户端库.

建筑

如果你使用源快照/端口,你可以这样提取它们:

gzip直流openvpn -.焦油.焦油 XVF - . Gz | 焦油 XVF - . Gz
cd openvpn - /

使用Git可以跳过这一步. 接下来准备构建(稳定版本不需要):

autoreconf六世

下一个配置(见 ./配置——help提供可用的构建时选项):

./配置

最后编译:

使(- j)

一旦运行了make,就可以使用

制作安装

构建在MacOS X与自制

Homebrew不会将openssl库安装在标准路径中. 如果您得到类似于未定义符号的架构x86_64: "_SSL_CTX_get0_certificate" ...,您需要传递CPPFLAGS/LDFLAGS(正确的值显示在brew info openssl).

make [-j] CPPFLAGS=-I/usr/local/opt/openssl/include LDFLAGS=-L/usr/local/opt/openssl/lib

TAP-driver调试

请看这里.

OpenVPN调试

如果OpenVPN崩溃, 您可以通过提供崩溃的反向跟踪来帮助开发人员解决问题. 如果您正在运行OpenVPN的发布(稳定)版本, 您应该安装openvpn调试包和GDB包,然后通过GDB运行openvpn. 在“测试”上,在编译之前打开调试. 在任何一种情况下,你都可以像这样得到崩溃的回溯:

gdb /usr/sbin/openvpn美元

(gdb信息消息...等等等等...]

(gdb)执行——config命令

[等待崩溃]

(gdb)英国电信 [应该出现完整的回溯]

使核心转储

在某些情况下,当直接通过gdb运行时,不可能触发该bug. 在这种情况下,可以启用核心转储. 在今天的大多数发行版和*nix操作系统, 您需要在启动OpenVPN之前从您的shell中启用它.

$ ulimit -c无限

然后使用普通参数运行OpenVPN. 当OpenVPN崩溃, 它现在很可能会创建一个核心文件,用于在OpenVPN崩溃时调试它的状态.

$ GDB openvpn{核心文件}

(gdb信息消息...等等等等...]

(gdb)英国电信 [应该出现完整的回溯]

删除核心文件前请先保存一段时间. 在某些情况下,开发人员可能会要求获得核心文件的副本, 来更仔细地调查OpenVPN崩溃时的状态. 但是也要注意,这些核心文件可能(很可能)包含敏感数据, 比如加密密钥和证书. 所以要小心分享.

注意,如果你通过初始化脚本启动OpenVPN, 它很可能不会转储核心文件, 除非在初始化脚本中更改了ulimit.

报告错误

如果您不确定您的问题是否真的是一个bug,您可以在OpenVPN支持通道上询问.

如果你真的发现了一个bug, 看看是否有同样的问题报告给Trac, 如果它已经被修复了. 如果你找到了新的, 不固定的错误, make sure you know how to report bugs efficiently; good bug reports help resolve the problem quickly. 在每个bug报告中,你应该记录一些东西:

  • 操作系统(e.g. OpenBSD 4.3)
  • openvpn——version,或...
  • 您使用的Windows安装程序的完整文件名
  • OpenVPN客户端和/或服务器日志的相关部分(如果可用)的详细描述为动词5(参见手册页)
  • 如果你自己构建了OpenVPN ./配置命令行
  • 另外根据你的能力,在Trac中填写所有的字段

如果你发现的bug是一个回归,你想看到它尽快修复, 你可以通过做一个Git的二分法来帮助你. 这里描述了这种技术:

  • 寻找问题- Git Bisect
  • 与Git调试

二分法是一种高级技术,在提交bug报告之前不需要这样做.