You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在无特权权限下将Google Cloud Run容器连接到OpenVPN?

解决方案

下面是4种不需要Cloud Run特权权限即可实现需求的可行方案,可根据你的改造成本选择:

方案1:使用GCP托管VPN打通网络(推荐,运维成本最低)

  • 直接用GCP Cloud VPN和你侧的OpenVPN服务端建立站点到站点的IPsec隧道,将Cloud Run所在VPC与OpenVPN后方的内网网段打通
  • 给Cloud Run服务配置VPC连接器,配置路由规则允许Cloud Run的流量通过Cloud VPN访问内网FTP站点,全程不需要在Cloud Run容器内运行任何VPN客户端,也不需要任何特殊权限。

方案2:部署独立中转代理节点(改造成本最低)

  • 申请一台最低配置的GCE虚拟机实例,在实例内正常运行OpenVPN客户端连接目标VPN网络
  • 在该GCE实例上部署TCP代理(如Nginx流代理、Socks5代理),开放FTP所需的21控制端口 + 被动模式端口段的转发规则
  • 修改Java Web应用的FTP连接配置,将目标地址改为GCE实例的内网IP,由代理中转流量到VPN后的FTP站点,不需要修改Cloud Run的任何权限配置。

方案3:使用用户态VPN客户端(无需改网络架构)

  • 替换容器内的内核态OpenVPN客户端,改用用户态实现的VPN工具如openvpn3、tun2socks,这类工具不需要依赖tun/tap内核设备的特权操作
  • 搭配Cloud Run第二代执行环境,部署时添加NET_ADMIN、NET_RAW权限即可运行,命令示例:
gcloud run deploy [服务名] \
  --execution-environment gen2 \
  --capabilities NET_ADMIN,NET_RAW \
  # 其余原有部署参数
  • 该方案完全不需要修改现有网络架构,只需要调整容器镜像和部署参数即可。

方案4:使用Serverless VPC访问连接器对接内网出口

  • 如果你的OpenVPN服务端已经部署在和Cloud Run同VPC的其他节点上,直接配置Serverless VPC访问连接器,将Cloud Run的流量路由到运行了OpenVPN客户端的出口节点即可,不需要在Cloud Run侧运行VPN逻辑。

注意:FTP是多端口协议,如果你使用代理中转方案,需要提前配置好被动模式的端口段转发规则,避免出现主动连接可用、被动模式不可用的问题。

内容的提问来源于stack exchange,提问作者zbenev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 03:15:03