windows下利用OpenVPN搭建VPNserver

一、OpenVPN是一款功能强大,可跨平台(支持Win 2000/XP/2003, Linux, Mac OS X, Solaris, FreeBSD, NetBSD, 和 OpenBSD)使用的SSL VPNserver软件(详细说明见官方主页官方主页http://openvpn.net)。

下载地址:http://openvpn.net/index.php/download.html

二、安装与配置

第一步:安装openvpn这一部分是服务端跟client都要做的工作,操作全然同样双击 openvpn-2.2.2-install.exe进行安装,点击NEXT,I Agree,NEXT之后開始选择安装路径,建议按默认路径C:\Program Files\OpenVPN安装(以免后面生成证书麻烦) 。点击 Install 開始安装,安装过程中,弹出硬件安装窗体,点击仍然继续,安装虚拟网卡。点击 next,Finish 完毕安装。

第二步: VPNserver配置:

说明:架设OPENVPNserver,server方面做的工作比較多,client相对来说就比較简单。

server採用RSA证书和密钥验证方式对client进行验证,默认情况下证书和用户是一对一的,多个用户使用同一证书会被踢出。所以首先要做的工作就是证书的制作。

在进行操作之前,首先进行初始化工作:

(1)改动C:\Program Files\OPENVPN\easy-rsa\vars.bat.sample的下面部分

set HOME=%ProgramFiles%\OpenVPN\easy-rsa

set KEY_COUNTRY=US

set KEY_PROVINCE=CA

set KEY_CITY=SanFrancisco

set KEY_ORG=FortFunston

set [email protected]

请依据自身情况改动,也能够不改动!以下是解释

set HOME=C:\Program Files\OPENVPN\easy-rsa

set KEY_COUNTRY=CN                               #(国家)

set KEY_PROVINCE=GuangDong              #(省份)

set KEY_CITY=ShenZhen                             #(城市)

set KEY_ORG=oovc.com                              #(组织)

set [email protected]            #(邮件地址)

文件里以#開始的是凝视,请不要写到文件里。

打开命令提示符:

開始-->执行...-->键入cmd,回车,进入命令提示符

或者 開始-->程序-->附件-->命令提示符

进入C:\Program Files\openvpn\easy-rsa文件夹下:

命令例如以下:

(1)cd C:\Program Files\openvpn\easy-rsa

init-config

vars

clean-all

上面是初始化工作,以后,在进行证书制作工作时,仍旧须要进行初始化,但仅仅须要进入openvpn\easy-rsa文件夹,执行vars就能够了,不须要上面那些步骤了。

(2)以下開始证书的制作:

生成根证书:(请输入红字部分)

build-ca

Common Name (eg, your name or your server‘s hostname) [changeme]:OpenVPN-CA

Name [changeme]:

build-dh

生成服务端密钥:

build-key-server server

以下贴出须要交互的部分,其它地方默认。

Common Name (eg, your name or your server‘s hostname) [changeme]:server

Name [changeme]:

The Subject‘s Distinguished Name is as follows

countryName           :PRINTABLE:‘US‘

stateOrProvinceName   :PRINTABLE:‘CA‘

localityName          :PRINTABLE:‘SanFrancisco‘

organizationName      :PRINTABLE:‘OpenVPN‘

organizationalUnitName:PRINTABLE:‘changeme‘

commonName            :PRINTABLE:‘server‘

name                  :PRINTABLE:‘changeme‘

emailAddress          :IA5STRING:‘[email protected]‘

Certificate is to be certified until Aug 19 11:12:06 2022 GMT (3650 days)

Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y

生成client密钥

build-key client

Common Name (eg, your name or your server‘s hostname) [changeme]:client

Name [changeme]:

The Subject‘s Distinguished Name is as follows

countryName           :PRINTABLE:‘US‘

stateOrProvinceName   :PRINTABLE:‘CA‘

localityName          :PRINTABLE:‘SanFrancisco‘

organizationName      :PRINTABLE:‘OpenVPN‘

organizationalUnitName:PRINTABLE:‘changeme‘

commonName            :PRINTABLE:‘11111111‘

name                  :PRINTABLE:‘changeme‘

emailAddress          :IA5STRING:‘[email protected]‘

Certificate is to be certified until Aug 19 11:24:35 2022 GMT (3650 days)

Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y

build-key client2 //能够继续配置第二个VPN客户端密钥

//生成的密钥存放于C:\Program Files\openvpn\easy\rsa\keys文件夹下

接下来開始配置server和client:

(3)将生成的ca.crt,dh1024.pem,server.crt,server.key拷贝到C:\Program Files\OpenVPN\config文件夹下,这四个文件是VPN服务端执行所须要的文件。

(4)ca.crt,client.crt,client.key这三个是VPN客户端所须要的文件,拷贝到客户端机器的C:\Program Files\OpenVPN\config文件夹下

(5)在C:\Program Files\OpenVPN\config文件夹下创建服务端配置文件server.ovpn:

服务器端配置文件演示样例:(server.ovpn)

local 192.168.3.1     //openvpn服务端网卡的IP,也能够不写

port 443                     //服务端端口号,依据须要自行改动,假设是用http代理连接请不要改动

proto tcp                    //通过tcp协议连接

dev tap                       //路由模式windows下必须设为tap

ca ca.crt                     //ca证书存放位置我放在了当前文件夹以下也能够用(ca "C:\\Program Files\\OPENVPN\\config\\ca.crt")

cert server.crt            //服务器证书存放位置,请依据实际情况自行改动

key server.key           //服务器密钥存放位置,请依据实际情况自行改动

dh dh1024.pem       //dh1024.pem存放位置,请依据实际情况自行改动

server 172.16.0.0 255.255.255.0      //虚拟局域网网段设置,请依据须要自行改动,不支持和拔号网卡位于同一网段

ifconfig-pool-persist ipp.txt        //在openvpn重新启动时,再次连接的client将依旧被分配和曾经一样的IP地址

push "route 0.0.0.0 0.0.0.0"      //表示client通过VPN SERVER上网

push "redirect-gateway def1 bypass-dhcp"    //使client全部网络通信通过vpn

push "dhcp-option DNS 208.67.222.222"      //DNS配置,依据实际情况配置

push "dhcp-option DNS 208.67.220.220"      //DNS配置,依据实际情况配置

client-to-client             //使客户端能相互訪问

duplicate-cn                //这条经常使用于測试用途,凝视该条可实现限制一个证书在同一时刻仅仅能有一个client接入

keepalive 10 120

;cipher BF-CBC        # Blowfish (default)      //选择一种加密算法与client保持一致

;cipher AES-128-CBC  # AES

;cipher DES-EDE3-CBC  # Triple-DES

comp-lzo                           //同意数据压缩与client保持一致

;max-clients 100              //最大客户端并发连接数量

;user nobody                    //定义执行openvpn的用户用于用户认证能够不採用用户认证

;group nobody

persist-key   //通过keepalive检測超时后,又一次启动VPN,不又一次读取keys,保留第一次使用的keys

persist-tap   //通过keepalive检測超时后,又一次启动VPN,一直保持tun或者tap设备是linkup的,否则网络连接会先linkdown然后linkup

status openvpn-status.log      //定期把openvpn的一些状态信息写到文件里,以便自己敲代码计费或者进行其它操作

verb 3               //设置日志记录冗长级别

mute 20           //反复日志记录限额

(6)客户端设置:在客户端安装完毕之后,须要将 ca.crt client.crt client.key 这三个文件复制到C:\Program Files\openvpn\config文件夹下,这三个文件由服务端生成,所以,连接谁的server,就须要跟谁索取这三个文件。

然后,编辑一个 client.ovpn的配置文件存放到C:\Program Files\openvpn\config文件夹下,客户端就能够进行连接了。

客户端文件演示样例:(client.ovpn)

client             //定义是一个客户端

dev tap          //路由模式windows下必须设为tap,与服务端保持一致

proto tcp       //通过tcp协议连接,与服务端保持一致

remote 192.168.223.1 443     //指定服务端IP地址和port,能够用多行指定多台server,实现负载均衡(从上往下尝试)

;remote-random               //若上面配置了多台server,让client随机连接

resolv-retry infinite           //解析server域名

nobind          //client不须要绑定port

;user nobody      //安全设置。注意:Windows不能设置

;group nobody

persist-key

persist-tun

;http-proxy-retry          //代理连接错误时重试

;http-proxy [proxy server] [proxy port]     //若client通过HTTP Proxy设置,Proxy不能使用UDP为VPN的通讯协议

mute-replay-warnings       //无线网络常常会产生非常多反复的数据包。将此标志设置为反复的数据包关闭警告。

ca “C:\\Program Files\\OpenVPN\\config\\ca.crt”              //证书位置依据实际情况加入

cert “C:\\Program Files\\OpenVPN\\config\\client.crt”      //证书位置依据实际情况加入

key “C:\\Program Files\\OpenVPN\\config\\client.key”     //证书位置更加实际情况加入

comp-lzo          //使用lzo压缩,与服务端一致

verb 3

;mute 20

上面的配置拔号成功后,VPN SERVER的IP:172.16.0.1,VPN client的IP:172.16.0.2。ping 172.16.0.1  //相互之间应能ping通

三、openvpnclient通过服务端訪问网络

(1)设置VPN SERVER上的”internet连接共享“来实现clinet通过VPN SERVER上网:(须要两块网卡)

(2)单网卡分类例如以下:

1. 打开 Routing and remote access服务

2. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\IPEnableRouter= 1   重新启动

2 netsh

routing ip nat

install

add interface name="本地连接 2" mode=full //server上用于上外网的连接

add interface name="本地连接 3" mode=private //安装OpenVPN时生成的虚拟连接

add interface name="内部" mode=private

输入show interface命令后显示:

NAT 内部 配置

---------------------------

模式              : 专用接口

NAT 本地连接 2 配置

---------------------------

模式              : 地址和port转换

NAT 本地连接 3 配置

---------------------------

模式              : 专用接口

即表示NAT配置成功,重新启动。

以上步骤实现后,则VPN+NAT配置成功。可拨入主机,并可通过主机代理出去訪问主机所在的资源。如同处在主机带的局域网中。

WindowsXP Pro下单网卡实现VPN+NAT代理server

Step 1

按Win+R 输入并执行services.msc,在服务里面寻找Routing and Remote Access,右键单击进入属性,将启动类型更改为自己主动,并点击启动button。

Step 2

打开网上邻居,在左側网络任务里面点击"查看网络连接",能够看到"传入"字样,这表示Step1操作成功.单击右键打开"传入的连接"的属性,在"常规"标签中虚拟专用网中钩选"同意他人通过internet...",在"用户"标签中同意的连接的用户钩选对应用户,确定退出。至此,VPN配置完成。

Step 3

按Win+R 输入并执行netsh,继续输入routing并回车,继续输入ip并回车,继续输入nat并回车,继续输入install并回车。然后输入add interface name="内部" mode=private并回车,输入add interface "本地连接" full并回车。输入show interface并回车,假设出现

NAT 内部 配置

---------------------------

模式              : 专用接口

NAT 本地连接 配置

---------------------------

模式              : 地址和port转换

即表示NAT配置成功。

windows Vista单网卡VPN server+NAT配置成功

Windows XP和2003都能做NAT,差别在于2003有GUI配置界面,而XP仅仅能通过字符界面来配置,也就是用netsh routing。可是Vista和win7默认在netsh命令控制台中没有routing接口,需从服务版操作系统中复制ipmontr.dll和ippromon.dll这2个文件到system32目录中,Vista与windows server 2008 相相应(windows server 2003好像也能用) ,win7与windows
server 2008 R2相相应(2008R2没有32位版,能够用GNS3模拟一个路由器然后一个口连本地物理网卡一个口连openv虚拟出来的网卡,然后再模拟的路由器上做NAT和路由配置就能够绕过netsh routing的配置了,实际測试好像经过模拟设备速度变慢了),复制相应的server操作系统文件ipmontr.dll和ippromon.dll就可以(server仅仅有在脚色配置中配置启动了路由和路由远程控制脚色才会有这两个文件)我从2003的安装镜像里面找到两个文件。add
helper ippromon.dll 的时候提示错误,先 delete helper ipmontr.dll, delete helper ippromon.dll,然后再add helper就成功了。

加完这两个文件,就能看到netsh里有routing了,然后就能照着XP以下的配置方法来配置了。

时间: 2024-12-20 12:39:19

windows下利用OpenVPN搭建VPNserver的相关文章

Windows下利用Cygwin搭建C/C++开发环境GCC

1.下载cygwin 下载地址:http://www.cygwin.com/ 2.下载完成后点击运行 3.选择镜像时可以选择添加清华镜像,在"User URL"处输入以下地址: https://mirrors.tuna.tsinghua.edu.cn/cygwin/ 点击"Add"按钮, 然后选中"https://mirrors.tuna.tsinghua.edu.cn", 点击"下一步"进行安装. 4.在这个页面之后,就是最

Windows下Git服务器搭建[转]

Windows下Git服务器搭建 作为对前两天Git服务器搭建的一个整理,我想分别从服务端和客户端两个角度来记录下整个搭建过程,为了达到目标,我们需要哪些操作. (一)服务端软件和账号的安装配置 我们这里只需要两个软件git和ssh,软件版本如下,这两个版本的安装也是非常简单,基本只要注意一点即可:安装目录最好不要用默认路径,确保安装路径中没有空格.其他步骤基本一路Next即可. Git-1.8.1.2-preview20130201.exe Copssh_4.1.0_Installer.exe

windows下subversion服务器搭建

一.下载subversion服务器端和客户端软件 1.subversion下载地址:http://subversion.tigris.org/ 2.svn比较流行的客户端Tortoisesvn下载地址:http://tortoisesvn.net/downloads 3.安装subversion服务器和Tortoisesvn,若是exe文件直接安装,若是zip解压后即可(若是想方便,可以在环境变量中配置bin) 二.创建版本库(Repository) 若是想在f:\svnroot下建立版本库,需

windows下如何快速搭建web.py开发框架

在windows下如何快速搭建web.py开发框架 用Python进行web开发的话有很多框架供选择,比如最出名的Django,tornado等,除了这些框架之外,有一个轻量级的框架使用起来也是非常方便和顺手,就是web.py.它由一名黑客所创建,但是不幸的是这位创建者于2013年自杀了.据说现在由另外一个人在维护和更新.现在就来了解一下windows下如何搭建web.py开发环境. 一.安装web.py 在 https://github.com/webpy/webpy上下载web.py安装包.

cocos2d-x_ Windows下Android环境搭建

在Windows环境下编译cocos2d-x-3.0 Android-NDK编译:cocos2d-x(二) Mac 下搭建:http://www.cocoachina.com/bbs/read.php?tid=199238 1. 安装配置开发环境 安装JDK  jdk-8u5-windows-i586 安装ant  apache-ant-1.9.4-bin.zip 安装SDK  adt-bundle-windows-x86-20140321 安装NDK  android-ndk-r9d-wind

windows下egret环境搭建

作者:zccst 1,下载安装nodejs 安装完毕,通过cmd.exe查看 node -v正常 npm 时报错:nodejs/windows Error: ENOENT, stat 'C:\Users\RT\AppData\Roaming\npm' 解决办法:Manually creating a folder named 'npm' in the displayed path fixed the problem 翻译过来就是,在'C:\Users\RT\AppData\Roaming\'下建

[转帖]cocos2d-x 3.0rc开发指南:Windows下Android环境搭建

原文请看:http://blog.csdn.net/linzhengqun/article/details/21663341 鲜红字体请注意:文中红色字体乃是本文博主阳光下的蒲公英添加.红色字体部分造成的问题,本博主一概不负任何责任.其他字体的责任由原文作者负责.(本文博主是不是特别无节操了呢....O(∩_∩)O哈哈哈~) 安装工具 1. 配置JDK JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.ht

windows下discus的搭建

Discuz! X 是一款以 PHP 为编程语言,以 MySQL 为数据库,并使用 Apache/IIS/Nginx(任意一种即可) 提供 web 服务的产品.要搭建 Discuz! X 站点,服务器必须安装由 PHP.MySQL.Apache/IIS/Nginx 构成的环境.其中,IIS 主要用于 Windows 服务器,Apache.Nginx 多用于 Linux 服务器(即 LAMP 和 LNMP). Windows 服务器部署时,需要按照一定的部署顺序,即: 系统环境检查 -> MySQ

Windows下利用rsync实现邮件服务器数据的同步

Windows下利用rsync实现邮件服务器数据的同步 背景环境 对系统管理员来说,平时的工作重心应该集中在维护 系统正常运转,能够正常提供服务上,这里往往牵涉到 一个数据备份的问题,在我所了解的情况中,有80%的系统管理员不是太关心自己服务器的安全性,但往往对 备份镜像的技术相当感兴趣,但由于商业产品的软硬件价格都相当高昂,因此往往会选择自由软件.rsync就 是这样的软件,它可以满足绝大多数要求不是特 别高的备份需求.适用于数据不是很大,海量小的文件的存储备份,结合服务器本身的磁盘阵列技术,