如何在GCP Cloud VPN与Ubuntu主机/Windows虚拟机间搭建VPN隧道?
GCP Cloud VPN 与 Ubuntu/Windows 端点的隧道搭建配置指导
一、GCP 端基础配置
1. 创建VPC与子网
- 登录GCP控制台,创建VPC网络(示例名:
vpn-test-vpc),配置私有子网(示例网段:10.0.0.0/24) - 配置VPC防火墙规则:允许UDP 500/4500端口、ESP协议,以及子网内的ICMP/SSH/RDP流量(测试用途)
2. 创建Cloud VPN网关
- 进入「VPC网络 > 云VPN」,创建VPN网关,关联目标VPC,选择经典VPN(测试场景足够),自动分配公网IP
3. 创建VPN隧道
- 为网关添加隧道,选择静态路由模式
- 远端IP:暂留空,待客户端/虚拟机公网IP确定后补充
- 预共享密钥:自定义设置(示例:
test-vpn-key-123,需与客户端保持一致) - 远程网络:填写客户端/虚拟机的私有网段(如Ubuntu个人电脑用
192.168.1.0/24,Windows虚拟机用192.168.2.0/24) - 静态路由:添加VPC子网路由(
10.0.0.0/24),指向该隧道
二、Ubuntu 端点(个人电脑/虚拟机)配置
1. 安装IPsec客户端(StrongSwan)
sudo apt update && sudo apt install strongswan strongswan-pki libcharon-extra-plugins -y
2. 配置IPsec连接
- 编辑
/etc/ipsec.conf,替换为以下内容(按需替换占位符):
conn gcp-vpn left=%defaultroute leftid=<Ubuntu端点公网IP> right=<GCP VPN网关公网IP> rightsubnet=10.0.0.0/24 leftsubnet=<Ubuntu私有网段,如192.168.1.0/24> ike=aes256-sha256-modp1024! esp=aes256-sha256! keyexchange=ikev1 authby=secret auto=start
- 编辑
/etc/ipsec.secrets,添加预共享密钥:
<Ubuntu端点公网IP> <GCP VPN网关公网IP> : PSK "test-vpn-key-123"
- 重启服务生效:
sudo systemctl restart strongswan-starter
3. 验证连接
- 查看隧道状态:
sudo ipsec status
- ping VPC内实例(示例IP:
10.0.0.10)确认连通性:
ping 10.0.0.10
- 家用Ubuntu个人电脑需在路由器上配置端口转发,将UDP 500/4500指向本机IP
三、Windows 虚拟机端点配置
1. 创建内置VPN连接
- 打开「设置 > 网络和Internet > VPN > 添加VPN连接」
- VPN提供商:
Windows(内置) - 连接名称:
GCP-VPN-Test - 服务器名称或地址:填写GCP VPN网关公网IP
- VPN类型:
L2TP/IPsec - 登录信息类型:
预共享密钥 - 预共享密钥:填写之前设置的
test-vpn-key-123
- VPN提供商:
- 保存连接
2. 调整IPsec兼容性设置
- 以管理员身份打开命令提示符,执行:
reg add HKLM\SYSTEM\CurrentControlSet\Services\RasMan\Parameters /v ProhibitIpSec /t REG_DWORD /d 0 /f
- 重启VPN服务:
net stop rasman && net start rasman
3. 验证连接
- 点击创建的VPN连接完成登录,ping VPC内实例(示例IP:
10.0.0.10)确认连通性 - 云主机Windows虚拟机需在安全组中开放UDP 500/4500端口及ESP协议
四、测试注意事项
- 确保所有端点公网IP可被访问(家用个人电脑需端口转发)
- 预共享密钥两端必须完全一致
- 私有网段不可与GCP VPC子网重叠
- GCP侧防火墙需允许来自客户端网段的流量
内容的提问来源于stack exchange,提问作者PRASAD DHAVALE
相关产品推荐
相关产品推荐

