OpenVPN 是一款开源的虚拟专用网络 (VPN) 软件,广泛用于保护互联网连接安全、隐藏 IP 地址、远程访问公司或家庭网络等。OpenVPN 支持多种加密方式,提供了灵活的配置和较高的安全性。通过 OpenVPN,可以建立一个加密隧道,确保数据在传输过程中的隐私和安全。它可以在 Windows、Linux、macOS 以及 Android、iOS 等多个平台上运行。
常规配置项
client # 声明此配置为客户端配置
dev tun # 选择 VPN 虚拟网络设备类型,通常为 tun (TUN/TAP)
proto udp # 使用的协议,可选择 UDP 或 TCP
remote example.com 1194 # 远程服务器地址和端口号
nobind # 客户端不绑定到特定的本地端口
persist-key # 保持密钥文件,在重新连接时不重新生成密钥
persist-tun # 保持 tun 设备,在重连时不重新初始化
ca ca.crt # CA 证书文件,用于验证服务器的身份
cert client.crt # 客户端证书文件,用于客户端身份认证
key client.key # 客户端私钥文件
remote-cert-tls server # 强制服务器证书验证以确保安全
auth SHA256 # 指定认证算法,一般为 SHA256
cipher AES-256-CBC # 指定加密算法,如 AES-256-CBC
tls-auth ta.key 1 # 使用 TLS 认证文件,进一步提高安全性
comp-lzo # 启用数据压缩,提高传输效率
verb 3 # 日志详细度,1 为错误信息,3 为一般信息
配置文件说明
client
:声明此配置文件用于客户端。dev
:指定虚拟网络设备,tun
用于点对点隧道。proto
:选择传输协议,UDP 更快,但 TCP 更稳定。remote
:服务器的域名或 IP 地址,以及端口号。nobind
:不绑定到本地特定端口,使得客户端可以动态分配端口。ca
、cert
、key
:这些选项指向证书和密钥文件,用于身份认证。remote-cert-tls
:确保连接到的服务器具有有效证书。auth
和 cipher
:指定认证算法和加密算法,确保连接的加密安全性。tls-auth
:双向 TLS 认证,增强连接安全。comp-lzo
:启用数据压缩,减少带宽消耗。verb
:日志详细级别,用于调试和监控。
实用配置
客户端配置静态路由,使连接VPN后,指定到哪些网络使用VPN 或者走VPN。
route-nopull # 客户端连接openvpn后 不从服务端获取路由
max-routes 1000 # 设置路由的最大条数,默认是100,这里可以根据需求修改
route 192.168.0.0 255.255.0.0 net_gateway # 使192.168.0.0/24网段,不走vpn网关
route 192.168.1.0 255.255.0.0 vpn_gateway # 使192.168.1.0/24网段,走vpn网关
服务端配置(服务端推送至客户端)
push "route 192.168.0.0 255.255.0.0 net_gateway" # 将引号中的路由推送到客户端
push "route 192.168.1.0 255.255.0.0 vpn_gateway " # 将引号中的路由推送到客户端
自定义DNS
pull-filter ignore "dhcp-option DNS" # 不使用DHCP的DNS
dhcp-option DNS 8.8.8.8
dhcp-option DNS 223.5.5.5