简单的OpenVPN搭建之Windows
需求描述:
POC客户的云桌面需要与客户本地物理机通信以获取许可。
参考文档
1. 简书教程:https://www.jianshu.com/p/e0ba68e2f357
2. 官方文档:https://openvpn.net/index.php/open-source/documentation/howto.html#quick
操作步骤
1. 下载OpenVPN
官网,2.4.6自带OpenSSL,Windows的直接用exe安装就好了,记得在Server端安装的时候把EasyRSA勾上,不然就像我一样傻乎乎的去Github上再找源码。。不过我发现这个EasyRSA 2 Windows版是13年前的东西,牛逼啊。
2. 创建证书
OpenVPN安装目录/easy-rsa/vars.bat.sample
这个文件是个创建bat脚本的模板,一会会创建三次证书,不想打字的就在这里多改点
初始化操作:
接着,我们用管理员身份打开命令提示符窗口,并转到easy-rsa目录,然后依次执行如下命令完成初始化工作:
init-config vars clean-all
第一次执行clean-all时,提示"系统找不到指定的文件"是正常的,不用管它。该命令会删除掉之前生成的所有证书和密钥文件,以避免与之后全新生成的证书和密钥发生冲突。
1)第一个证书:CA证书
build-ca
看这里默认值都是前面在vars.bat.sample里面改的。后面几项我瞎写的也没事
2)第二个证书:服务器证书
build-key-server server
大部分跟上面一样,主要注意一个点:Common Name这里要写server。创建出来的证书名字就是server
输入密码,y,y。日常RSA操作。
3)第三个证书:客户端证书
build-key client1
有多少client就跑多少遍,1,2,3,4,5.
然后在Common Name填对应的名字
4)最后一个证书是迪飞赫尔曼密钥,很酷的样子,不知道是啥
build-dh
不过要等大概5分钟,比较久
5)开启tls-auth(可选)
简书教程说这是防DDoS的,总之是好东西,我就开了
6)增加客户端
引用简书教程里的话:如果你以后还想要创建新的客户端,只需要先执行vars
命令,再执行build-key clientName
命令即可(每次打开新的命令提示符窗口,都必须先执行vars
命令,才能执行其他命令)。
3. OpenVPN配置
在安装目录下有个sample-config文件夹,里面的".ovpn"文件就是配置文件的模板。其实基本上用server.ovpn跟client.ovpn这两个文件就能连通。
小提示:'#'号开头的注释是每一行配置的文字解释;';'号类似是一个“switch”的功能,为了区分文字行与配置行。
简单一个举例:
第34行的注释是解释下面这行配置事用TCP还是UDP协议,35行注释掉了配置tcp的代码,那么确实生效的配置就是36行的"proto udp",最后OpenVPN服务也将走UDP协议。
这个理解了以后就看着文字解释改吧,有什么不懂的就看参考最上面的官方文档,简书教程里把整个配置文件贴出来了,照着写也行。
4.华为云虚拟机配置
1)添加OpenVPN端口
在华为云Server端所在ECS的安全组里添加如下规则:
若使用云桌面作为Server端,请在名为“WorkspaceUserSecurityGroup”的安全组下添加此规则。
2)NAT网关设置(如果Server端有绑定EIP则可以跳过)
购买一个小型的NAT网关,并绑定一个1Mbit/s的EIP。进入NAT网关控制台,选中创建好的NAT网关,点击添加DNAT规则:
私网IP选择Server端的私网IP地址,点击确认。
DNAT公网的端口映射到私网的端口,所以私网端口一定要填OpenVPN默认的1194端口(当然你也可以在配置里面改,32行FYI)公网端口填没有被占用的端口就行。注意,这里的设置在client.ovpn里体现在第42行:remote "弹性公网IP" "公网端口"
5. 链接OpenVPN并验证结果
1)开启OpenVPN服务
进入Server端所在计算机的Windows服务界面(【开始】->【运行】->【services.msc】),然后启动OpenVPN Service服务,从而启动服务器端的OpenVPN。
开启后稍微等1分钟,可以运行命令:netstat -ano,来查看是否有个udp 1194的端口在监听
2)在Client端链接OpenVPN Server
切换到Client端服务器,双击安装OpenVPN时在桌面上生成的OpenVPN GUI图标,此时任务栏右下角会出现如下图所示的托盘图标,右键该图标,点击【connect】即可启动OpenVPN客户端,并尝试连接服务器。
如果连接成功,该托盘图标将会变为绿色,并且提示OpenVPN服务分配给Client端的隧道IP,如图:
如果一不留神没看到,可以右键点击OpenVPN图标 -> Show Status;在弹出窗口的最后一行看到,如图:
3)测试
尝试在Server端ping一下Client端的地址:执行命令ping 10.8.0.2
尝试在Client端ping一下Server端的地址:执行命令ping 10.8.0.1
如果都能ping通,那么VPN的通道就搭建好了。下一篇讲一下如何用Client端(Server端也行)作为跳转,让与Client端同网段的机器与Server端互信。
- 点赞
- 收藏
- 关注作者
评论(0)