本文将在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客户端和服务端全部安装完成。