官方文档:https://openVPN.net/index.php/open-source/documentation/howto.htmlphp
安装软件html
sudo apt install openVPN easy-rsa
拷贝 easy-rsa 目录git
cp -r /usr/share/easy-rsa/ /etc/openVPN/
查看 openssl 版本github
openssl version
生成 ca 证书(ca.crt)和私钥(ca.key)vim
cd /etc/openVPN/easy-rsa/ cp openssl-1.0.0.cnf openssl.cnf . ./vars # source ./vars ./clean-all # 只是增长客户端证书和私钥的时候不要执行这一句 ./build-ca # 注意 Common Name
生成服务端的证书和私钥(server.crt/server.key)bash
./build-key-server server
生成客户端的证书和私钥tcp
./build-key client1 ./build-key client2 ./build-key client3
生成 dh 文件ide
./build-dh
让服务端文件就位ui
cp /etc/openVPN/easy-rsa/keys/ca.crt /etc/openVPN/server/ cp /etc/openVPN/easy-rsa/keys/server.crt /etc/openVPN/server/ cp /etc/openVPN/easy-rsa/keys/server.key /etc/openVPN/server/ cp /etc/openVPN/easy-rsa/keys/dh2048.pem /etc/openVPN/server/
建立 ccd 目录,里面存放推送信息(如固定 ip)到客户端的文件spa
mkdir /etc/openVPN/server/ccd cd /etc/openVPN/server/ccd vim client # 文件名对应 Common Name # client 内容示例(推送固定 ip) ifconfig-push 192.168.77.46 255.255.255.0
建立 server.conf,并按照样例写入配置
cd /etc/openVPN/server/ /etc/openVPN/server# vim server.conf
启动服务端
nohup openVPN /etc/openVPN/server/server.conf &
查看状态
~# sudo systemctl status open*** ● open***.service - Open××× service Loaded: loaded (/lib/systemd/system/open***.service; enabled; vendor preset: enabled) Active: active (exited) since Fri 2019-02-22 09:16:36 CST; 2 months 21 days ago Process: 1024 ExecStart=/bin/true (code=exited, status=0/SUCCESS) Main PID: 1024 (code=exited, status=0/SUCCESS) Feb 22 09:16:36 vip811 systemd[1]: Starting Open××× service... Feb 22 09:16:36 vip811 systemd[1]: Started Open××× service. ~# ps aux | grep open*** root 1037 2.8 0.4 47040 17300 ? S Feb22 3346:47 open*** /etc/open***/server/server.conf root 13329 0.0 0.0 13136 1000 pts/1 S+ 18:43 0:00 grep --color=auto open***
服务端配置文件示例
local 192.168.0.110 port 10101 proto tcp dev tap float ca /etc/openVPN/server/ca.crt cert /etc/openVPN/server/server.crt key /etc/openVPN/server/server.key dh /etc/openVPN/server/dh2048.pem server 192.168.77.0 255.255.255.0 client-config-dir /etc/open***/server/ccd/ client-to-client keepalive 10 120 comp-lzo persist-key status openVPN-status.log log /var/log/openVPN.log verb 4 mute 20
客户端配置文件示例
client dev tap0 remote 123.456.789.154 port 10101 proto tcp float ca ./ca.crt cert ./client1.crt key ./client1.key comp-lzo verb 6 mute 20
【 OpenVPN迁移】
替换 /etc/openVPN/server 目录
替换 /etc/openVPN/easy-rsa 目录
官方迁移文档: https://openVPN.net/VPN-server-resources/migrating-an-access-server-installation/
【FAQ】
Q:客户端连不上服务端,报错:WARNING: No server certificate verification method has been enabled.
A:检查私钥和公钥当中是否有 0B 的文件。
Q:客户端连不上服务端,报错:TCP: connect to [AF_INET]223.18.95.157:7872 failed: Unknown error
A:检查客户端外围防火墙。
【相关阅读】
*** walker ***