为什么要在 Ubuntu 22.04 上设置 OpenVPN?
本指南提供了一套实用且全面的设置和配置教程。 OpenVPN 在 Ubuntu 22.04 它专为系统管理员、DevOps工程师、交易员和游戏玩家设计。步骤包括安装软件包、使用EasyRSA创建PKI、配置服务器和客户端、设置防火墙(ufw/iptables)、启用路由以及安全解决方案等。 tls-crypt证书吊销列表 (CRL) 管理和使用 失败2禁止 这将是。.
先决条件
要遵循本指南,您需要以下物品:
- 服务器 Ubuntu 22.04 拥有访问权限的用户 sudo
- 公网 IP 地址或专用 IP 地址范围(必要时可使用 IPv4/IPv6)
- 自由港(建议: UDP 1194 或使用自定义端口以降低被扫描的可能性)
- 基本负载至少需要 1GB 内存;企业级应用或数百个连接需要增加资源。
第一部分——安装 OpenVPN 和 EasyRSA
首先更新软件包,然后安装 OpenVPN 和 EasyRSA。.
sudo apt update && sudo apt upgrade -y
sudo apt install -y openvpn easy-rsa复制 EasyRSA 模板并准备 PKI:
make-cadir /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
./easyrsa init-pki第二部分——创建 CA、密钥和证书
使用 EasyRSA 创建 CA、密钥和证书的步骤:
./easyrsa build-ca nopass
./easyrsa gen-req server nopass
./easyrsa sign-req server server
./easyrsa gen-req client1 nopass
./easyrsa sign-req client client1
./easyrsa gen-dh
openvpn --genkey --secret /etc/openvpn/ta.key
./easyrsa gen-crl
cp pki/crl.pem /etc/openvpn/crl.pem
chmod 644 /etc/openvpn/crl.pem服务器所需文件:
- /etc/openvpn/server.crt
- /etc/openvpn/server.key
- /etc/openvpn/ca.crt
- /etc/openvpn/dh.pem
- /etc/openvpn/ta.key
- /etc/openvpn/crl.pem
第三部分——配置 OpenVPN 服务器
示例配置文件 /etc/openvpn/server/server.conf 创建。以下示例是使用 AES-256-GCM 和 tls-crypt 的基本安全配置。.
port 1194
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh.pem
tls-crypt /etc/openvpn/ta.key
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist /var/log/openvpn/ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 1.1.1.1"
push "dhcp-option DNS 8.8.8.8"
keepalive 10 120
cipher AES-256-GCM
auth SHA256
ncp-ciphers AES-256-GCM
persist-key
persist-tun
user nobody
group nogroup
status /var/log/openvpn/status.log
log /var/log/openvpn/openvpn.log
verb 3
crl-verify /etc/openvpn/crl.pem尖端:
- 使用 AES-256-GCM 和 SHA256 身份验证 受到推崇的。.
- 为了在交易或游戏等敏感网络上实现最小延迟, UDP 它更合适;在网络资源有限的情况下也是可行的。 TCP 或许有必要。.
- 你可以 tls-version-min 1.2 或者 tls-version-min 1.3 此外,还要添加一份更严格的加密算法列表。.
第四部分——启用路由和NAT
必须启用转发功能并配置 NAT,才能将客户端流量转发到 Internet。.
临时启用 IPv4 转发:
sudo sysctl -w net.ipv4.ip_forward=1为了使其永久有效:
echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-openvpn.conf
sudo sysctl --system使用 iptables 添加 NAT 规则(假设输出接口为 eth0):
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE要使规则持久生效,请使用 iptables-persistent 或 netfilter-persistent:
sudo apt install -y iptables-persistent
sudo netfilter-persistent save如果来自 nftables 您可以使用 nft 中 NAT 的等效定义。.
UFW 配置(如果已启用)
如果来自 ufw 启用 NAT 之前,您需要使用该文件。 /etc/ufw/before.rules 编辑并添加 NAT 部分。简短示例:
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
COMMIT然后 /etc/default/ufw 数量 IPv4转发 到 “是的”或者使用 sysctl 命令。然后打开 OpenVPN 端口并启用 ufw:
sudo ufw allow 1194/udp
sudo ufw enable第五部分——设置 OpenVPN 服务
运行并启用该服务(服务名称可能因发行版而异):
sudo systemctl start [email protected]
sudo systemctl enable [email protected]查看状态和日志:
sudo systemctl status openvpn-server@server
journalctl -u openvpn-server@server -f第六部分 — 创建带有内联证书的客户端文件 (.ovpn)
为了便于分发,请创建一个包含所有内容的 .ovpn 文件 证书/密钥 它们是内联内容。请根据生成的值替换以下示例:
client
dev tun
proto udp
remote YOUR_SERVER_IP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-GCM
auth SHA256
verb 3
<ca>
-----BEGIN CERTIFICATE-----
(محتوای ca.crt)
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
(محتوای client1.crt)
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
(محتوای client1.key)
-----END PRIVATE KEY-----
</key>
<tls-crypt>
-----BEGIN OpenVPN Static key V1-----
(محتوای ta.key)
-----END OpenVPN Static key V1-----
</tls-crypt>将此文件传输到您的 Windows、Mac 或 Linux 客户端。在 Linux 系统上,您可以使用 NetworkManager 或以下命令。 openvpn --config client.ovpn 使用。.
第 7 节 — 用户管理、证书吊销和安全
用户管理和安全包括以下内容:
- 添加新用户: 生成密钥并像 client1 一样签名。.
- 证书撤销(撤销): ./easyrsa revoke client1 && ./easyrsa gen-crl 然后将 crl.pem 复制到 /etc/openvpn/crl.pem 并重新加载服务器。.
- 结合使用基于证书和用户密码的身份验证: 您可以使用 PAM 或 RADIUS,并添加 OTP/2FA 以提高安全性。.
- 禁止失败: 安装和配置以监控日志并阻止入侵尝试。.
- 日志管理: 降低生产环境中的日志级别,并使用 logrotate 来维护日志文件。.
sudo apt install -y fail2ban
# create a custom jail for openvpn as needed第 8 节 — 应用技术提示和优化
针对不同情况的一些实用建议:
用于交易/外汇和加密货币
- 选择靠近交易所或交易服务器的位置以减少往返时间(例如伦敦、法兰克福、纽约、东京)。.
- 使用专用的 VPS 进行交易,该 VPS 具有低延迟、专用资源和防 DDoS 服务器。.
- 使用 UDP 并设置适当的 MTU(例如 tun-mtu 1500 或更小)以避免分片。.
用于游戏
- 选择延迟最低的服务器位置,并使用网络速度快的 VPS 或高速服务器。.
- 通过 A/B 测试来检验 VPN 是否真的能改善路由并降低延迟。.
用于人工智能和渲染
- 对于大数据传输,最好使用云私有网络 (VPC) 或带有 BGP 的网络级 VPN。.
- 使用具备 10Gbps 网络带宽的服务器连接到 GPU 服务器。.
第九节——地点和基础设施比较
按地区划分的福利示例:
- 欧洲(法兰克福、伦敦、阿姆斯特丹): 适合欧洲交易者,且交易所延迟低。.
- 美国(纽约、新泽西、迈阿密): 适用于北美市场和对延迟敏感的负载。.
- 亚洲(东京、新加坡、首尔): 适用于亚太市场以及该地区的游戏和人工智能服务。.
我们公司拥有超过 全球85个地点它提供 BGP 和 CDN 网络,可以有效降低延迟、提高稳定性并防止 DDoS 攻击。.
第 10 节 — 监测和维护
维护和可扩展性技巧:
- 使用 Prometheus/Grafana 或 Zabbix 进行 OpenVPN 监控(使用导出器或日志分析)。.
- 定期维护 CRL 并检查连接日志。.
- 对于大量客户端,请使用负载均衡器和多个具有高可用性和共享 CA 的 OpenVPN 服务器。.
快速故障排除
- 查看日志:
sudo journalctl -u openvpn-server@server -e - 隧道检查:
ip a 显示 tun0 - 端口检查:
sudo ss -ulpn | grep 1194 - NAT 测试:从 VPN 客户端 ping 8.8.8.8 和服务器的公网 IP 地址。.
摘要和安全建议
主要建议:
- 务必使用 TLS(tls-crypt)和强大的 CA。.
- 使用强加密(AES-256-GCM)和至少 TLS 1.2。.
- 实施撤销和 CRL 程序,以便在发生密钥泄露时移除访问权限。.
- 在防火墙中使用 fail2ban 和速率限制规则。.
- 别忘了监控并定期查看日志。.
基础设施和地理位置带来的好处
利用多地点部署的现成基础设施可带来诸多优势,例如降低延迟、提高稳定性以及提供DDoS防护。针对特定应用场景,我们还提供交易型VPS、游戏服务器、GPU服务器和反DDoS服务器等多种选择。.









