配置OpenVPN服务器是一个系统性的过程,以下是按照步骤进行的详细说明:
安装OpenVPN服务器
1 安装OpenVPN软件包
在Ubuntu系统中,可以通过以下命令安装OpenVPN:
sudo apt update sudo apt install openvpn
2 安装必要的依赖
sudo apt install openvpn-plugin-openvpn-client
3 初始化OpenVPN
运行以下命令初始化OpenVPN:
sudo openvpn --install
4 生成默认的证书和密钥
按照提示回答问题,生成CA、CRL、服务器证书和私钥:
sudo openvpn --genkey --genkey-secret --initialize
配置OpenVPN服务器
1 创建配置文件
进入OpenVPN的配置目录并创建或编辑服务器配置文件/etc/openvpn/server.conf:
sudo nano /etc/openvpn/server.conf
2 填写服务器配置
在配置文件中添加以下内容:
168.1./24 # 推送路由信息到客户端 push "route 192.168.1./24" push "route 10.10.1./32" push "route 172.16.1./32" # 设置为点对点或服务器端模式 mode server # 禁止远程服务器连接 allow-none # 设置为 TLSv1 或更高 tls-version 1.2 # 使用内置的认证服务器 ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/server.crt key /etc/openvpn/keys/server.key # 设置密码为OpenVPN的默认密码(可更改) password mypass
3 生成DH参数
运行以下命令生成Diffie-Hellman参数:
sudo openvpn --generate-dhparameters --out dh2048.pem
将生成的参数添加到配置文件中:
dh /etc/openvpn/keys/dh2048.pem
4 设置管理用户
为OpenVPN创建一个管理用户:
sudo adduser openvpn -group openvpn sudo passwd openvpn
启动OpenVPN服务
1 启动服务
sudo systemctl unmask openvpn sudo systemctl enable openvpn sudo systemctl start openvpn
2 设置开机启动
sudo systemctl enable openvpn
配置OpenVPN客户端
1 安装客户端
在客户端设备上安装OpenVPN客户端软件包:
sudo apt install openvpn
2 生成客户端证书
在服务器上生成客户端证书和密钥:
sudo openvpn --genkey --genkey-secret --batch --keypass-file client-pass.txt
将生成的证书和密钥文件复制到客户端:
scp /etc/openvpn/keys/client.crt /etc/openvpn/keys/client.key client-pass.txt client-crt.txt
3 配置客户端
在客户端的/etc/openvpn/client.conf文件中添加以下内容:
# 服务器的公网IP和端口 remote your-server-ip:443 # 使用TLS加密 proto tcp tls # 输入证书和密码 key-file /etc/openvpn/keys/client.key cert-file /etc/openvpn/keys/client.crt # 密码 password mypass
连接测试
1 客户端启动
sudo openvpn --config client.conf
2 测试连接
在终端窗口查看连接状态:
tail -f /var/log/openvpn/your-server.log
检查是否有错误信息,如果有,修正配置文件中的错误。
高级配置(可选)
1 使用x509证书
从信任的CA获取x509证书并安装:
sudo apt install libnss3-tools sudo certutil -d /etc/pki/nssdb -a -n "CN=Your Domain" -s 0 -k private -t /path/to/cert.pem -o /etc/pki/opensc/x509
2 设置内部CA服务器
在服务器上创建CA:
sudo mkdir -p /etc/openvpn/keys/ca sudo openvpn --ca-config --key-file /etc/openvpn/keys/ca/ca.key --cert-file /etc/openvpn/keys/ca/ca.crt
故障排除
1 连接被拒绝
检查防火墙设置:
sudo ufw allow out 443 sudo iptables -L -n
确保服务器的防火墙允许OpenVPN的端口。
2 证书错误
检查证书是否正确安装:
sudo certutil -L
进一步配置
1 自动化连接
在客户端配置文件中添加:
# 自动连接 auto # 延迟连接 delay-line
2 设置为NAT服务器
在服务器配置中添加:
push "redirect-gw main"
文档和资源
通过以上步骤,您可以成功配置并使用OpenVPN创建一个安全的VPN连接,遇到问题时,查阅相关文档或社区获取帮助。









