本文将在Ubuntu22.04服务器安装OpenVpn服务端,并在Windows10安装OpenVpn客户端。
安装OpenVpn和Easy-RSA
Easy-RSA主要用来生成CA证书,服务端证书和key,客户端证书和key。先登录Ubuntu服务器,然后用root身份执行下文的命令。
1  | sudo apt update  | 
制作所需的证书
执行如下命令
1  | cd /usr/share/easy-rsa  | 
开始制作证书
1  | # 执行完这个命令,会在/usr/share/easy-rsa下多出个pki目录  | 
配置OpenVpn服务端
拷贝配置文件
1  | cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/  | 
拷贝刚才创建的CA证书,服务端证书和key(私钥),客户端证书和key,以及创建tls的key
1  | cd /etc/openvpn/  | 
编辑服务端配置文件server.conf,改成如下内容:
1  | # vpn服务端口  | 
启动vpn服务端
1  | systemctl start openvpn@server  | 
如果你的Ubuntu系统是云服务器,通常管理后台可以设置防火墙,建议在Ubuntu关闭ufw:
1  | # 停止ufw  | 
设置IP转发
如果你搭建的VPN服务器所在的内网还有其他云服务器,你想访问其他云服务器就应该设置ip转发。就如上文描述的,我们在VPN服务端配置文件server.conf中配置了 push "route 192.168.0.0 255.255.255.224"。
打开内核ip转发:
1  | # 编辑文件/etc/sysctl.conf  | 
设置防火墙(iptables )转发规则:
1  | # 设置源地址翻译SNAT:把来自10.8.100.0/24的流量在离开网络接口ens3前,修改源ip为192.168.0.28  | 
重启下vpn服务端:systemctl start openvpn@server。到这里,服务端安装完成。
安装Windows客户端
在openvpn官网下载客户端:这里。下载好以后点击运行,进行安装。
vpn客户端配置文件路径在:C:\Program Files\OpenVPN\config 目录下。
把上文在Ubuntu创建的4个文件下载到Windows系统的 C:\Program Files\OpenVPN\config 目录下(可以用scp命令或FileZilla这样的工具来下文件,如果你安装了32位的openvpn,应该是目录 C:\Program Files (x86)\OpenVPN\config):
1  | # Ubuntu上的这4个文件,下载放到Windows的C:\Program Files\OpenVPN\config目录内  | 
创建客户端配置文件
进入 C:\Program Files\OpenVPN\config  目录,在里面创建一个ovpn配置文件,比如叫 test-001.ovpn,内容如下:
1  | client  | 
上面的 route 192.168.0.0 255.255.255.224 也是告诉服务端,客户端访问这些 192.168.0.0/255.255.255.224 地址时,才经过VPN。
保存配置文件,然后启动 openvpn gui 客户端。通常,客户端会在Windows托盘停留,右键选择 test-001.ovpn 配置,点连接即可。连接成功显示如下:

如果你发现你的vpn客户端不是这样的界面,请下载 openvpn-install-2.4.8-I601-Win10.exe 这个版本的vpn(I601-Win10不重要,主要是版本最好是2.4.8),卸载原来的版本,并重新安装就行。
然后,在CMD中ping VPN服务端的地址(下面10.8.100.1是vpn分配的网关地址,vpn客户端分配到的是10.8.100.6,192.168.0.28是vpn服务器内网ip,192.168.0.4是vpn服务所在内网的另一条机器的内网ip):
至此,vpn客户端和服务端全部安装完成。