OpenVPN的配置

来源:互联网 发布:罗技连点编程 编辑:程序博客网 时间:2024/05/16 16:23

OpenVPN配置了十多天才搞好了,真心觉得不容易。现在把我配置的过程给大家说一下,希望能给大家提供帮助。

我用的是OpenVPN2.3.6的版本32位的,客户端的系统是win7 32位系统 服务器端是win7 64位

首先,一些注意事项得提前给大家说一下:

(1)在两个不同局域网下的两个子网配置OpenVPN,客户端是无法连接的成功的,这是我实验出来的结果,网上也有这种说法。

(2)在同一局域网配置成功后,在不同局域网下不能连接成功(最开始配置时,我就是在网上找的配置方法,在同一个局域网下配置的,虽然客户端可以连接到服务器,然并没有什么意义)

(3)所有的而配置文件都是在服务器端进行的,配置好后,再把相应的文件拷贝到客户端即可。需要拷贝到客户端的文件有ca.crt    client.cet    client.key  client.ovpn   ta.key(可要可不要,我自己是生成了这个文件的)


好了,现在说说怎么安装配置吧

第一,将下载好的OpenVPN安装好,在安装时,以管理员身份运行,安装过程中,记住要将没有勾选的两个都要勾选,不要忘记了!然后就一直下一步就安装好了。

其中安装过程中会安装一个虚拟网卡,你安装即可。安装完后,你会发现在你的网络适配器总多了一个TAP-Windows AdapterV9。没错,就是它,这就是安装后多的一个虚拟网卡。(对于不知道网络适配器的,右键点击我的计算机——管理——设备管理器——网络适配器)


接下来就是配置啦:

(1),修改OpenVPN服务器端vars.bat.sample文件


文件路径根据自己的安装情况进行修改,我自己的是安装在D盘

修改完成后就进行接下来的工作

(2)打开电脑的终端,执行相应的命令:


(3)然后就是创建CA根证书:build-ca

我就把网上的截图发给大家参考:(这部分网上的都差不多,为了节约时间我就把网上的这个过程给大家看看,这样配置起来会轻松些)


common name就是相当于我们的账户一样


(4)创建服务器端证书:build-key-server server(为了节约时间,我就没有重新再到我的电脑配置了。这里也是网上找的截图,方法是对的,大家可以放心配置)


(5)创建迪菲·赫尔曼密钥:build-dh

上面的执行完后输入build-dh(记住,这只是在同一个终端窗口中进行的)



(6)创建客户端证书:build-key client


接下来会出现Sign the certification? [y/n] 输入y

接下来出现1 out of 1 certification requests certified,commit?[y/n]输入y

如果你想创建多个不同的客户端证书,只需要重复此步骤即可。切记,Common Name不要重复,这是OpenVPN用来区分不同客户端的关键所在

(7)生成ta.key:openvpn --genkey --secret keys/ta.key (可选操作)

这一步其实是可选操作,生成的ta.key主要用于防御DoS、UDP淹没等恶意攻击。命令中的第3个参数keys/ta.key表示生成的文件路径(含文件名)。

创建完证书后,我们会发现easy-rsa目录下多了一个keys文件夹。现在我们将keys文件夹中对应的文件复制到OpenVPN服务器或客户端的安装目录的config文件夹下。

这些都是在服务器端配置的,客户端在不用配置。

将easy-rsa文件夹中的keys文件夹中的ca.crt   ca.key   dh1024.pem    server.crt  server.key  ta.key(生成了的话,我个人在终端总中生成了的)复制到服务器端的config文件夹中,还需要将sample-config文件夹中的server.ovpn复制到服务器的文件夹中

将easy-key文件夹中的keys文件夹中的ca.crt  client.crt  client.key   ta.key(如果你生成了的话)以及sample-config文件夹中的client.ovpn复制到客户端中中的config文件夹中

如下图为我的客户端中config文件夹中的文件

接下来就是修改服务器端config文件夹中server.ovpn中的内容








就是这些划线的地方需要修改。其中#代表是注释的意思,也就是解释说明。

如果你生成了ta.key的话,在服务器端tls-auth ta.key 0是必须要的,在客户端就是tls-auth ta.key 1是必须要的。如果没有生成就不用管,在这行代码前会有";" 。;代表的也是注释的意思

在客户端的config中的client.ovpn中,修改内容如下:

client
dev tun
proto tcp
remote 218.199.183.151 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
ns-cert-type server
tls-auth ta.key 1
comp-lzo
verb 6

顺便说一下,打开方式用记事本打开

然后你在服务器端开启OpenVPN Service,将其设置为自动开启。开启方法:鼠标右键点击计算机——管理——服务和应用程序——服务,然后找到OpenVPN Service  开启即可。

然后在客户端去连接:双击客户端电脑桌面上的图标,在右下方会有一个灰色的图标,右键然后选择连接即可。如何变为绿色就是连接成功。


当然,可能不会成功,这时你就需要检查是什么原因了,要么是端口,要么是协议或者IP的原因

我选用的用的是1194的端口,这时你就需要确保端口还通的,怎么判断呢?

你可以另外打开一个端口:输入telnet+IP+端口号

例如:我的选用的IP是218.199.183.151,端口1194

我在终端输入telnet 218.199.183.151 1194如果是通的,终端不会提示出错,显示一个黑色的终端窗口

这时可能会报错,提示telnet不是内部命令,这时你需要在控制面板中打开程序,进入卸载或更改程序,在左边会有打开或关闭Windows功能,打开这项,这时需要等待一会儿,然后勾选telnet客户端即可。

有时候连接不上,或者ping不同可能是防火墙的原因,反正我个人是把客户端和服务器端的防火墙都管了的

对于IP的选择,记住,服务器端的IP不能是子网IP

如下图是我服务器端的网络连接情况


一共有三个IP,其中一个是本地IP,一个是公网IP(这个我还没太搞懂),一个还虚拟网卡的IP

我用的是公网的IP,原来几次实验都是用的本地IP来做的,一次都没有成功,后来换成了这个IP,客户端才成功连接上去了。大家可以试试,希望对你们有帮助,如果有什么不对的地方,还请各位指教,都是一起学习嘛,相互交流。

补充说明一下:客户端没有连接时,客户端是可以ping通这个公网IP的

如果连接不上,你可以换协议试试TCP或者UDP,记住,客户端和服务器端的协议必须要是一样的,原先我个人用的还UDP的协议,后开换成了TCP的协议才连接上的。

当所有的都修改后可以在服务器端重启一个OpenVPN Service服务。有时还是需要重启客户端的电脑,重启是最好的啦!

在多说一句,可以在终端使用netstat -ano查看端口的情况,看看端口是否开启







0 0