一、 总述:
1. 对于openvpn-2.1.0的编译,由于微软cl编译器和GNU的gcc行为不同,需要修改不多的几个源文件来适应微软的编译器
2. 对于openvpn-2.1.1的编译,根目录下没有了Makefile.w32-vc,估计作者们觉得不应该修改源文件以适应编译器,也不能保证修改源文件这种事普通用户一定能用好,因此采用了一种别的编译方式,即使用MinGW和MSYS来支持编译,不过这些包都要下载,安装,这些也要消耗不小的工作量,但是一劳永逸
3. 但是仍然能通过2.1.0的方式编译2.1.1,就是将Makefile.w32-vc复制过来,然后修改源文件
4. OpenVPN依赖OpenSSL,lzo以及pkcs11-helper,因此在编译OpenVPN之前必须确保上述依赖库均存在,如果都已经存在了,那么直接跳到第五节开始编译OpenVPN;
5. OpenVPN的2.1.0以及之前的版本和2.1.1版本在windows上的编译方式不同,但是基本原理都是一样的(编译+链接),因此不妨采用老版本的方式,手动拷贝makefile到新版本目录;
6. 由于windows的C编译器和GNU的编译器行为有所不同,所以需要手工修改一些文件来适应windows的编译器,下面的编译均使用“Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 for 80x86”编译器以及“Microsoft (R) Incremental Linker Version 8.00.50727.42”链接器,使用其它编译器的可能需要修改的文件以及怎样修改和此处不同甚至不用修改。
二、 编译OpenSSL
(略)
三、 编译lzo
1. 解压lzo到D:/lzo
2. 进入D:/lzo
3. nmake -f ms/nt.mak
4. 编译结果lzo2.lib
四、 编译pkcs11-helper
1. 解压pkcs11-helper到D:/ pkcs11-helper
2. cd D:/ pkcs11-helper/lib
3. nmake -f Makefile.w32-vc OPENSSL=1 OPENSSL_HOME=你的OpenSSL的路径
4. 如果遇到“pkcs11h-threading.c(477) : error C2036: 'void *' : unknown size”,那么修改“ret = (unsigned)(_data->start (_data->data) - (void*)0);”为“ ret = (unsigned)(_data->start (_data->data));”
5. 编译结果:libpkcs11-helper-1.dll,libpkcs11-helper.lib
五、 编译OpenVPN
1. 解压openvpn-2.1.1.tar.gz到一个目录,比如D:/openvpn;
2. 拷贝openvpn的2.1.0版本下的autodefs整个目录到2.1.1版本的根目录D:/openvpn下;
3. 将openvpn的2.1.0版本下的makefile.w32-vc拷贝到2.1.1版本的根目录D:/openvpn下;
4. 修改makefile.w32-vc:
1) 将OPENSSL改成你的系统上OpenSSL的源码目录
2) 将LZO改成你的系统上lzo的源码目录
3) 将PKCS11_HELPER改成你的系统上pkcs11-helper源码目录
4) 将lzo河pkcs11-helper的库文件分别修改成你的lzo和pkcs11-helper的实际编译结果:lzo2.lib,
5. 修改makefile.w32-vc:OBJS =下面的cryptoapi.obj /后面添加一行:dhcp.obj /
6. 修改config-win32.h:
1) #define TAP_ID tap0901->#define TAP_ID “tap0901”
2) #define PACKAGE openvpn->#define PACKAGE “openvpn”
3) #define PACKAGE_NAME OpenVPN->#define PACKAGE_NAME “OpenVPN”
4) #define PACKAGE_TARNAME openvpn->#define PACKAGE_TARNAME “openvpn”
5) #define PACKAGE_VERSION 2.1.1->#define PACKAGE_VERSION “2.1.1”
6) 注释掉下面一行:#define vsnprintf _vsnprintf
7. 修改misc.c:
const int n_rnd_bytes = 6;-> #define n_rnd_bytes 6
8. 在D:/openvpn下执行:nmake /f makefile.w32-vc
9. 编译结果:openvpn.exe
附:
1.对于openvpn-2.1.0的编译,由于微软cl编译器和GNU的gcc行为不同,需要修改不多的几个源文件来适应微软的编译器
2.对于openvpn-2.1.1的编译,根目录下没有了Makefile.w32-vc,估计作者们觉得不应该修改源文件以适应编译器,也不能保证修改源文件这种事普通用户一定能用好, 因此采用了一种别的编译方式,即使用MinGW和MSYS来支持编译,不过这些包都要下载,安装,这些也要消耗不小的工作量,但是一劳永逸
3.但是仍然能通过2.1.0的方式编译2.1.1,就是将Makefile.w32-vc复制过来,然后修改源文件。
分享到:
相关推荐
基于openvpn的web管理系统,前后端分离设计。
2. **普通PC软件包**:这部分可能包含常用的操作系统(如Windows或Linux)、办公软件、防病毒软件等,是个人计算机用户日常使用的必备软件。在网络环境中,保持所有设备的软件更新和安全是防止潜在威胁的重要措施。 ...
与原版open-build-master相比,我做了稍稍修改,已经包含Open虚拟专网2.5源代码和依赖项源代码,需要VS2019、ActivePerl、WDK10,可以直接按照我写的教程进行编译,100%可编译。
这个是服务端 功能:可以搭建各种网络代理(电脑端和手机端都能使用);把多个局域网连接成一个大局域网;其他各种强大的网络搭建都能做 截止到发贴日(2024-5-13),最新的版本是该版本 v4.43-9799 ...
//直接连外网代理,如何有连外面vpn就不需要,下面的连接是例子不能直接连改自己IP和端口 export http_proxy=http://192.168.0.122:1111 https_proxy=http://192.168.0.122:111 cd /Users/Documents/mac/...
TAP-Windows Adapter V9虚拟网卡的源代码tap-windows6-master-9.23.3.601.zip,可参考我写的教程用VS2019+WDK10编译。
网上收集来的,别问干什么用,我什么都不知道,给OPENWRT的GUI界面添加什么功能,配置某些功能方便点而已
OpenConnect GUI 这是openconnect VPN的GUI客户端。 该客户端处于beta测试阶段。 不能假定它提供了所需的安全性。 查看项目网页以获取详细描述,屏幕截图和其他相关项目。支持平台Microsoft Windows 7及更高版本...
openvpn的几种组网方式
这个特定的压缩包“httest-2.4.9-win.zip”包含了httest的Windows版本,允许用户在Windows操作系统上执行HTTP测试。 **httest简介** httest是一个灵活的脚本语言驱动的工具,它模拟多个客户端并发地与服务器交互,...
softether-client-v4.34-9745-beta-2020.04.05-windows-x86_x64-intel.zip
windows
通过VPN,将企事业单位在地域上分布在全世界各地的LAN或专用子网,有机地联成一个整体。不仅省去了专用通信线路,而且为信息共享提供了技术保障。 三.NAT NAT英文全称是"Network Address Translation",中文意思是...
开放式 基于 openfortivpn 连接到 Fortigate-Hardware 的 VPN-GUI 更多详情、使用方法,请下载后阅读README.md文件
softether-vpnserver-linux
Tap-Windows Adapter 虚拟网卡 vpn 多联 神器
跨域VPN-OptionB方案中,ASBR接收本域内和域外传过来的所有跨域VPN-IPv4路由,再把VPN-IPv4路由发布出去。 但MPLS VPN的基本实现中,PE上只保存与本地VPN实例的VPN Target相匹配的VPN路由。通过对标签VPN-IPv4路由...
Windows Server 合规漏洞修复,修复Windows Server CVE-2016-2183 SSL/TLS协议信息泄露漏洞修复脚本,基于Windows PowerShell, 兼容Windows Server 2016/2019,防止Sweet32 生日攻击
用于安装windows tap虚拟网卡。虚拟网卡设备必备。上网必备
openvpn 2.5.10版本,通过三板斧即可安装,证书生成需要的easy-rsa3.1.5版本也在压缩包里面。