##测试环境 虚拟机(即服务器)centos7 客户端:Windows 10 专业版 openvpn客户端版本:2.4.0 openvpn服务端: https://github.com/guoew/openvpn-install
服务端安装
a.下载openvpn: https://github.com/guoew/openvpn-install 将以上压缩包下载到服务器你喜欢的位置,解压,执行 bash openvpn-install.sh 命令
First, provide the IPv4 address of the network interface you want OpenVPN
listening to.
# 这一步直接回车
This server is behind NAT. What is the public IPv4 address or hostname?
Public IP address / hostname:
# 这一步要输入你的公网ip
Which protocol do you want for OpenVPN connections?
1) UDP (recommended)
2) TCP
Protocol [1-2]:
#这一步看你自己选择,默认1也可以
What port do you want OpenVPN listening to?
Port: 1194
#这一步是服务端口,看自己需求可以修改
Which DNS do you want to use with the VPN?
#这一步选dns,默认1就好
Finally, tell me your name for the client certificate.
Please, use one word only, no special characters.
Client name: client
#这一步创建客户端连接配置文件,输入文件名,默认client就好
# ...
Your client configuration is available at: /xxx/xxx/client.ovpn #客户端配置文件路径(一般是在/etc/openvpn/,看这里提示是什么就去哪里找)
最后看到有Finished!字样,说明安装完成
b.配置客户端账号密码 在openvpn安装目录下,有userfile.sh文件,里面可以添加客户端账号密码,格式如下:
ashdui 123iojsa
ioeur 343234098
c.查看openvpn是否正确安装,正确运行
systemctl status openvpn-server@server.service
确认无误,即完成安装
再次执行bash openvpn-install.sh 会有四个菜单选项(添加、撤销、卸载、退出),可根据自身实际情况应用,如下:
Looks like OpenVPN is already installed.
What do you want to do?
1) Add a new user
2) Revoke an existing user
3) Remove OpenVPN
4) Exit
Select an option [1-4]:
客户端安装
a.将上面生成的 client.ovpn 文件下载
b.下载安装openvpn.exe文件;安装过程会提示安装虚拟网卡,点允许,需要什么权限也要点允许;
c.运行后,桌面状态栏点击图标,显示
再点击Import file,选择client.ovpn导入;
再点击Connect,会提示账号密码,输入即可
测试是否成功
服务器运行ipconfig,找到一条以下内容; 10.8.0.1是服务器的虚拟局域网ip
tun0: flags=4305 mtu 1500
inet 10.8.0.1 netmask 255.255.255.0 destination 10.8.0.1
windows客户端连接后,运行ipconfig; 10.8.0.2是本机的虚拟局域网ip(在openvpn连接服务器后,windows会弹出通知, 通知中也有提示)
以太网适配器 以太网 3:
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . :
IPv4 地址 . . . . . . . . . . . . : 10.8.0.2
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . :
测试,客户端可以ping通服务器<(^-^)>
服务器ping客户端不通的解决办法
wechat: mistue8
不同用户端,使用不同的证书,更安全,但openvpn默认的用户添加是多个用户用相同的客户端证书
为此,我写了一个sh脚本文件,实现一次添加多个用户端,自动添加账号密码(密码自动生成)到 userfile.sh , 并将账号,证书,key等文件统一打包为zip文件, 以更方便的下载并部署连接; 需要脚本wechat: mistue8
还有一次移除多个客户端sh脚本