官方文檔: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 ***