在项目当中需要访问一个三方接口及数据库,但是需要在CentOS7服务器上先配置OpenVPN,然后才能连接,现将整体配置过程记录如下。
安装
yum -y install epel-release
yum -y install openvpn
查看版本
openvpn --version
配置客户端证书
打开/ect/openvpn目录,进入client目录
将客户端证书及ovpn文件上传至该目录下
关于ovpn文件,一般是提供给你客户端证书的服务器端配置好的,发给你后需要做一些配置,一个是对方VPN服务器端IP地址,端口一般就是1194,另外一个是客户端证书在服务器上的路径,都改成./当前目录就可以了
client
dev tun
proto tcp
#真实的ip地址自己填写
remote 111.111.111.111 1194
ca ./client/OracleDBVPNca.crt
cert ./client/OracleDBVPN.crt
key ./client/OracleDBVPN.key
cipher AES-256-CBC
auth SHA512
auth-nocache
tls-version-min 1.2
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256
resolv-retry infinite
compress lzo
nobind
persist-key
persist-tun
mute-replay-warnings
verb 3
启动
配置完成后,就可以通过启动命令,指定启动时用的配置文件,和日志输出目录,来建立一个连接
openvpn --daemon --cd /etc/openvpn --config ./client/OracleDBVPN.ovpn --log-append /var/log/openvpn.log
查看是否启动成功
使用tail指令查看刚才启动时指定的日志文件
tail -1000f /var/log/openvpn.log
如果看到如下字符,就是启动成功了
Initialization Sequence Completed
如何断开VPN连接
执行以下命令搜索OpenVPN进程,并记录进程号
ps aux | grep openvpn
kill -9 <进程号> 就断开连接了
启动后尝试使用curl指令来尝试访问接口
curl --location --request POST 'https://xxxxxxxxxxxx.cn/vgc-vehicle-status/data/mongo/getVehicleLastStatus' --header 'Content-Type: application/json;charset=UTF-8' --data '{"vin":"WVWCM3AU8JW905301"}'
返回数据,证明VPN成功建立连接,访问也成功了
碰到 Please enter password with the systemd-tty-ask-password-agent tool! 怎么办
因为对端服务器还配置了密码认证,需要输入密码才能建立连接,在这种情况下需要先输入指令
systemd-tty-ask-password-agent
然后直接按提示输入密码就可以了