在阿里云上自建VPN可以通过多种方式实现,常见的有 IPSec VPN、OpenVPN、WireGuard 或 L2TP/IPSec 等方案,以下是基于 OpenVPN 和 IPSec VPN 的两种典型搭建方法,供参考:
方案1:基于 OpenVPN 搭建(用户-服务器模式)
适合个人或团队远程访问阿里云内网资源。
步骤1:准备阿里云ECS
-
购买ECS实例
- 选择Linux系统(如CentOS 7/8或Ubuntu)。
- 确保安全组放行 UDP 1194(OpenVPN默认端口)或自定义端口。
-
配置安全组
入方向规则:允许UDP 1194(或自定义端口)和SSH(22)端口。
步骤2:安装OpenVPN
sudo yum install -y openvpn easy-rsa # 初始化PKI(证书颁发机构) sudo mkdir -p /etc/openvpn/server sudo cp -r /usr/share/easy-rsa/3/* /etc/openvpn/server/ cd /etc/openvpn/server sudo ./easyrsa init-pki sudo ./easyrsa build-ca # 交互式输入CA信息 sudo ./easyrsa gen-req server nopass sudo ./easyrsa sign-req server server sudo ./easyrsa gen-dh sudo openvpn --genkey --secret ta.key # 生成客户端证书(可选) sudo ./easyrsa gen-req client1 nopass sudo ./easyrsa sign-req client client1
步骤3:配置OpenVPN服务端
编辑配置文件 /etc/openvpn/server/server.conf:
port 1194 proto udp dev tun ca /etc/openvpn/server/pki/ca.crt cert /etc/openvpn/server/pki/issued/server.crt key /etc/openvpn/server/pki/private/server.key dh /etc/openvpn/server/pki/dh.pem server 10.8.0.0 255.255.255.0 push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 8.8.8.8" keepalive 10 120 tls-auth /etc/openvpn/server/ta.key 0 cipher AES-256-CBC persist-key persist-tun status /var/log/openvpn-status.log verb 3
步骤4:启动服务
sudo systemctl start openvpn@server sudo systemctl enable openvpn@server # 开启IP转发 echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf sudo sysctl -p
步骤5:生成客户端配置
将生成的客户端证书(client1.crt、client1.key)和配置文件(示例)发给用户:
client dev tun proto udp remote your_ecs_public_ip 1194 resolv-retry infinite nobind persist-key persist-tun remote-cert-tls server cipher AES-256-CBC <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> key-direction 1 <tls-auth> -----BEGIN OpenVPN Static key V1----- (粘贴ta.key内容) -----END OpenVPN Static key V1----- </tls-auth>
方案2:基于StrongSwan搭建IPSec VPN(站点到站点或远程访问)
适合企业级VPN,兼容iOS/Android原生客户端。
步骤1:安装StrongSwan
# CentOS sudo yum install -y epel-release sudo yum install -y strongswan # Ubuntu sudo apt install -y strongswan
步骤2:配置IPSec
编辑 /etc/strongswan/ipsec.conf:
config setup
charondebug="ike 2, knl 2, cfg 2"
conn %default
ikelifetime=60m
keylife=20m
rekeymargin=3m
keyingtries=1
keyexchange=ikev2
authby=secret
conn ikev2-vpn
left=%any
leftsubnet=0.0.0.0/0
leftauth=psk
right=%any
rightsourceip=10.10.10.0/24
rightauth=psk
auto=add
步骤3:设置预共享密钥
编辑 /etc/strongswan/ipsec.secrets:
PSK "your_shared_secret"
步骤4:启动服务
sudo systemctl start strongswan sudo systemctl enable strongswan
客户端连接
- iOS/Android:选择IKEv2 VPN,输入服务器IP、预共享密钥和用户名密码(如配置)。
- Windows:使用内置VPN客户端配置IKEv2。
注意事项
- 安全组/NACL:确保阿里云安全组和网络ACL允许VPN端口通信。
- 日志排查:通过
journalctl -u openvpn@server或sudo strongswan status查看日志。 - 高可用:如需高可用,可搭配SLB或部署多节点。
- 合规性:确保VPN使用符合当地法律法规。
如需更简单方案,可考虑阿里云官方产品(如VPN网关),但需额外费用。
