首先:
安装tap驱动
获取到tap驱动的安装文件,我这里是从别的系统中安装了tap驱动的安装文件拷贝出来的TAP-Windows
目录。
然后运行命令
TAP-Windows\bin\tapinstall.exe install TAP-Windows\driver\OemVista.inf tap0901
tap驱动便能安装好了。
然后安装openvpn
获取到openvpn的安装文件
第一步安装openvpn服务
方法一:运行命令 bin\openvpnserv.exe -install 就能安装openvpn服务
方法二:也可以通过编程添加服务来安装openvpn服务。代码如下:
#define SRV_NAME _T("OpenVPNService") //服务名称
#define SRV_INFO _T(" ") //服务说明
#define SRV_PATH _T("\"C:\\vpn\\OpenVPN\\bin\\openvpnserv.exe\"") //系统服务程序的路径
void CreateSrv()
{
SC_HANDLE scMgr = NULL;
SC_HANDLE service = NULL;
scMgr = OpenSCManager(NULL, NULL, SC_MANAGER_CREATE_SERVICE);
if (scMgr == NULL){
printf("OpenSCManager() Error \n");
return ;
}
service = CreateService(scMgr, SRV_NAME, SRV_INFO, SERVICE_ALL_ACCESS,
SERVICE_WIN32_OWN_PROCESS,
SERVICE_AUTO_START, SERVICE_ERROR_NORMAL,
SRV_PATH, 0, 0, 0, 0, 0);
if (service)
printf("Create a new service successful!/ n");
else
printf("Failed to create a new service!/ n");
CloseServiceHandle(scMgr);
CloseServiceHandle(service);
}
方法三: 添加注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\OpenVPNService
第二步 添加注册表
去services.msc中找到openvpn服务,启动,会发现并不能成功。
必须在注册表中添加HKEY_LOCAL_MACHINE\SOFTWARE\OpenVPN 项
并在OpenVPN项下添加键值
添加注册表可以手动在注册表添加,当然也可用编程实现。代码如下
BOOL CreateReg()
{
int err = 0;
BOOL bRet = FALSE;
HKEY hKey = NULL;
WCHAR path[MAX_PATH] = _T("SOFTWARE\\OpenVPN");
//创建项,如果存在就打开
if (ERROR_SUCCESS != (err = RegCreateKeyEx(HKEY_LOCAL_MACHINE, path, 0, NULL,
REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, NULL)))
{
goto RET;
}
//这里的键值为"",代表第一项对默认值进行设置。
if (ERROR_SUCCESS != (err = RegSetValueEx(hKey, L"", 0, REG_SZ, (BYTE*)L"C:\\vpn\\OpenVPN",
wcslen(L"C:\\vpn\\OpenVPN") * sizeof(WCHAR))))
{
goto RET;
}
//添加 config_dir项
if (ERROR_SUCCESS != (err = RegSetValueEx(hKey, L"config_dir", 0, REG_SZ, (BYTE*)L"C:\\vpn\\OpenVPN\\config",
wcslen(L"C:\\vpn\\OpenVPN\\config") * sizeof(WCHAR))))
{
goto RET;
}
//添加 config_ext项
if (ERROR_SUCCESS != (err = RegSetValueEx(hKey, L"config_ext", 0, REG_SZ, (BYTE*)L"ovpn",
wcslen(L"ovpn") * sizeof(WCHAR))))
{
goto RET;
}
//添加 exe_path项
if (ERROR_SUCCESS != (err = RegSetValueEx(hKey, L"exe_path", 0, REG_SZ, (BYTE*)L"C:\\vpn\\OpenVPN\\bin\\openvpn.exe",
wcslen(L"C:\\vpn\\OpenVPN\\bin\\openvpn.exe") * sizeof(WCHAR))))
{
goto RET;
}
//添加 log_append项
if (ERROR_SUCCESS != (err = RegSetValueEx(hKey, L"log_append", 0, REG_SZ, (BYTE*)L"0",
wcslen(L"0") * sizeof(WCHAR))))
{
goto RET;
}
//添加 log_dir项
if (ERROR_SUCCESS != (err = RegSetValueEx(hKey, L"log_dir", 0, REG_SZ, (BYTE*)L"C:\\vpn\\OpenVPN\\log",
wcslen(L"C:\\vpn\\OpenVPN\\log") * sizeof(WCHAR))))
{
goto RET;
}
//添加 priority项
if (ERROR_SUCCESS != (err = RegSetValueEx(hKey, L"priority", 0, REG_SZ, (BYTE*)L"NORMAL_PRIORITY_CLASS",
wcslen(L"NORMAL_PRIORITY_CLASS") * sizeof(WCHAR))))
{
goto RET;
}
bRet = TRUE;
RET:
if (hKey)
{
RegCloseKey(hKey);
}
return bRet;
}
然后在服务中启动openvpn服务就能成功启动了 。
openvpn就安装完成了。
原文地址:http://blog.csdn.net/hpp24/article/details/68944257