搭建openvpn
安装openvpn
使用
apt
包管理器来安装OpenVPN:sudo apt install openvpn
生成生成证书和密钥
安装Easy-RSA
git clone https://github.com/OpenVPN/easy-rsa.git cd /easy-rsa/easyrsa3 ./easyrsa init-pki #初始化Easy-RSA
./easyrsa build-ca # 创建一个新的CA
./easyrsa gen-req server nopass # 生成服务器证书和密钥
./easyrsa sign server server # 签署服务器证书
./easyrsa gen-req 客户端名称 nopass # 生成客户端证书和密钥 ./easyrsa sign client 客户端名称 # 签署
创建openvpn配置文件
port 1194 #端口 proto udp #协议 dev tun #采用路由隧道模式 ca /easy-rsa/easyrsa3/pki/ca.crt #ca证书的位置 根据实际位置修改 cert /easy-rsa/easyrsa3/pki/issued/server.crt #服务端公钥的位置。根据实际位置修改 key /easy-rsa/easyrsa3/pki/private/server.key #服务端私钥的位置 根据实际位置修改 # dh /easy-rsa/easyrsa3/pki/dh.pem #证书校验算法 server 10.8.0.0 255.255.255.0 #给客户端分配的地址池 push "route 172.16.1.0 255.255.255.0" #允许客户端访问的内网网段 ifconfig-pool-persist ipp.txt #地址池记录文件位置,未来让openvpn客户端固定ip地址使用的 keepalive 10 120 #存活时间,10秒ping一次,120秒如果未收到响应则视为短线 max-clients 100 #最多允许100个客户端连接 status openvpn-status.log #日志位置,记录openvpn状态 # log /etc/openvpn/log/openvpn.log #openvpn日志记录位置 verb 3 #openvpn版本 client-to-client #允许客户端与客户端之间通信 persist-key #通过keepalive检测超时后,重新启动VPN,不重新读取 persist-tun #检测超时后,重新启动VPN,一直保持tun是linkup的,否则网络会先linkdown然后再linkup duplicate-cn #客户端密钥(证书和私钥)是否可以重复 comp-lzo #启动lzo数据压缩格式
启动openvpn
sudo openvpn --config /etc/openvpn/config.ovpn # 根据实际位置修改配置文件 sudo systemctl status openvpn # 检验是否启动
连接openvpn
mac版
1. 下载Tunnelblick https://tunnelblick.net/
windows版本
https://openvpn.net/
客户端配置文件
生成证书文件 导入到软件中即可(该配置只测试mac过版本)
# OpenVPN client configuration file # Specify the protocol to use (UDP or TCP) proto udp # Specify the remote OpenVPN server's IP address or domain name and port remote 192.168.0.140 1194 # 服务端地址 # Choose a device type (tun or tap) dev tun # Use the client mode client # Specify the ca, cert, and key file paths ca /Users/ma/develop/open_vpn/easy-rsa/easyrsa3/pki/ca.crt # 证书文件以实际地址为准 cert /Users/ma/develop/open_vpn/easy-rsa/easyrsa3/pki/issued/armor.crt # 证书文件以实际地址为准 key /Users/ma/develop/open_vpn/easy-rsa/easyrsa3/pki/private/armor.key # 证书文件以实际地址为准 # dh /Users/ma/develop/open_vpn/easy-rsa/easyrsa3/pki/dh.pem # Enable compression comp-lzo # Set the server's DNS name or IP address remote-cert-tls server nobind # Optional: Specify the DNS server(s) to use dhcp-option DNS 8.8.8.8 dhcp-option DNS 8.8.4.4 # Optional: Specify a custom route # route 10.8.0.0 255.255.255.0 # Optional: Set the log verbosity level (0-9, higher is more verbose) verb 3