Openvpn的安装与使用(一)

环境

CentOS 7
file

安装

直接使用参考文章的命令,下载安装脚本:
wget https://raw.githubusercontent.com/Angristan/OpenVPN-install/master/openvpn-install.sh
此安装脚本,再次运行时可以添加、删除用户,还可以移除 VPN,如下图
file
添加用户时,生成的.ovpn文件就是在当前目录下
给脚本添加执行权限
chmod +x openvpn-install.sh
执行脚本
./openvpn-install.sh
安装过程中会要求输入一些信息

  1. 链接后分配的IP信息
  2. 服务端监听的IP地址、端口
  3. 生成Client的名称,【我使用的是 rojers
    file

基础就这些,然后就是一路回车,使用默认值。
安装好之后,生成的用于客户端链接文件.ovpn所在目录: /home/rojers/rojers.ovpn
生成的.ovpn文件,在客户端导入后,链接时会拦截所有请求到此VPN,需要此配置中,添加路由配置,否则可能导致机子无法上网
脚本执行完成后,查看服务状态命令
systemctl status openvpn-server@server
file
如果有报错,可以看看服务【service】的定义文件
查看安装好的openvpn版本
openvpn --version
file
安装客户端
根据openvpn的版本,下面有相应的客户端,
地址:https://openvpn.net/community-downloads/, 这是GUI版本-推荐
file
下面这个也可以https://openvpn.net/client/

注意点

问题1
在使用GUI版本链接服务器的时候,会报错All TAP-Windows adapters on this system are currently in use,这是因为在安装GUI时,没有安装好虚拟网上驱动导致。可自己再安装TAP-Windows 9.24.2

问题2
OpenVPN后可连接VPN但无法访问网络
这是因为链接了VPN后,其会从服务器拉取路由,并把所有请求都路由到此VPN上,如果服务器没的返回任何的路由配置,则导致本机无法上网,解决方法是修改客户端的配置文件:

# 增加如下配置
route-nopull #don't pull routes from the server
route 192.168.0.0 255.255.255.0 #direct all 192.168.0.* subnet traffic through the VPN
#route 192.168.0.1 255.255.255.255 #For one IP only (192.168.0.1)

问题3
报错: TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
解决:

  1. 检查两台机子之间的时间一致性,不一致就有问题,特别是相差时间多大。
    linux下可用命令:ntpdate pool.ntp.org
    国内可用的时钟服务有:
    s1a.time.edu.cn (北京邮电大学)s1b.time.edu.cn (清华大学)s1c.time.edu.cn (北京大学)s1d.time.edu.cn (北京邮电大学)
    还有其它各种云服务商提供的,如阿里云、腾讯云,华为云等
  2. 检查机子间的网络互通性,注意服务器防火墙,如果 tcp 协议,可以用 telnet 测试。如果是 udp 可以 nc [netcat] 测试,命令: nc -u 127.0.0.1 9000

问题4
windows的客户端GUI,会要求.net framework 4,注意安装,不过一般 win 11 的系统都已经安装了的

OpenVPN 设置账号密码登录-没有操作成功

服务重启

systemctl restart openvpn-server@server

参考文章

CentOS 7 安装 OpenVPN
CentOS 8 安装 OpenVPN
OpenVPN 设置账号密码登录
TAP-Windows 9.24.2下载地址1
TAP-Windows 9.24.2下载地址2
windows安装OpenVPN后可连接VPN但无法访问网络